Linux后端安装业务集群
本文档介绍使用bke和kubectl进行业务集群搭建验证。
节点要求
- 节点可以连通外部网络。
- 节点可以使用root用户登录。
- 引导节点上需要安装tar工具。
须知:
建议您的节点环境为裸机操作系统,未安装任何docker与Kubernetes组件,否则可能会发生版本冲突导致安装失败。如需在存量环境试验性安装,可下载孵化期工具env-check进行环境校验。
管理集群
引导节点初始化完成后,在/bke/cluster目录下会生成三个默认配置的yaml文件,分别是:
- 1master.yaml:用于创建1个master节点的管理集群。
- 1master1node.yaml:用于创建1个master节点和1个worker节点的管理集群。
- 3master.yaml:用于创建3个master节点的管理集群,可配置负载均衡器成为高可用的管理集群。
下面1master.yaml为例。
修改1master.yaml文件
对1master.yaml文件进行编辑,填入正确的节点信息。
说明:
自定义addon安装参考附录章节。
apiVersion: bke.bocloud.com/v1beta1
kind: BKECluster
metadata:
creationTimestamp: null
name: bke-cluster
namespace: bke-cluster
spec:
KubeletConfigRef: # kubelet的自定义配置
name: bke-kubelet
namespace: bke-kubelet
clusterConfig:
addons:
- name: kubeproxy
param:
clusterNetworkMode: calico
version: v1.33.1-of.1
- name: calico
param:
calicoMode: vxlan
ipAutoDetectionMethod: skip-interface=nerdctl*
version: v3.27.3
- name: coredns
version: v1.10.1
- block: true # 注意为cluster-api组件,管理集群有此项addon,业务集群无此项addon
name: cluster-api
param:
manage: "true"
offline: "true"
sandbox: deploy.bocloud.k8s:40443/kubernetes/pause:3.9
version: v1.4.3
- name: openfuyao-system-controller # openFuyao的核心组件addon
param:
helmRepo: https://helm.openfuyao.cn/_core
version: latest
cluster:
apiServer:
extraArgs:
max-mutating-requests-inflight: "3000"
max-requests-inflight: "1000"
watch-cache-sizes: node#1000,pod#5000
certificatesDir: /etc/kubernetes/pki
containerRuntime:
cri: containerd
param:
data-root: /var/lib/containerd
runtime: runc
containerdConfigRef: # containerd的自定义配置
name: bke-containerd
namespace: bke-containerd
containerdVersion: v2.1.1
controllerManager:
extraArgs:
kube-api-burst: "1000"
kube-api-qps: "1000"
etcd:
dataDir: /var/lib/etcd
httpRepo: # http仓库,离线安装需要把ip改为实际的引导节点ip
domain: http.bocloud.k8s
ip: 192.168.200.173 # 自定义仓库需要修改
port: "40080"
prefix: ""
imageRepo:
domain: deploy.bocloud.k8s # image仓库,离线安装需要把ip改为实际的引导节点ip
ip: 192.168.200.173 # 自定义仓库需要修改
port: "40443"
prefix: kubernetes
kubelet:
extraArgs:
kube-api-burst: "2000"
kube-api-qps: "1000"
extraVolumes:
- hostPath: /var/lib/kubelet
name: kubelet-root-dir
kubernetesVersion: v1.33.1-of.1
networking:
dnsDomain: cluster.local
podSubnet: 10.250.0.0/16
serviceSubnet: 10.96.0.0/16
ntpServer: 192.168.200.173:123
openFuyaoVersion: latest
scheduler:
extraArgs:
kube-api-qps: "1000"
customExtra:
chartRepoPort: "38080"
clusterapi: latest
containerd: containerd-v2.1.1-linux-{.arch}.tar.gz
domain: deploy.bocloud.k8s
host: 192.168.200.173 # 修改为引导节点ip
imageRepoPort: "40443"
nfsserverpath: /
otherRepo: ""
otherRepoIp: ""
otherSource: ""
yumRepoPort: "40080"
nodes: # 实际创建集群所需要填写的节点
- hostname: m1 # 修改为节点名称
ip: 127.0.0.2 # 修改为实际节点ip
password: '******' # 修改为实际节点ip密码
port: "22" # 默认端口号为22
role:
- master/node
- etcd
username: root # 默认为root权限用户
controlPlaneEndpoint: {}
pause: false
status:
agentStatus: {}
ready: false其余项为默认项,可以不用更改。需要用户确保编辑提交的1master.yaml是可靠的,调谐器会进行校验,但无法确认业务逻辑上的正确性(如IP地址填错,密码填错等,需要用户确认填写信息无误)。
创建管理集群
执行以下指令完成集群的创建,-f后的文件替换为实际的1master.yaml的文件路径。
bke cluster create -f /bke/cluster/1master.yaml业务集群
使用前面创建的管理集群,进一步创建业务集群,流程类似管理集群的创建流程,只需要将管理集群的addon注释掉,不进行安装。
- block: true # 注意为cluster-api组件,管理集群有此项addon,业务集群无此项addon
name: cluster-api
param:
manage: "true"
offline: "true"
sandbox: deploy.bocloud.k8s:40443/kubernetes/pause:3.9
version: v1.4.3用编辑好的1master.yaml创建业务集群,有两种方式:
- 使用bke安装工具,需要在管理集群节点下载bke安装工具,并执行安装指令。
# 方式1:快捷下载
curl -sfL https://openfuyao.obs.cn-north-4.myhuaweicloud.com/openFuyao/bkeadm/releases/download/1.0.5/download.sh | bash
# 方式2:校验下载文件的完整下载
## 下载download.sh脚本文件
curl -LO https://openfuyao.obs.cn-north-4.myhuaweicloud.com/openFuyao/bkeadm/releases/download/1.0.5/download.sh
## 下载download.sh文件的校验文件并进行校验(可选),校验成功会输出download.sh: OK,校验失败就需要联系openFuyao社区维护人员定位原因
curl -LO https://openfuyao.obs.cn-north-4.myhuaweicloud.com/openFuyao/bkeadm/releases/download/1.0.5/download.sh.sha256
sha256sum -c download.sh.sha256
## 运行download.sh文件下载bke安装工具,执行过程中会校验安装工具的sha256sum
chmod +x download.sh && ./download.sh- 使用kubectl安装,直接调用K8s的APIServer。
# 先创建命名空间,对应着1master.yaml文件中metadata.namespace字段
kubectl create namespace metadata.namespace
# 执行安装指令
kuebctl apply -f /bke/cluster/1master.yamlFAQ
- 创建集群过程中出现安装异常,尝试以下解决方案:
查看bke指令执行后的控制台的日志初步定位。
结合管理集群的bke-controller-manager的pod日志和业务集群节点的bkeagent日志(/var/log/bkeagent.log)定位。
bashkubectl logs -n cluster-system bke-controller-manager-xxx -c manager查看集群节点的bke日志(/var/log/bke.log)定位。
后续操作
完成业务集群安装后,对核心组件生成、挂载证书操作说明请参见openFuyao核心组件的证书生成和挂载。
附录
附录部分介绍些Linux后端安装集群的知识。
自定义addon安装
openFuyao提供了K8s集群的安装部署能力,通过添加addon字段安装用户自定义扩展件,bke-manifests提供了社区使用的扩展件的yaml文件,包括coredns、calico等组件。此外通过hostPath挂载允许用户将自定义的扩展件的yaml文件,作到自定义addon的安装。 hostPath挂载路径是/etc/openFuyao/addons/manifests/kubernetes。
按照如下步骤进行自定义addon扩展件的安装:
拉起引导集群或者管理集群,作为业务集群的集群管理中心。
按照组件名/版本号/yaml文件的结构将自定义addon扩展件的yaml文件放置到/etc/openFuyao/addons/manifests/kubernetes目录下,如下图所示,给出的是复制操作模拟自定义处理yaml文件。
安装业务集群时,添加addon字段安装自定义扩展件。

