K8S容器平台在线安装
安装前环境检查
在开始正式安装之前,务必根据您要部署的基础环境查看 环境准备
软件检查
软件检查 | 兼容要求 | 补充说明 |
---|---|---|
Kubernetes | 1.18~1.20 | 可部署通过官方兼容性认证的k8s发行版,如Rancher、Kubesphere、CCE等 (kubectl version查询版本) |
Docker-ce | 18.09以上 | docker -v查询版本 |
Containerd | 1.0以上 | containerd -v查看版本 |
标记节点角色
1.为所有可用节点打上 qfusion/node= 标签标记,用于部署产品和调度数据库实例。
kubectl label node [Nodes] qfusion/node=
2.为运行 QFusion 平台管控面组件的节点打上 qfusion/master=true 标签,标记多个节点时将采取高可用部署策略。
kubectl label node [Nodes] qfusion/master=true
去污点
需要在任意一台master机器上执行去污点的命令
kubectl taint nodes --all node-role.kubernetes.io/master-
创建集群命名空间
1.登录任意master节点,手动为管控面组件创建命名空间“qfusion”,用于部署产品组件。
kubectl create ns qfusion
- 命名空间名称必须是qfusion,请勿更改。
2.数据库实例将运行在单独的命名空间,由管控面组件自动创建,通常为 qfusion-admin。
3.从 3.12.3 版本开始,qfusion 产品引入 Istio 实现服务网格,使用前需为 qfusion 命名空间打上特定标签,否则无法从集群外部访问:
kubectl label ns qfusion qf-istio-discovery=enabled qf-useistio=enabled --overwrite
移除或调整资源限制
1.QFusion 的 elasticsearch, prometheus 等监控组件以及数据库实例均需要较高的资源规格。如果集群中有配置默认的 LimitRange 资源,可能会导致数据库集群创建失败、管理组件 Pending 或频繁 OOM 重启等问题。一般情况下建议移除(或放宽)LimitRange。
kubectl delete limitrange --all -n qfusion
kubectl delete limitrange --all -n qfusion-admin
2.如果集群qfusion-admin命名空间中配置了较小的ResourceQuota限额,可能会导致使用一段时间后无法创建新的数据库集群。如无特殊需求建议移除或扩大该命名空间下的限额。
kubectl delete resourcequota --all -n qfusion-admin
配置安装文件
1.基于示例配置文件创建 ConfigMap
kubectl -n qfusion apply -f https://image.irds.cn/latest/profiles/configmap.yaml
2.根据需要,可在安装前对配置进行自定义。如果已创建 configmap,可通过
kubectl -n qfusion edit cm install-ext-profiles
对配置进行修改:
# Common
common:
appConfig:
config:
ntpServer: PROFILE_NTP
cpuOverRate: 2
memoryOverRate: 1
clusterForcedAntiAffinity: true
proxyServiceType: "ClusterIP"
clusterServiceType: "ClusterIP"
# Storage
csi-localpv:
enabled: true
localpv:
# 卷挂载目录
iops: 1000000
storageSize: 100000
vip-allocator:
enabled: true
# Monitor
monitor:
sync:
username: root
enabled: false
# 172.16.130.26:22:123456,172.16.130.27:22:123456,172.16.130.25:22:123456
hosts: "10.10.150.11:22:123456,10.10.150.75:22:123456"
prometheus:
nodeExporterPort: "9200"
node-exporter:
listenPort: "9200"
-
文件内容默认配置可直接使用无需更改。
-
常见的配置项自定义场景如下:
修改 CPU 超分比,默认为 2,对应配置项为 cpuOverRate: 2。
修改 QFusion 自带的 NodeExporter 监控端口,默认使用 9200 端口,冲突时可修改为其他可用端口,对应配置项为 nodeExporterPort: “9200"和listenPort: “9200”
安装helm chart
1.使用 helm 从远程仓库安装 qfusion-installer chart 到集群中,即可部署 QFusion 产品:
helm install qfusion qfusion-installer --repo https://helm.woqutech.com:8043/qfusion-rds --devel -n qfusion --set nodeLabel=false
可通过 –set 支持以下安装选项:
-
nodeLabel:是否由安装控制器自动标记节点,已手动执行节点标记因此设置为 false。
-
useLimits:是否为监控组件设置内存 limits,可在集群对 limits 有强制要求时设置为 true。默认为 false。
-
***安装时需添加node selector参数,否则可能调度失败
-
vip-allocator 状态是pending,原因是如图标签导致的调度问题(qfusion的master节点不是k8s集群的master,导致调度失败);解决方法:去掉这个标签就好了。
-
在线安装需要repo【helm.woqutech.com:8043/qfusion-rds】中已同步所请求的安装包,默认安装已发布的最新版本,可通过 –version 命令行选项指定版本。
-
注:如果helm install执行报错Helm not found,请参考步骤2,先安装helm。
2.helm3安装方法,如下方式任选一种即可:
(1)在线安装
curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash
(2)下载二进制包离线安装:
使用二进制包安装步骤:
-
下载 需要的版本(helm官网链接:https://helm.sh/zh/docs/intro/install/)
-
解压(tar -zxvf helm-v3.0.0-linux-amd64.tar.gz)
-
在解压目中找到helm程序,移动到需要的目录中(mv linux-amd64/helm /usr/local/bin/helm)然后就可以执行客户端程序并添加稳定的仓库.
安装结果检查
1.执行
[root@10-10-150-157 installer]# kubectl get pod -n qfusion
NAME READY STATUS RESTARTS AGE
qfusion-installer-7686fd6cf9-q6xnz 0/1 Pending 0 17m
查看QFusion的pod状态是否就绪,若安装正常,大约5min左右所有pod状态即可为Running或Completed状态。
安装成功之后即可正常登陆平台,具体操作可参考 申请授权 进行功能使用。
2.如果10分钟以上仍有非Running/非Completed的状态,请联系 在线客服 进行处理。
常见异常状态参考:
Pending(调度失败,资源不足,或者节点存在Pod不能容忍的污点)
Terminating(磁盘空间不足,Dockerd与containerd状态不同步)
CrashLoopBackOff(Pod反复拉起后退出登陆,一般是系统配置问题,比如内存资源不足,系统OOM,cgroup OOM)
OOMKilled(节点内存不足或启动内存有限制)
Evicted(磁盘空间不足)