在上一篇文章中详细介绍了鲲鹏+麒麟v10离线安装k8s+kubesphere的过程。很多小伙伴表现出了兴趣,向我获取离线包和安装脚本。其中有小伙伴表示有多台机器,手动操作起来略显繁琐,希望能够实现一键部署。
基于此,在之前KubeSphere之魔改KubeKey以支持自定义Harbor版本 的基础上进一步修改kk以支持arm版harbor。同时将麒麟V10操作系统依赖包制作为ISO,并将镜像打包至制品中,实现与X86制品相同效果。
相比上一篇的优势
接下来演示部署过程
三台机器皆为16核32G,用途如下:
主机名 | IP | CPU | OS | 用途 |
---|---|---|---|---|
node-1 | 192.168.101.19 | Kunpeng-920 | Kylin V10 SP2 | master&worker |
node-2 | 192.168.101.64 | Kunpeng-920 | Kylin V10 SP2 | master&worker |
node-3 | 192.168.101.140 | Kunpeng-920 | Kylin V10 SP2 | master&worker&harbor |
环境涉及软件版本信息与上一篇一致,此处不再罗列。其他版本都可制作
将修改后的 KubeKey 、制品 artifact 拷贝至离线环境安装节点。
./kk create config --with-kubesphere v3.4.1 --with-kubernetes v1.23.17 -f config-sample.yaml
按实际情况修改配置:
./kk init registry -f config-sample.yaml -a ks3.4.1-artifact-harbor-images-arm64.tar.gz
可以看到kk使用正在处理arm64版本harbor
等待几分钟可以看到arm版harbor安装成功的消息
切换至node3节点查看docker ps
使用node3外网ip访问web。可以看到helm插件也安装成功
vim create_project_harbor.sh
#!/usr/bin/env bash
url="https://dockerhub.kubekey.local"#修改url的值为https://dockerhub.kubekey.local
user="admin"
passwd="Harbor12345"
harbor_projects=(
kubesphereio
kubesphere
)
for project in"${harbor_projects[@]}"; do
echo"creating $project"
curl -u "${user}:${passwd}" -X POST -H "Content-Type: application/json""${url}/api/v2.0/projects" -d "{ \"project_name\": \"${project}\", \"public\": true}" -k #curl命令末尾加上 -k
done
脚本授权后,执行脚本创建 ./create_project_harbor.sh
执行以下命令安装 KubeSphere 集群:
./kk create cluster -f config-sample.yaml -a ks3.4.1-artifact-harbor-images-arm64.tar.gz --with-packages
可以看到node2
和node
都没有操作系统依赖(node1
测试单节点时已安装依赖)
其他节点依赖安装成功:
等待一段时间看到成功日志:
浏览器访问任意机器IP+31688
这里安装了监控和日志