kubespahere安装kubenetes

参考:

1、kubesphere官网:

https://kubesphere.com.cn/

https://kubesphere.com.cn/docs/

2、docker 镜像

https://docs.docker.com/storage/volumes/

https://www.docker.com/

https://www.docker.com/products/docker-hub

https://hub.docker.com/

https://hub.docker.com/_/mysql

https://hub.docker.com/_/redis

3、kubesphere 一站式平台搭建与使用

https://www.yuque.com/leifengyang

https://www.yuque.com/leifengyang/oncloud/vgf9wk#D1vbf

 

4、kubenetes包管理器

      https://helm.sh/zh/

 

 

 

5、笔记

  •  有状态得容器(mysql,redis、es等)不要指定固定得存储卷,否则多个副本之间会出现数据的覆盖,尽量让每个容器都有自己独立的存储卷,保证数据的独立性。

    例如: redis部署没有提前创建存储卷,而是采取现场自动指定的方式。这样就可以保证每个有状态的中间件(redis,mysql)都有独立的数据存储空间。

  •  docker的卷挂载和路径绑定区别

     

 

 

        容器卷挂载docker会先把容器目录下的所有文件复制一份到容器卷

       目录挂载docker不会把容器目录下的文件复制一份到宿主目录下.

注意:            

      卷 (Docker Volume) 是受控存储,是由 Docker 引擎进行管理维护的。因此使用卷,你可以不必处理 uid、SELinux 等各种权限问题,Docker 引擎在建立卷时会自动添加安全规则,以及根据挂载点调整权        限。并且可以统一列表、添加、删除。另外,除了本地卷外,还支持网络卷、分布式卷。

       而挂载目录而挂载目录那就没人管了,属于用户自行维护。你就必须手动处理所有权限问题。特别是在 CentOS 上,很多人碰到 Permission Denied,就是因为没有使用卷,而是挂载目录,而且还对                SELinux 安全权限一无所知导致。

    这个设置可以在运行时覆盖。通过 docker run 的 -v 参数或者 docker-compose.yml 的 volumes 指定。使用命名卷的好处是可以复用,其它容器可以通过这个命名数据卷的名字来指定挂载,共享其内容(不过要注意并发访问的竞争问题)。

       比如,Dockerfile 中说 VOLUME /data,那么如果直接 docker run,其 /data 就会被挂载为匿名卷,向 /data 写入的操作不会写入到容器存储层,而是写入到了匿名卷中。但是如果运行时 docker run -v mydata:/data,这就覆盖了 /data 的挂载设置,要求将 /data 挂载到名为 mydata 的命名卷中。所以说 Dockerfile 中的 VOLUME 实际上是一层保险,确保镜像运行可以更好的遵循最佳实践,不向容器存储层内进行写入操作。

数据卷默认可能会保存于 /var/lib/docker/volumes,不过一般不需要、也不应该访问这个位置。

 

posted @ 2021-10-05 19:43  溶洞  阅读(120)  评论(0编辑  收藏  举报