KubeSphere的基本使用操作
- 基本使用
- 用户角色
- 创建企业空间
- 创建项目
- 创建应用
- 创建密钥
- 创建MySQL密钥
- 创建WordPress密钥
- 创建存储卷
- 创建MySQL存储卷
- 创建Wordpress存储卷
- 添加组件
- 服务类型
- 添加MySQL组件
- 添加WordPress组件
- 访问Wordpress
基本使用
用户角色
KubeSphere 中的权限控制分为平台、企业空间、项目三个层级,通过角色来控制用户在不同层级的资源访问权限。
用户的创建与角色分配,具体操作参考官方文档: 创建企业空间、项目、用户和平台角色
1.平台角色:
主要控制用户对平台资源的访问权限,如集群的管理、企业空间的管理、平台用户的管理等。
platform-self-provisioner:创建企业空间并成为所创建的企业空间的管理员
platform-regular:被邀请加入企业空间之前无法访问任何资源
platform-admin:管理 KubeSphere 平台上的所有资源
2.企业空间角色:
主要控制企业空间成员在企业空间下的资源访问权限,如企业空间下项目、DevOps 项目的管理等。
企业空间名称-viewer:查看企业空间中的所有资源
企业空间名称-self-provisioner:查看企业设置、管理应用模板、创建项目和 DevOps 项目
企业空间名称-regular:查看企业空间设置
企业空间名称-admin:管理企业空间中的所有资源
3.项目角色:
主要控制项目下资源的访问权限,如工作负载的管理、流水线的管理等。
viewer:查看项目中的所有资源
operator:管理项目中除用户和角色之外的资源
admin:管理项目中的所有资源
创建企业空间
企业空间是用来管理项目、DevOps 项目、应用模板和应用仓库的一种逻辑单元。可以在企业空间中控制资源访问权限,也可以安全地在团队内部分享资源。
点击左上角的平台管理并选择访问控制。在企业空间页面,点击创建。
进入企业空间
创建项目
KubeSphere 中的项目即 Kubernetes 命名空间,用于将资源划分成互不重叠的分组。这一功能可在多个租户之间分配集群资源,是一种逻辑分区功能。
创建应用
这里使用KubeSphere创建Wordpress(MySQL 和 Wordpress)应用为例,将其创建后发布至Kubernetes中,并在集群外访问Wordpress服务。
一个完整的Wordpress应用会包括以下Kubernetes对象,其中MySQL作为后端数据库,Wordpress本身作为前端提供浏览器访问。
创建密钥
创建MySQL密钥
MySQL的环境变量
MYSQL_ROOT_PASSWORD
即root用户的密码属于敏感信息,不适合以明文的方式表现在步骤中,因此以创建密钥的方式来代替该环境变量。创建的密钥将在创建 MySQL 的容器组设置时作为环境变量写入。
名称:作为 MySQL 容器中环境变量的名称,可自定义,例如 mysql-secret
别名:别名可以由任意字符组成,帮助您更好的区分资源,例如 MySQL 密钥
描述信息:简单介绍该密钥,如 MySQL 初始密码
密钥设置页,填写如下信息,完成后点击 创建。
类型:选择 默认(Opaque)
Data:Data 键值对填写 MYSQL_ROOT_PASSWORD和 123456
创建WordPress密钥
同上,创建一个WordPress密钥,Data键值对填写 WORDPRESS_DB_PASSWORD
和123456
。
创建存储卷
创建MySQL存储卷
名称:mysql-pvc
别名:mysql持久化存储卷
描述信息:Wordpress PVC
存储类型默认 local,访问模式和存储卷容量也可以使用默认值
创建Wordpress存储卷
名称:wordpress-pvc
别名:Wordpress 持久化存储卷
描述信息:Wordpress PVC
存储类型默认 local,访问模式和存储卷容量也可以使用默认值
添加组件
创建自制应用,填写基本信息
服务类型
在KubeSphere中,存在两种服务类型,它们存在一定区别:
1.无状态服务:
特点:无状态服务不会在不同的调用之间存储任何数据。每个请求都是独立的,服务器不会记住之前的状态
部署特点:对于无状态服务,Kubernetes 可以随时将 Pod 重新部署到其他节点,因为它们在功能上是可互换的
示例:Web 服务器、API 服务等。这些服务可以水平扩展,因为它们的每个实例都是相同的,不依赖于特定节点上的状态
2.有状态服务:
特点:有状态服务需要在不同的调用之间保留某种形式的状态或数据。这可能包括数据库、缓存或需要持久化存储的服务
部署特点:由于有状态服务持有数据,Kubernetes 部署有状态服务通常需要使用持久卷(Persistent Volumes)来确保数据的持久性和可靠性
示例:数据库服务、消息队列、缓存服务等。这些服务通常需要稳定的网络标识符和持久存储,以便在重启或重新部署时保留状态
创建服务类型
选择创建服务的类型
添加MySQL组件
名称: mysql
组件版本:v1
别名:MySQL数据库
负载类型:选择 有状态服务
点击添加容器镜像,镜像填写mysql:5.7
,然后按回车键或点击 DockerHub
在搜索结果处选择对应镜像,点击 使用默认端口。
注意,在高级设置中确保内存限制 ≥ 1000 Mi,否则可能 MySQL 会因内存 Limit 不够而无法启动。
下滑至环境变量,在此勾选环境变量
,然后选择 用配置文件或密钥
,名称填写为 MYSQL_ROOT_PASSWORD
,下拉框中选择密钥为mysql-secret
和 MYSQL_ROOT_PASSWORD
。
点击 添加存储卷模板
,为 MySQL创建一个 PVC 实现数据持久化。
存储卷名称:必填,起一个简洁明了的名称,便于用户浏览和搜索,此处填写 mysql-pvc
存储类型:选择集群已有的存储类型,如 Local
容量和访问模式:容量默认 10 Gi,访问模式默认 ReadWriteOnce (单个节点读写)
挂载路径:存储卷在容器内的挂载路径,选择 读写,路径填写 /var/lib/mysql
点击添加存储卷,选择已有存储卷 mysql-pvc
,访问模式改为读写
,容器挂载路径 /var/lib/mysql
。完成后点击
添加WordPress组件
操作步骤与添加MySQL组件
步骤类似,以下是大概操作步骤:
名称: wordpress
组件版本:v1
别名:Wordpress前端
负载类型:默认 无状态服务
添加容器镜像,镜像填写wordpress:4.8-apache,使用默认端口
下滑至环境变量,勾选环境变量,添加两个环境变量:
点击引用配置文件或密钥,名称填写 WORDPRESS_DB_PASSWORD,选择在第一步创建的配置 (Secret) wordpress-secret和 WORDPRESS_DB_PASSWORD。
点击添加环境变量,名称填写 WORDPRESS_DB_HOST,值填写 mysql,对应的是上一步创建MySQL服务的名称,否则无法连接MySQL数据库
主要是环境变量配置:
这个应用添加配置好了2个服务
接下来就是应用设置路由规则,这里暂不操作,具体操作参考文档:应用路由
最后点击创建,等待MySQL和WordPress组件信息都已添加完成
工作负载下查看 部署 和 有状态副本集 的状态,当它们都显示为 运行中,说明 WordPress 应用创建成功。
访问Wordpress
访问Wordpress服务前,查看wordpress 服务,将外网访问设置为
NodePort
点击更多操作→ 编辑外网访问,选择 NodePort
,然后该服务将在每个节点打开一个节点端口,通过 任意节点IP:对应节点端口
即可在浏览器访问WordPress。
更新成功,得到节点端口:30489
访问 http://{任意节点IP}:{节点端口}
即可访问WordPress网站