本文作者:丁辉
K3s部署高可用集群
节点名称 | IP | 角色 |
---|---|---|
k3s-master-1 | 192.168.1.10 | control-plane,etcd,master |
k3s-master-2 | 192.168.1.20 | control-plane,etcd,master |
k3s-master-3 | 192.168.1.30 | control-plane,etcd,master |
k3s-worker-1 | 192.168.1.40 | worker |
Master节点VIP: 192.168.1.100
开始部署管理节点
国外源
1
2
3
4
5
6
7
8
9curl -sfL https://get.k3s.io | \
K3S_NODE_NAME=k3s-master-1 \
K3S_KUBECONFIG_OUTPUT=~/.kube/config \
K3S_KUBECONFIG_MODE=644 \
K3S_TOKEN=SECRET \
INSTALL_K3S_EXEC="--node-taint k3s-controlplane=true:NoExecute" \
sh -s - server \
--cluster-init \
--tls-san 192.168.1.100国内源
1
2
3
4
5
6
7
8
9curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn \
K3S_NODE_NAME=k3s-master-1 \
K3S_KUBECONFIG_OUTPUT=~/.kube/config \
K3S_KUBECONFIG_MODE=644 \
K3S_TOKEN=SECRET \
INSTALL_K3S_EXEC="--node-taint k3s-controlplane=true:NoExecute" \
sh -s - server \
--cluster-init \
--tls-san 192.168.1.100该参数用于指定 k3s 系统组件(如 kube-apiserver、kube-controller-manager 等)使用的默认镜像仓库地址。(阿里同步较慢有时会获取不到最新镜像)
1
>K3S_SYSTEM_DEFAULT_REGISTRY=registry.cn-hangzhou.aliyuncs.com
参数解释
参数 | 解释 |
---|---|
K3S_NODE_NAME | 指定 K3s 安装节点的名称。在这个例子中,设置为 k3s-master-1 ,表示安装的节点将被命名为 k3s-master-1 。 |
K3S_KUBECONFIG_OUTPUT | 指定 K3s 安装完成后生成的 kubeconfig 文件的输出路径。在这个例子中,设置为 ~/.kube/config ,表示 kubeconfig 文件将保存在当前用户的主目录下的 .kube 目录中,文件名为 config 。 |
K3S_KUBECONFIG_MODE | 指定生成的 kubeconfig 文件的权限模式。在这个例子中,设置为 644 ,表示生成的 kubeconfig 文件权限模式为 -rw-r--r-- ,即当前用户有读写权限,其他用户只有读权限。 |
K3S_TOKEN | 配置共享 secret |
INSTALL_K3S_EXEC=”–node-taint k3s-controlplane=true:NoExecute” | controlplane节点禁止调度 |
–cluster-init | 使用嵌入式 Etcd 初始化新集群 |
–tls-san | 在 TLS 证书上添加其他主机名或 IPv4/IPv6 地址作为 Subject Alternative Name |
INSTALL_K3S_MIRROR | 该参数用于指定 k3s 安装过程中下载软件包和镜像的镜像站点。 |
添加管理节点[2,3节点同理]
国外源
1
2
3
4
5
6
7
8
9curl -sfL https://get.k3s.io | \
K3S_NODE_NAME=k3s-master-2 \
K3S_KUBECONFIG_OUTPUT=~/.kube/config \
K3S_KUBECONFIG_MODE=644 \
K3S_TOKEN=SECRET \
INSTALL_K3S_EXEC="--node-taint k3s-controlplane=true:NoExecute" \
sh -s - server \
--server https://192.168.1.100:6443 \
--tls-san 192.168.1.100国内源
1
2
3
4
5
6
7
8
9curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn \
K3S_NODE_NAME=k3s-master-2 \
K3S_KUBECONFIG_OUTPUT=~/.kube/config \
K3S_KUBECONFIG_MODE=644 \
K3S_TOKEN=SECRET \
INSTALL_K3S_EXEC="--node-taint k3s-controlplane=true:NoExecute" \
sh -s - server \
--server https://192.168.1.100:6443 \
--tls-san 192.168.1.100
添加计算节点
在管理节点获取 ${node-token}
1 cat /var/lib/rancher/k3s/server/node-token
国外源
1
2
3
4
5curl -sfL https://get.k3s.io | \
K3S_NODE_NAME=k3s-worker-1 \
K3S_URL=https://192.168.1.100:6443 \
K3S_TOKEN=${node-token} \
sh -s - agent国内源
1
2
3
4
5curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn \
K3S_NODE_NAME=k3s-worker-1 \
K3S_URL=https://192.168.1.100:6443 \
K3S_TOKEN=${node-token} \
sh -s - agent
计算节点添加角色标签
1 | kubectl label node ${node} node-role.kubernetes.io/worker=true --overwrite |
--overwrite
强制覆盖
卸载
卸载 Server
删除 Server 节点
1
kubectl delete node ${node}
停止 Server
1
k3s-killall.sh
卸载 Server
1
k3s-uninstall.sh
卸载 Agent
删除 Agent 节点
1
kubectl delete node ${node}
停止 K3s-Agent
1
k3s-killall.sh
卸载 K3s-Agent
1
k3s-agent-uninstall.sh
I'm so cute. Please give me money.
- 本文链接: https://blog.offends.cn/Kubernetes/部署文档/Rancher-K3s/K3s部署高可用集群.html
- 版权声明: 本博客所有文章除特别声明外,均默认采用 CC BY-NC-SA 4.0 许可协议。