Kubernetes学习
1. KuberSphere实战
- 多租户系统
-
每一个Kubernetes集群的KubeSphere只可以有一个admin用户,在KubeSphere中可以创建多个用户,每个用户有不同的权限,进行不同的管理
-
只有一个admin平台管理员,可以管理平台内的所有资源
-
由admin创建平台用户管理员,相当于HR,对用户信息进行管理
-
HR可以创建平台企业空间管理员,相当于大老板,可以创建多个企业空间,类似于分公司
-
其余的都是普通用户,在被邀请进入企业空间或者集群之前没有任何资源操作权限
-
由平台用户管理员HR来创建用户,由平台企业空间管理员来创建各个企业空间,然后指定各个企业空间的管理员,然后企业空间内创建各个项目并邀请用户加入项目进行开发
-
整个集群是一个公司,可以创建多个企业空间分公司,在分公司内开发各种服务
-
- 部署应用
-
应用的部署方式(无状态容器、有状态中间件、守护进程集)、应用的数据挂载PV&PVC(数据卷挂载、配置文件挂载ConfigMap)、应用的可访问性Service(集群内ClusterIP、集群外NodePort)
-
在指定的工作负载(Deployment(无状态微服务)、StatefulSet(有状态中间件)、DaemonSet)上部署应用
-
并通过服务Service为部署的pod配置服务发现和负载均衡,及集群内的ClusterIP,或者集群外的NodePort
-
通过创建存储卷实现PV&PVC,将pod容器中的服务的数据挂载
-
通过创建配置集ConfigMap将容器中配置文件进行挂载,对其修改会自动更新到配置文件中,但必须重启后才会生效
-
- MySQL部署分析
- 将MySQL镜像运行在pod内部的容器中,然后将MySQL的数据内容挂载到PV&PVC中,并将配置文件挂载到指定的ConfigMap配置集中,并为MySQL创建一个Service以使得服务之间可以相互访问
- 先根据要部署服务所需要的数据挂载和配置文件挂载创建对应的PV&PVC和ConfigMap配置集,并在DockerHub中查看指定服务的镜像安装是否需要额外的环境变量等参数(如初始密码),然后在KubeSphere中创建指定的PV和CM,再选择对应的工作负载创建应用
- 选择指定的镜像并配置环境遍历以及其他参数,然后挂载创建好的PV和CM配置集,配置完成后直接创建就可以创建一个pod来运行该服务
- 会自动创建一个Service,但只是ClusterIP模式,只可以在同一个VPC下的集群进行访问,而会有一个DNS,就是 服务名.项目名 ,此时集群中的服务通过该 服务名.项目名 就可以直接访问该服务,而不需要指定IP
- 如果想从外部访问指定的服务,可以为其手动部署一个 NodePort 类型的Service,此时就会在集群中每个机器为该Service分配一个端口,且该端口会与pod容器中指定的端口映射,此时访问集群任一个机器的指定端口就可以访问容器中的服务