# 使用说明
# 角色与权限
# K8S集群的角色与权限
K8S集群层级只有管理员一种角色,管理员可以对集群进行所有操作。
# 环境的角色与权限
环境对应于K8S集群下的一个命名空间,在环境层级有两类用户:管理员和普通用户。 只有K8S集群的管理员才具有环境的创建权限。
- 环境管理员:可以对环境进行管理操作
- 普通用户: 具有除了对环境进行编辑、资源配额设置和资源限制设置之外的其他操作权限
# 集群管理
点击左侧“K8S部署”菜单,即可进入集群管理界面。 在集群管理界面,可以对K8S集群进行导入。 K8S集群的列表有三个标签页“全部”、“我是管理员”、“我的收藏”,在“我是管理员”标签页下,可以对集群进行编辑。
# 集群导入
在使用ezK8S之前,首先要将集群导入。对于支持CNCF标准的Kubernetes集群均可导入。点击上图中右上角的导入按钮,可以导入K8S集群。 导入的方法在界面上有详细说明,其中API Server地址需要使用基础地址。 服务令牌获取方法及步骤: ①创建一个名为 ezone-admin-service-account.yaml的文件,内容如下:
apiVersion: v1
kind: ServiceAccount
metadata:
name: ezone-admin
namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
namespace: kube-system
name: ezone-admin
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: ezone-admin
namespace: kube-system
②在需要导入的集群上运行如下命令,创建流水线进行构建任务调度需要的账号ezone-admin
kubectl apply -f ezone-admin-service-account.yaml
如果你当前操作K8S的账号没有创建集群级别账号的权限,你可以启用K8S Basic Authentication认证方式后,使用如下命令以admin身份执行
kubectl apply -f ezone-admin-service-account.yaml --username=admin --password=<password>
如果成功执行,会得到如下输出
serviceaccount "ezone-admin" created
clusterrolebinding "ezone-admin" created
③运行如下命令获取令牌
kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep ezone-admin | awk '{print $1}')
④复制令牌
Name: ezone-admin-token-b5zv4
Namespace: kube-system
Labels: <none>
Annotations: kubernetes.io/service-account.name=ezone-admin
kubernetes.io/service-account.uid=bcfe66ac-39be-11e8-97e8-026dce96b6e8
Type: kubernetes.io/service-account-token
Data
====
ca.crt: 1025 bytes
namespace: 11 bytes
token: <authentication_token>
# 集群编辑
在集群管理界面,切换到“我是管理员”标签,即可对有权限的集群进行编辑。编辑模式仅支持对集群名称和备注编辑。
# 环境管理
选择某个Kubernetes集群后,会在左侧出现“环境管理”、“部署管理”、“PV管理”二级菜单。 点击“环境管理”进入环境管理界面。如果想切换到别的Kubernetes集群下进行环境管理,可以在顶部面包屑切换。
# 新建
只有集群管理员才有在集群下创建环境的权限。 新建环境时,如果该环境设置为“企业内公用”,则企业成员均有该环境的使用权限。否则只有被添加进来的用户有环境使用权限。
# 编辑
只有环境的管理员才有集群编辑权限,编辑环境时仅能编辑备注和人员。
# 删除
只有环境管理员才能删除环境,环境被删除时,需要先行将Configmap,密文,服务配置,部署实例,域名,证书,pvc清空后或删除。
# 审计
作为企业级应用,ezK8S提供了环境操作审计功能,以查看操作历史。
# 部署管理
点击左侧“部署管理”菜单,即可进入部署管理界面。部署管理界面功能较多,所以引入了三级菜单。可以在顶部面包屑切换不同的Kubernetes集群,在三级菜单顶部切换环境。
# 部署模板
进行容器化部署,可以通过部署模板简化操作。将需要的配置项通过模板进行固化后再后续的部署任务中,可以按照模板配置进行自动部署。 点击左侧“部署模板”菜单,可以查看现有部署模板列表,并对现有部署模板进行编辑,新建等操作。
部署模板主要包括基本设置、权限设置、容器设置、健康检查和部署模板几个部分。
创建部署模版: 副本数量:是该模板创建部署任务时默认的副本数量,在发起部署任务的时候,可以修改。 服务端口:是容器启动时的默认服务端口。 镜像源:可以选择本平台内置的docker制品库、docker镜像库或者通过“服务集成”配置的第三方docker镜像库。 权限设置: 开启部署任务审批后,所有部署任务需要经过环境管理员或者集群管理员审批后方可执行。 容器设置: 容器设置部分是可选设置,点击右上角的“收起/展开”按钮可以展开或者收起编辑区域。
健康检查: 同样,健康检查同样是可选的高级设置,健康检查内包括容器存活检查(对应Kubernetes的Liveness配置)和容器就绪检查(对应Kubernetes的Readiness配置)两个检查开关。每种检查又包括TCP端口检查、Http请求检查和执行命令检查三种检查方法。
# 部署任务
创建好部署模板之后,就可以基于部署模板创建部署任务。新建部署任务的入口有两处,可以在部署模板处直接创建基于该模板的部署任务,如下图:
# 部署实例
部署实例是部署任务运行成功后生成的运行中的实例。在创建部署任务时,会根据部署模板和时间自动生成实例名称(支持手动修改)。 同一个部署模板可以被部署出多个不同名的部署实例。对于同名部署实例,部署任务会用更新实例的方式进行部署。例如下图中的ezcode和ezcode-200609185608两个部署实例都是由同一个部署模板ezCode及同一个镜像版本0.0.0.2创建。
# Pods
点击Pods按钮,右浮界面可以查看Pods的数量及详情。Pods的数量由部署任务中设置的“副本数量”决定,并可在此处支持手动调整Pod数量实现服务弹性伸缩。每个Pod的名称由实例名称加上一串随机数字组成。
# Events
Events常用于排查Kubernetes集群错误。此数据非持久化保存,请注意。
# ConfigMap
ConfigMap和密文相关操作比较简单,就是简单的添加key和value对。
# 密文
密文对应Kubernetes集群的Secret概念,和Configmap的操作类似,不重复赘述。
# 服务
服务对应Kubernetes集群的Service概念,pod通过Service向外部提供可访问的服务。 通过本容器部署系统的服务绑定功能,可以将Service和部署实例通过实例名称、标签或者Endpoint等方式绑定。
# 域名
域名的设置中需要注意:如果选择的是https的域名,则需要选择相应的https证书。也即只能选择域名匹配的证书。
# 证书
对于https的服务,需要对应的证书文件。本容器部署系统提供了服务的证书管理功能,并提供了两种证书上传方式。文件上传及文本复制方式。 上传证书时,会检测证书内容的合法性。对于日期是否过期等会做友情提示。
# PVC
PVC对应Kubernetes集群的PersistentVolumeClaim概念,创建PVC之前,应该先创建PV,不同类型的PV,需要创建与之对应类型的PVC才能被使用。
# 弹性伸缩
通过配置HPA(Horizontal Pod Autoscaler)即可实现自动弹性伸缩。
# 部署统计
此功能统计各部署模板在指定时间段内的部署情况,考虑到实时计算的性能问题,当日数据需在第二日查看。
# PV管理
点击左侧PV管理二级目录,即可进入到PV管理界面。提供PV的新建、刷新、删除及查看功能。因为PV是在远程Kubernetes集群创建,故提供刷新功能以同步状态。 在顶部面包屑导航可以切换查看不同Kubernetes集群下的PV。
# 访问模式
Kubernetes中PV的访问模式分为如下三类: ReadWriteOnce – PV 能以 read-write 模式 mount 到单个节点。 ReadOnlyMany – PV 能以 read-only 模式 mount 到多个节点。 ReadWriteMany – PV 能以 read-write 模式 mount 到多个节点。
# 新建
只有集群管理员能新建PV 新建NFS类型PV时需要注意服务器IP需要是Kubernetes集群可访问的IP
# 删除
只有集群管理员才可以对集群下的PV进行管理,PV属于集群,不属于环境,所以只有集群管理员才可以删除PV
# 查看
点击PV管理界面的查看按钮即可查看PV详情,有集群下任意一个环境的使用权限的用户才有集群PV的查看权限