在华为云 CCE 上安装 KubeSphere
本指南将介绍如果在华为云 CCE 容器引擎上部署并使用 KubeSphere 3.3.0 平台。
华为云 CCE 环境准备
创建 Kubernetes 集群
首先按使用环境的资源需求创建 Kubernetes 集群,满足以下一些条件即可(如已有环境并满足条件可跳过本节内容):
- 如需在 Kubernetes 上安装 KubeSphere 3.3.0,您的 Kubernetes 版本必须为:v1.19.x,v1.20.x,v1.21.x,v1.22.x 或 v1.23.x(实验性支持)。
- 需要确保 Kubernetes 集群所使用的云主机的网络正常工作,可以通过在创建集群的同时自动创建或使用已有弹性 IP;或者在集群创建后自行配置网络(如配置 NAT 网关)。
- 工作节点规格建议选择
s3.xlarge.2
的4核|8GB
配置,并按需扩展工作节点数量(通常生产环境需要 3 个及以上工作节点)。
创建公网 kubectl 证书
- 创建完集群后,进入资源管理 > 集群管理界面,在基本信息 > 网络 面板中,绑定
公网apiserver地址
; - 在右侧面板中,选择 kubectl 标签页,并在下载kubectl配置文件列表项中点击此处下载,即可获取公用可用的 kubectl 证书。
获取 kubectl 配置文件后,可通过 kubectl 命令行工具来验证集群连通性:
$ kubectl version
Client Version: version.Info{Major:"1", Minor:"18", GitVersion:"v1.18.8", GitCommit:"9f2892aab98fe339f3bd70e3c470144299398ace", GitTreeState:"clean", BuildDate:"2020-08-15T10:08:56Z", GoVersion:"go1.14.7", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"17+", GitVersion:"v1.17.9-r0-CCE20.7.1.B003-17.36.3", GitCommit:"136c81cf3bd314fcbc5154e07cbeece860777e93", GitTreeState:"clean", BuildDate:"2020-08-08T06:01:28Z", GoVersion:"go1.13.9", Compiler:"gc", Platform:"linux/amd64"}
部署 KubeSphere
创建自定义 StorageClass
备注
由于华为 CCE 自带的 Everest CSI 组件所提供的 StorageClass csi-disk
默认指定的是 SATA 磁盘(即普通 I/O 磁盘),但实际创建的 Kubernetes 集群所配置的磁盘基本只有 SAS(高 I/O)和 SSD (超高 I/O),因此建议额外创建对应的 StorageClass(并设定为默认)以方便后续部署使用。参见官方文档 - 使用 kubectl 创建云硬盘。 以下示例展示如何创建一个 SAS(高 I/O)磁盘对应的 StorageClass:
# csi-disk-sas.yaml
---
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
annotations:
storageclass.kubernetes.io/is-default-class: "true"
storageclass.kubesphere.io/support-snapshot: "false"
name: csi-disk-sas
parameters:
csi.storage.k8s.io/csi-driver-name: disk.csi.everest.io
csi.storage.k8s.io/fstype: ext4
# 绑定华为 “高I/O” 磁盘,如需 “超高I/O“ 则此值改为 SSD
everest.io/disk-volume-type: SAS
everest.io/passthrough: "true"
provisioner: everest-csi-provisioner
allowVolumeExpansion: true
reclaimPolicy: Delete
volumeBindingMode: Immediate
关于如何设定/取消默认 StorageClass,可参考 Kubernetes 官方文档 - 改变默认 StorageClass。
通过 ks-installer 执行最小化部署
接下来就可以使用 ks-installer 在已有的 Kubernetes 集群上来部署 KubeSphere,建议首先还是以最小功能集进行安装,可执行以下命令:
kubectl apply -f https://github.com/kubesphere/ks-installer/releases/download/v3.3.0/kubesphere-installer.yaml
kubectl apply -f https://github.com/kubesphere/ks-installer/releases/download/v3.3.0/cluster-configuration.yaml
执行部署命令后,可以通过进入工作负载 > 容器组 Pod 界面,在右侧面板中查询 kubesphere-system
命名空间下的 Pod 运行状态了解 KubeSphere 平台最小功能集的部署状态;通过该命名空间下 ks-console-xxxx
容器的状态来了解 KubeSphere 控制台应用的可用状态。
开启 KubeSphere 外网访问
通过 kubesphere-system
命名空间下的 Pod 运行状态确认 KubeSphere 基础组件都已进入运行状态后,我们需要为 KubeSphere 控制台开启外网访问。
进入资源管理 > 网络,在右侧面板中选择 ks-console
更改网络访问方式,建议选用 负载均衡(LoadBalancer
访问方式(需绑定弹性公网 IP),配置完成后如下图:
服务细节配置基本上选用默认选项即可,当然也可以按需进行调整:
通过负载均衡绑定公网访问后,即可使用给定的访问地址进行访问,进入到 KubeSphere 的登录界面并使用默认帐户(用户名 admin
,密码 [[email protected]](https://kubesphere.io/cdn-cgi/l/email-protection)
)即可登录平台。
通过 KubeSphere 开启附加组件
上面的示例演示了默认的最小安装过程,要在 KubeSphere 中启用其他组件,请参阅启用可插拔组件。
警告
在开启 Istio 组件之前,由于定制资源定义(CRD)冲突的问题,需要先删除华为 CCE 自带的 applications.app.k8s.io
,最直接的方式是通过 kubectl 工具来完成:
kubectl delete crd applications.app.k8s.io
全部附加组件开启并安装成功后,进入集群管理界面,在系统组件 区域可以看到已经开启的各个基础和附加组件。