赞
踩
需要完成麒麟云底座、麒麟云基础组件的部署。
部署应用组件时需要用到以下资源,这些资源通常在进行基础组件部署时就已准备好。(“麒麟云基础组件操作文档”)
需要准备mysql数据库,确认客户方是否能提供,如不能提供可以使用集群自建的。
执行uname -a,如果结果为amd64或x86_64,代表是amd64架构,如果结果为aarch64或arm64,代表是arm64架构。
上传应用组件部署物料到master1节点。应用组件的部署物料是名称为 container-solution-[项目]-[架构]-[日期]-[时间].iso 格式的ISO文件。
注:所有部署步骤都在master1节点上执行。
在部署节点(选用master1节点)执行镜像展开操作。
# 将ISO镜像拷贝到部署节点,挂载至一个空目录,如 /mnt/solution, 以镜像名称 container-solution--amd64-231012-163246.iso为例: $ mkdir -p /mnt/solution # 执行脚本 expand-mirror 展开镜像 $ bash expand-mirror |
# 在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文件里的旧配置。 |
# 执行以下命令部署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 |
nerdctl exec -it kcall bash
vim conf/charts.yaml
# 检查chats.yaml里的共享存储配置,挂载类型为hostpath不用改,挂载路径根据实际情况修改。 globals: volumeType: "hostpath" glusterPath: /opt/glusterfs |
# 修改为实际的vip地址。 globals: ... ingressVip: "172.20.42.63" |
# apisix.baseUri改为申请到的根域名;kcm.uri改为域控系统使用的完整域名。例如根域名为"kylincloud.org",则域控系统的完整域名为kcm.kylincloud.org。 globals: ... apisix.baseUri: "kylincloud.org" kcm.uri: "kcm.kylincloud.org" |
# 如果使用的是集群自建数据库无需修改,如果使用客户提供的数据库,则根据实际情况修改以下内容。 globals: ... mysql.uri: "maxscale.module" mysql.port: 3306 mysql.username: "dbinit" mysql.password: "Kylin.2023!" |
# 根据实际情况修改六个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 |
输入:wq保存退出
#执行以下命令。注意把命令里标红的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 |
# 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 |
使用用户提供的数据库时,需要拿到数据库地址以及具备创建数据库、创建用户权限的初始账号用于建库建表。或者由用户创建dbinit数据库,密码为Kylin.2023!。
# 使用用户提供的MySQL数据库时,执行以下命令,替换数据库地址、账号密码 $ mysql_cmd="mysql -h数据库地址 -udbinit -pKylin.2023!" # 使用集群自带MySQL数据库时,执行以下命令 $ mysql_cmd="mysql -udbinit -pKylin.2023! --host=$(kubectl get svc -n module | grep maxscale | grep -v maxscale-web | awk -F" " '{print $3}')" |
# 在master1节点上执行以下命令。 注意,${mysql_cmd}是变量,前面的$不能忽略。 nerdctl cp kcall:/opt/deploy/pre-install/dbinit/script/ /root/ cd /root/script ${mysql_cmd} -f < 01_kcm_init_database.sql ${mysql_cmd} -f < 02_kcm_create_tables.sql ${mysql_cmd} -f < 03_kcm_insert_datas.sql ${mysql_cmd} -f < 04_kcm_insert_strategy.sql ${mysql_cmd} -f < 11_kuf_init_database.sql ${mysql_cmd} -f < 12_kuf_create_tables.sql ${mysql_cmd} -f < 13_kuf_insert_datas.sql ${mysql_cmd} -f < 21_kuas_init_database.sql ${mysql_cmd} -f < 22_kuas_create_tables.sql ${mysql_cmd} -f < 23_kuas_insert_datas.sql ${mysql_cmd} -f < 31_kim_init_database.sql ${mysql_cmd} -f < 32_kim_create_tables.sql ${mysql_cmd} -f < 33_kim_insert_datas.sql ${mysql_cmd} -f < 41_koms_init_database.sql ${mysql_cmd} -f < 42_koms_create_tables.sql # 生成机器码 machine_code=$(echo -n "$(kylin_gen_register)" | md5sum | awk '{print substr($1, 1, 6)}') ${mysql_cmd} -D kcm -e "insert into monitor_config (param_type,param_name,param_value) values ('activation','activation_id','${machine_code}')" |
# 进入kcall容器 $ nerdctl exec -it kcall bash # 依次启动tianyu和tianyuan(必须先启动tianyu再启动tianyuan) $ python3 kcall.py solution deploy install tianyu $ python3 kcall.py solution deploy install tianyuan # 执行以下命令可查看应用组件是否全部启动成功。状态为Running代表启动成功 $ kubectl -n kcm get pod $ kubectl -n kuas get pod # 附:卸载应用组件命令 $ python3 kcall.py solution deploy uninstall tianyu $ python3 kcall.py solution deploy uninstall tianyuan |
# 等待所有应用都启动完成之后在master1节点执行以下步骤 # 1、生成单点登录key。 # 依次执行以下命令,sso.kylincloud.org里的kylincloud.org修改为实际根域名,密码均为Kerberos@1234. $ kubectl -n kuas exec -it kim-kerberos-0 kim-kadmin -- bash $ kinit admin/admin $ kadmin -q "addprinc -randkey HTTP/sso.kylincloud.org" $ kadmin -q "ktadd -k /var/log/krb5kdc/http.keytab HTTP/sso.kylincloud.org" $ exit # 如果nfs挂载路径不是/opt/glusterfs,则修改为实际路径 $ cp /opt/glusterfs/data/logs/kerberos-log/http.keytab /opt/glusterfs/data/apt-data/kerberos/ $ kubectl -n kuas delete pod -l app=kim-server # 2、设置kerberos管理员密码永不过期。 # 依次执行以下两条命令。标红的krb5_princ_kcm_kylincloud_org修改为3-6步骤修改的表名,KCM.KYLINCLOUD.ORG修改为实际的大写域名。 $ mysql -udbinit -pKylin.2023! --host=$(kubectl get svc -n module | grep maxscale | grep -v maxscale-web | awk -F" " '{print $3}') kim $ update `krb5_princ_kcm_kylincloud_org` set krbPasswordExpiration=NULL where krbprincipalName='admin/admin@KCM.KYLINCLOUD.ORG'; |
把域控域名 虚IP的映射写进/etc/hosts或者注册到DNS服务器。
浏览器访问https://域控域名
初始管理员账号密码:admin/Kcm.2021
注:如果未开通443端口,则带上30234端口访问
# 1、上传新的应用镜像到master1节点。 # 2、停止和删除当前kcall容器 $ nerdctl stop kcall && nerdctl rm kcall $ nerdctl rmi registry.kylincloud.org:4001/solution/kcall/amd64:v4.0 注:如果需要保留备份,可以重命名容器:nerdctl rename kcall # 3、重新执行此文档第三步及之后步骤。 |
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。