1.2.所需资源
部署应用组件时需要用到以下资源,这些资源通常在进行基础组件部署时就已准备好。(“麒麟云基础组件操作文档”)
- MySQL数据库地址、端口、账号
需要准备mysql数据库,确认客户方是否能提供,如不能提供可以使用集群自建的。
- 统一网关域名及虚IP
- 需要申请域管平台使用的域名,通常根据客户方习惯设定,例如kcm.sdc.icbc。
- 需要申请虚IP绑定到三个master节点,用于外部请求。
- 确认服务器架构
执行uname -a,如果结果为amd64或x86_64,代表是amd64架构,如果结果为aarch64或arm64,代表是arm64架构。
1.3.部署物料
上传应用组件部署物料到master1节点。应用组件的部署物料是名称为 container-solution-[项目]-[架构]-[日期]-[时间].iso 格式的ISO文件。
2.部署准备
注:所有部署步骤都在master1节点上执行。
2.1.展开应用镜像
在部署节点(选用master1节点)执行镜像展开操作。
# 将ISO镜像拷贝到部署节点,挂载至一个空目录,如 /mnt/solution, 以镜像名称 container-solution–amd64-231012-163246.iso为例: $ mkdir -p /mnt/solution $ mount container-solution–amd64-231012-163246.iso /mnt/solution # 进入挂载目录 $ cd /mnt/solution # 执行脚本 expand-mirror 展开镜像 $ bash expand-mirror |
2.2.挂载hostpath
# 在master1上执行以下命令。标红的ip地址换成实际的nfs地址,如果未配置master1-node3的host,则把master1-node3换成对应的ip地址。默认挂载路径为/opt/glusterfs,如果需要挂载到其它路径可自行替换。 $ for host in master1 master2 master3 node1 node2 node3; do ssh root@$host “mkdir -p /opt/glusterfs && echo ‘10.41.116.236:/opt/nfs /opt/glusterfs nfs defaults 0 0’ >> /etc/fstab && mount -a”;done 注:这个步骤只做一次,如果nfs地址变化需要重新执行,需先删除各节点/etc/fstab文件里的旧配置。 |
3.部署kcall容器
# 执行以下命令部署kcall容器(如果是arm64架构把amd64改成arm64) $ nerdctl run -d --restart always --name kcall --network host -v /root/.ssh:/root/.ssh -v /root/.kube:/root/.kube registry.kylincloud.org:4001/solution/kcall/amd64:v4.0 bash |
4.修改应用配置
4.1.进入kcall容器
nerdctl exec -it kcall bash
4.2.修改conf/charts.yaml配置
vim conf/charts.yaml
4.2.1.配置共享存储
# 检查chats.yaml里的共享存储配置,挂载类型为hostpath不用改,挂载路径根据实际情况修改。 globals: volumeType: “hostpath” glusterPath: /opt/glusterfs |
4.2.2配置虚IP地址
# 修改为实际的vip地址。 globals: … ingressVip: “172.20.42.63” |
4.2.3.配置统一域名
# apisix.baseUri改为申请到的根域名;kcm.uri改为域控系统使用的完整域名。例如根域名为"kylincloud.org",则域控系统的完整域名为kcm.kylincloud.org。 globals: … apisix.baseUri: “kylincloud.org” kcm.uri: “kcm.kylincloud.org” |
4.2.4.配置MySQL数据库
# 如果使用的是集群自建数据库无需修改,如果使用客户提供的数据库,则根据实际情况修改以下内容。 globals: … mysql.uri: “maxscale.module” mysql.port: 3306 mysql.username: “dbinit” mysql.password: “Kylin.2023!” |
4.2.5.配置Redis数据库
# 根据实际情况修改六个Redis节点的地址,如果是三节点、双节点集群,也要填六个,多出来的填重复的即可。例如三节点环境0-2和3-5填一样的,双节点环境0-1,2-3,4-5填一样的。 globals: … redis.nodes0: 172.20.43.171 redis.nodes1: 172.20.43.172 redis.nodes2: 172.20.43.173 redis.nodes3: 172.20.43.174 redis.nodes4: 172.20.43.175 redis.nodes5: 172.20.43.176 |
4.2.6.保存退出
输入:wq保存退出
4.3.修改kerberos表名
#执行以下命令。注意把命令里标红的kcm_kylincloud_org修改为实际域名,点替换为下划线。例如实际域名是kcm.sdc.icbc,就把krb5_princ_kcm_kylincloud_org修改为krb5_princ_kcm_sdc_icbc,前面的krb5_princ_kylincloud_org不要改。 $ sed -i “s?krb5_princ_kylincloud_org?krb5_princ_kcm_kylincloud_org?g” /opt/deploy/pre-install/dbinit/script/32_kim_create_tables.sql |
4.4.拷贝静态文件目录
# exit退出kcall容器回到master1节点,执行以下步骤。(如果nfs挂载路径不是/opt/glusterfs,下面命令里对应修改) # 1、拷贝静态文件 $ rm -rf /opt/glusterfs/data/ $ nerdctl cp kcall:/opt/kcall/data /opt/glusterfs/ $ chmod 755 -R /opt/glusterfs/data/ # 2、修改kcm.yaml和远程连接配置。把标红的kcm.kylincloud.org修改为实际域名,前面那个没标红的不要改 $ sed -i “s?kcm.kylinserver.com?kcm.kylincloud.org?g” /opt/glusterfs/data/apt-data/kcm.yaml $ sed -i “s?kcm.kylinserver.com?kcm.kylincloud.org?g” /opt/glusterfs/data/apt-data/vncPkg/kylin-os-manager-plugin.ini # 3、修改dhcp服务配置文件,分别替换为实际的master1、master2节点IP(可选配置,仅部署了dhcp功能时需要做) $ sed -i “s?10.41.116.233?master1IP?g” /opt/glusterfs/data/apt-data/toolsConfig/kdhcp/dhcp_primary.conf $ sed -i “s?10.41.116.233?master1IP?g” /opt/glusterfs/data/apt-data/toolsConfig/kdhcp/dhcp_secondary.conf $ sed -i “s?10.41.116.234?master2IP?g” /opt/glusterfs/data/apt-data/toolsConfig/kdhcp/dhcp_primary.conf $ sed -i “s?10.41.116.234?master2IP?g” /opt/glusterfs/data/apt-data/toolsConfig/kdhcp/dhcp_secondary.conf $ chmod -R 777 /opt/glusterfs/data/apt-data/toolsConfig/kdns |
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!