以下内容均来自个人笔记并重新梳理,如有错误欢迎指正!
如果对您有帮助,烦请点赞、关注、转发!如果您有其他想要了解的,欢迎私信联系我~
KubeOne 简介
Kubermatic KubeOne 可以在云、本地、 边缘和物联网等环境安装高可用集群以及单主集群。
KubeOne 借助 kubeadm 来处理配置和升级任务,大多数任务都是通过 SSH 运行命令来执行的。
默认情况下,KubeOne 会部署 Canal CNI 插件、metrics-server、NodeLocalDNS 和 Kubermatic 机器控制器。
KubeOne 下载、安装
代码语言:javascript复制# AMD架构
wget https://github.com/kubermatic/kubeone/releases/download/v1.7.4/kubeone_1.7.4_linux_amd64.zip
unzip kubeone_1.7.4_linux_amd64.zip -d kubeone
cp kubeone/kubeone /usr/bin
# ARM架构
wget https://github.com/kubermatic/kubeone/releases/download/v1.7.4/kubeone_1.7.4_linux_arm64.zip
unzip kubeone_1.7.4_linux_arm64.zip -d kubeone
cp kubeone/kubeone /usr/bin
# 查看版本信息
kubeone version
KubeOne 部署 Kubernetes 集群
1、准备工作
代码语言:javascript复制# 关闭防火墙
systemctl disable --now firewalld
# 关闭 selinxu
setenforce 0
sed -i ’s/SELINUX=enforcing/SELINUX=disabled/g’ /etc/selinux/config
# 清空 iptables 规则
iptables -F && iptables -t nat -F
# 禁用 swap 分区
swapoff -a
sed -i '/swap / s/^(.*)$/#1/g' /etc/fstab
# 配置主机间 SSH 免密(详细过程略)
# 安装 docker 或 containerd(详细过程略)
2、创建配置
代码语言:javascript复制# 指定集群配置、Kubernetes 版本等
cat > kubeone.yaml <<EOF
apiVersion: kubeone.k8c.io/v1beta2
kind: KubeOneCluster
name: my-cluster
versions:
kubernetes: 'v1.27.13'
cloudProvider:
none: {}
controlPlane:
hosts:
- publicAddress: ''
privateAddress: '172.16.100.1'
sshUsername: root
sshPrivateKeyFile: '/root/.ssh/id_rsa'
staticWorkers:
hosts:
- publicAddress: ''
privateAddress: '172.16.100.2'
sshUsername: root
sshPrivateKeyFile: '/root/.ssh/id_rsa'
# Provide the external address of your load balancer or the public addresses of the first control plane nodes
apiEndpoint:
host: '172.16.100.1'
port: 6443
machineController:
deploy: false
# 指定镜像仓库(kubeadm、calico、flannel)
registryConfiguration:
overwriteRegistry: 'm.daocloud.io/registry.k8s.io'
insecureRegistry: false
EOF
3、部署集群
代码语言:javascript复制kubeone apply -m kubeone.yaml
# -m:--manifest,指定配置文件
---------------------------------------------------------