在腾讯云 TKE 安装 KubeSphere

本指南将介绍如何在腾讯云 TKE 上部署并使用 KubeSphere 3.0.0 平台。

腾讯云 TKE 环境准备

创建 Kubernetes 集群

首先按使用环境的资源需求创建 Kubernetes 集群,满足以下一些条件即可(如已有环境并满足条件可跳过本节内容):

  • KubeSphere 3.0.0 默认支持的 Kubernetes 版本为 1.15.x, 1.16.x, 1.17.x, 1.18.x,需要选择其中支持的版本进行集群创建(如 1.16.3, 1.18.4)。
  • 如果老集群版本不大于1.15.0,需要操作控制台先升级master节点然后升级node节点,依次升级至符合要求版本即可。
  • 工作节点机型配置规格方面选择 标准型S54核|8GB 配置即可,并按需扩展工作节点数量(通常生产环境需要 3 个及以上工作节点)。

创建公网 kubectl 证书

  • 创建完集群后,进入 容器服务 > 集群 界面,选择刚创建的集群,在 基本信息 面板中, 集群APIServer信息 中开启 外网访问
  • 然后在下方 kubeconfig 列表项中点击 下载,即可获取公用可用的 kubectl 证书。

generate-kubeconfig.png

  • 获取 kubectl 配置文件后,可通过 kubectl 命令行工具来验证集群连接:
  1. $ kubectl version
  2. Client Version: version.Info{Major:"1", Minor:"18", GitVersion:"v1.18.4", GitCommit:"c96aede7b5205121079932896c4ad89bb93260af", GitTreeState:"clean", BuildDate:"2020-06-17T11:41:22Z", GoVersion:"go1.13.9", Compiler:"gc", Platform:"linux/amd64"}
  3. Server Version: version.Info{Major:"1", Minor:"18+", GitVersion:"v1.18.4-tke.2", GitCommit:"f6b0517bc6bc426715a9ff86bd6aef39c81fd64a", GitTreeState:"clean", BuildDate:"2020-08-12T02:18:32Z", GoVersion:"go1.13.15", Compiler:"gc", Platform:"linux/amd64"}

KubeSphere 平台部署

通过 ks-installer 执行最小化部署

接下来就可以使用 ks-installer 在已有的 Kubernetes 集群上来执行 KubeSphere 部署,建议首先还是以最小功能集进行安装。

  • 使用 kubectl 执行以下命令安装 KubeSphere:
  1. kubectl apply -f https://github.com/kubesphere/ks-installer/releases/download/v3.1.0/kubesphere-installer.yaml
  • 下载集群配置文件
  1. wget https://github.com/kubesphere/ks-installer/releases/download/v3.1.0/cluster-configuration.yaml

提示

腾讯云创建云硬盘大小必须为 10 的倍数,且普通云硬盘/高性能云硬盘最小是 10G,SSD/HSSD 云硬盘最小是 20G。Kubernetes 集群创建完成后会自动创建好普通云硬盘的 StoragClass,这里示例将直接使用默认的普通云硬盘。

  • 修改集群配置文件,PVC 修改为 10G 的倍数(1倍n倍都可以),其他可拔插组件如果开启也需要调整,开启哪个调整哪个即可,默认最小化安装未开启可插拔组件。
  1. vim cluster-configuration.yaml
  2. //默认值
  3. common:
  4. mysqlVolumeSize: 20Gi # MySQL PVC size.
  5. minioVolumeSize: 20Gi # Minio PVC size.
  6. etcdVolumeSize: 20Gi # etcd PVC size.
  7. openldapVolumeSize: 2Gi # openldap PVC size.
  8. redisVolumSize: 2Gi # Redis PVC size.
  9. //修改后的值,PVC 为 10G 的倍数(1倍n倍都可以),其他可拔插组件如果开启也需要调整
  10. common:
  11. mysqlVolumeSize: 20Gi # MySQL PVC size.
  12. minioVolumeSize: 20Gi # Minio PVC size.
  13. etcdVolumeSize: 20Gi # etcd PVC size.
  14. openldapVolumeSize: 10Gi # openldap PVC size.
  15. redisVolumSize: 10Gi # Redis PVC size.
  • 然后执行以下命令部署:
  1. kubectl apply -f cluster-configuration.yaml
  • 执行以下命令查看部署日志,当日志输出如以下图片内容时则表示部署完成:
  1. kubectl logs -n kubesphere-system $(kubectl get pod -n kubesphere-system -l app=ks-install -o jsonpath='{.items[0].metadata.name}') -f

ks-install-log.png

访问 KubeSphere 控制台

部署完成后,您可以通过以下步骤访问 KubeSphere 控制台。

NodePort 方式访问

  • 容器服务 > 集群 界面中,选择创建好的集群,在 节点管理 > 节点 面板中,查看任意一个节点的 公网 IP(集群安装时默认会免费为每个节点绑定公网 IP)。

nodeport.png

  • 由于服务安装时默认开启 NodePort 且端口为 30880,浏览器输入 <公网 IP>:30880 ,并以默认账号(用户名 admin,密码 P@88w0rd)即可登录控制台。

console.png

LoadBalancer 方式访问

  • 容器服务 > 集群 界面中,选择创建好的集群,在 服务与路由 > service 面板中,点击 ks-console 一行中 更新访问方式

loadbalancer1.png

  • 服务访问方式 选择 提供公网访问端口映射服务端口 填写您希望的端口号,点击 更新访问方式

loadbalancer2.png

  • 此时界面您将会看到 LoadBalancer 公网 IP:

loadbalancer3.png

  • 浏览器输入 <LoadBalancer 公网 IP>:<映射端口>,并以默认账号(用户名 admin,密码 P@88w0rd)即可登录控制台。

console.png

提示

若您用 admin 账号无法登录控制台,界面显示 “Internal error occurred: account is not active” 且 ks-controller-manager pod 日志显示 “tls: bad certificate”,则需要更新一下 ks-controller-manager 的证书:

  1. kubectl apply -f https://raw.githubusercontent.com/kubesphere/ks-installer/2c4b479ec65110f7910f913734b3d069409d72a8/roles/ks-core/prepare/files/ks-init/users.iam.kubesphere.io.yaml
  2. kubectl apply -f https://raw.githubusercontent.com/kubesphere/ks-installer/2c4b479ec65110f7910f913734b3d069409d72a8/roles/ks-core/prepare/files/ks-init/webhook-secret.yaml
  3. kubectl -n kubesphere-system rollout restart deploy ks-controller-manager

通过 KubeSphere 开启附加组件

以上示例演示了默认的最小安装过程,要在 KubeSphere 中启用其他组件,请参阅启用可插拔组件。 全部附加组件开启并安装成功后,进入集群管理界面,可以得到如下界面呈现效果,特别是在 服务组件 部分可以看到已经开启的各个基础和附加组件: console-full.png