离线部署
本文档介绍Kubernetes离线安装指导,下面以openEuler22.03 ARM64为例,其他支持的操作系统、架构安装流程与示例流程一致。
离线部署与在线部署相比多出制品(artifact)概念,artifact制品中包含离线部署所需的镜像文件、二进制文件与部分组件配置文件。在进行离线部署时需提前在一台可联网机器上下载artifact,完成下载后将制品和安装包复制到离线环境,在离线环境执行安装。
注意事项
openFuyao目前未支持扩展组件在离线环境下的安装部署,如果用户有需求可以尝试将所需镜像上传至离线环境的本地镜像仓,安装部署时将镜像地址修改为本地镜像仓地址。但openFuyao无法保证安装结果成功。
配置要求
节点资源要求
表 1 worker节点建议资源配置信息
vCPU | 内存(GB) |
---|---|
4 | 8 |
说明:
当未启用并发多线程(SMT)或超线程时,一个vCPU相当于一个物理内核。启用后,使用以下公式换算:vCPU=(每个内核的线程数×内核数)×插槽数。
表 2 master节点建议资源配置信息
vCPU | 内存(GB) | worker节点数量 |
---|---|---|
4 | 16 | 1~24 |
8 | 32 | 25~100 |
16 | 64 | 101~150 |
24 | 64 | 151~200 |
说明:
- master节点资源大小随worker节点数量增加而增加。
- 当未启用并发多线程(SMT)或超线程时,一个vCPU相当于一个物理内核。启用后,使用以下公式换算:vCPU=(每个内核的线程数×内核数)×插槽数。
节点配置要求
- 选定一台机器作为安装执行机,可为集群中的某一节点,也可作为集群外机器。
- 所有机器可使用root用户登录。
- 所有待安装集群节点必须已安装如下工具:tar、socat、conntrack、iptables、ipset、ipvsadm。
- 待安装harbor节点必须已安装如下工具:tar、openssl、iptables。
- 安装执行机必须已安装tar工具。
环境准备
四台已经安装openEuler22.03操作系统的Linux计算机,其中一台联网,其余三台未联网。
表 3 环境信息
主机IP地址 | 主机名称 | 操作系统 | 角色 |
---|---|---|---|
192.168.0.9 | node8 | openEuler | 联网主机用于制作离线包。 |
192.168.0.10 | node9 | openEuler | 离线环境master节点。 |
192.168.0.11 | node10 | openEuler | 离线环境worker节点。 |
192.168.0.12 | node11 | openEuler | 离线环境镜像节点。 |
部署准备
-
以root用户登录node8节点。
-
下载安装工具与安装脚本。
curl -sfL https://openfuyao.obs.cn-north-4.myhuaweicloud.com/openFuyao/installer/releases/download/v25.03/download.sh | bash -
执行上述命令默认下载最新版本的安装包,若想下载其他版本,请使用如下命令指定版本后进行下载。
说明:
安装包完整校验请参见安装包完整性校验。export VERSION=x.y.z
curl -sfL https://openfuyao.obs.cn-north-4.myhuaweicloud.com/openFuyao/installer/releases/download/v25.03/download.sh | bash - -
导出制品。
-
执行如下命令,进入安装包目录。
说明:
此处以openEuler22.03 ARM64为例,具体路径应视实际情况而定。export INSTALLER_PACKAGE_PATH=fuyao-v25.03-openEuler-22.03-arm64
cd $INSTALLER_PACKAGE_PATH -
执行如下命令,在安装包目录执行命令导出制品。
./fuyao export artifact
-
执行如下命令,查看制品。
- 制品默认存放路径为二进制存放路径。
- fuyao-offline-artifact.tar.gz即为制品文件。
ls
-
-
将下载的制品artifact和安装包通过U盘等介质复制至离线环境安装节点。
安装步骤
-
以root用户登录离线安装执行机。
-
配置使用密钥登录。
说明:
若已提前配置使用密钥登录,则跳过此步骤。if [ ! -f "$HOME/.ssh/id_rsa" ] || [ ! -f "$HOME/.ssh/id_rsa.pub" ]; then
ssh-keygen -t rsa-sha2-512 -P "" -f $HOME/.ssh/id_rsa && ls $HOME/.ssh;
fi
echo "" >> $HOME/.ssh/authorized_keys && \
echo "$(cat $HOME/.ssh/id_rsa.pub)" >> $HOME/.ssh/authorized_keys && \
awk ' !x[$0]++{print > "'$HOME'/.ssh/authorized_keys"}' $HOME/.ssh/authorized_keys -
进入到安装包目录。
说明:
此处以openEuler22.03 ARM64为例,具体路径应视实际情况而定。export INSTALLER_PACKAGE_PATH=fuyao-v25.03-openEuler-22.03-arm64
cd $INSTALLER_PACKAGE_PATH -
创建离线镜像仓并上传制品。
-
将离线镜像仓库创建在执行命令节点。
export OPENFUYAO_ARTIFACT_PATH=/root/fuyao-offline-artifact.tar.gz
./fuyao create registry --artifact-path $OPENFUYAO_ARTIFACT_PATH --registry-passwd xxxxx --registry-db-passwd xxxxx -
将离线镜像仓库创建在其他节点。
export OPENFUYAO_ARTIFACT_PATH=/root/fuyao-offline-artifact.tar.gz
./fuyao create registry --artifact-path $OPENFUYAO_ARTIFACT_PATH --registry-node-host 192.168.0.12 --registry-node-user root --registry-node-passwd xxxxx --registry-passwd xxxxx --registry-db-passwd xxxxx -
--artifact-path
后需填写制品存放路径。 -
--registry-passwd
后需填写镜像仓登录密码,要求密码长度8~32位,且包含英文字母、数字、特殊字符`~!@#%^&*()-_=+|[{ }];:'",<.>/?`
。 -
--registry-db-passwd
后需填写镜像仓数据库密码,要求密码长度8~32位,且包含英文字母、数字、特殊字符`~!@#%^&*()-_=+|[{ }];:'",<.>/?`
。 -
待出现
successfully
字样则表明已创建离线镜像仓并上传制品。说明:
离线harbor采用https方式访问,故而采用自签名方式生成证书,证书存放路径为/etc/ssl/certs/openfuyao-harbor
与/etc/ssl/certs/openfuyao-harbor/openfuyao-harbor-ca-bk.crt
, 在安装集群过程中会复制harbor证书到各节点,复制到各节点中的证书存放路径为/etc/ssl/certs/openfuyao-harbor/openfuyao-harbor-ca.crt
-
-
生成集群规划配置文件。
-
执行如下命令,生成配置文件。
./fuyao create cluster-config
-
配置文件内容如下。
apiVersion: openfuyao.io/v1beta1
kind: cluster
metadata:
name: example-cluster
spec:
nodes:
masters:
- hostname: fuyao-master
user: root
ip: o.x.y.z
port: 22
privateKeyPath: /root/.ssh/id_rsa
removeTaint: true
labels:
- name: label-name
value: label-value
workers:
- hostname: fuyao-worker
user: root
ip: o.x.y.z
port: 22
privateKeyPath: /root/.ssh/id_rsa
labels:
- name: label-name
value: label-value
-
-
修改集群规划配置文件。
-
编辑集群规划配置文件。
export CLUSTER_OFFLINE_CONFIG_FILE=example-cluster.yaml
vi $CLUSTER_OFFLINE_CONFIG_FILE -
填写节点清单信息,示例如下。
- hostname:集群中节点名称,可与实际机器名称不同。
- user:部署时用于登录节点的用户名,当前仅支持root用户。
- ip:节点IP地址。
- port:ssh使用的端口号,默认为22。
-
输入
i
进入编辑状态进行修改。修改完成后,输入:wq
保存并退出。apiVersion: openfuyao.io/v1beta1
kind: cluster
metadata:
name: example-cluster
spec:
# 节点清单
nodes:
# master节点配置
masters:
# 集群中hostname,可以和主机hostname不同
- hostname: fuyao-master # 修改项
user: root # 修改项
ip: 192.168.0.10 # 修改项
port: 22 # 修改项
# privateKeyPath: /root/.ssh/id_rsa # 修改项(选填项)
# true为去除污点,master节点可调度
removeTaint: true # 修改项(选填项)
labels:
- name: fuyao-master # 修改项(选填项)
value: master-01 # 修改项(选填项)
workers:
- hostname: fuyao-worker # 修改项
user: root # 修改项
ip: 192.168.0.11 # 修改项
port: 22 # 修改项
# privateKeyPath: /root/.ssh/id_rsa # 修改项(选填项)
labels:
- name: fuyao-worker # 修改项(选填项)
value: worker-01 # 修改项(选填项) -
若配置安装过程中使用密钥登录集群节点,则需提前在安装执行机配置使用SSH密钥登录所有集群节点。
-
-
在安装包目录内执行安装。
- 离线安装需要额外添加
--offline
标志,并指定制品路径。 - 需在执行离线创建镜像仓库的安装包内执行,因为此安装包asset目录中registry-config.yaml文件记录了离线镜像仓库信息,在离线安装时会读取该文件。
./fuyao create cluster -f $CLUSTER_OFFLINE_CONFIG_FILE --offline --artifact-path $OPENFUYAO_ARTIFACT_PATH
- 若配置使用密码登录集群节点,则安装过程中需根据提示输入对应节点的密码。
- 离线安装需要额外添加
-
安装结果确认。
- 自动化安装过程执行成功后,请记录openFuyao管理面的登录用户名和密码。
- 查看机器上所有Pod信息,当所有Pod状态都为running后表示环境准备完毕。
kubectl get pod -A
说明:
- 所有Pod状态都为running状态则安装完毕。具体时间与实际网络情况有关,网速较慢时等待时间会比较长。
- openFuyao认证鉴权机制采用自签名方式生成密钥,所有认证鉴权密钥与配置文件存放在所有master节点的
/etc/kubernetes/webhook
下,在完成安装后可自行选择删除该路径下文件,若删除该路径下文件后重启apiserver,则会导致认证失败。 - 安装部署工具部署的组件均采用默认配置,仅用于测试openFuyao平台功能,若在生产环境使用,请自行调整Kubernetes、容器运行时、网络插件组件安全配置。
-
登录openFuyao管理面。
浏览器中输入“https://管理面的登录IP地址:openFuyao的web服务端口”,输入用户名和密码即可登录openFuyao管理面。
说明: 首次登录需要修改密码。
openFuyao的web服务端口默认为31616。
卸载
-
以root用户登录安装执行机。
-
执行如下命令,进入安装包目录。
cd $INSTALLER_PACKAGE_PATH
vi $CLUSTER_OFFLINE_CONFIG_FILE
说明:
- 编写配置文件,配置文件修改内容与安装时一致,填写集群中master与worker节点的hostname、user、passwd、ip、port。
- 若集群中节点无改变,可直接使用安装集群时的配置文件进行集群卸载。
-
在安装包目录内执行卸载。
-
离线部署卸载时会默认卸载镜像仓,如果添加
--skip-rm-registry
可跳过卸载镜像仓。须知:
若环境中通过应用市场安装了多种应用或扩展组件,建议先通过应用管理或扩展组件管理卸载已安装的应用和扩展组件,否则可能会出现卸载慢或卸载失败的情况。 -
离线镜像仓库在卸载命令执行节点时执行该卸载命令。
# 离线制品存放路径可能不一致,注意修改变量值。
export OPENFUYAO_ARTIFACT_PATH=/root/fuyao-offline-artifact.tar.gz
./fuyao destroy cluster -f $CLUSTER_OFFLINE_CONFIG_FILE --offline --artifact-path $OPENFUYAO_ARTIFACT_PATH -
离线镜像仓库不在卸载命令执行节点时执行该卸载命令。
# 离线制品存放路径可能不一致,注意修改变量值。
export OPENFUYAO_ARTIFACT_PATH=/root/fuyao-offline-artifact.tar.gz
./fuyao destroy cluster -f $CLUSTER_OFFLINE_CONFIG_FILE --offline --artifact-path $OPENFUYAO_ARTIFACT_PATH --registry-node-host 192.168.0.12 --registry-node-user root --registry-node-passwd 123456
-
-
出现
Successfully completed cluster destroy
字样后即完成集群卸载。
卸载操作未删除安装与卸载过程中打印的日志,日志存放路径为/var/log/fuyao-installer/
,若想删除日志可执行如下命令。
rm -rf /var/log/fuyao-installer/