吊炸天!一行命令快速部署大规模K8S集群!!!
吊炸天!一行命令快速部署大规模K8S集群!!!先决条件请事先准备好几台服务器(测试环境虚拟机即可)请事先设置好相同的root密码(方便同时操作多服务器)请事先在Linux安装好docker请使用统一的服务器,如都是CentOS/Ubuntu一行命令# 你只需要类似如下一行命令,即可在多个服务器上部署K8S集群,注意事项下载好k8s的离线安装包sealos ...
·
吊炸天!一行命令快速部署大规模K8S集群!!!
先决条件
- 请事先准备好几台服务器(测试环境虚拟机即可)
- 请事先设置好相同的root密码(方便同时操作多服务器)
- 请事先在Linux安装好docker
- 请使用统一的服务器,如都是CentOS/Ubuntu
一行命令
# 你只需要类似如下一行命令,即可在多个服务器上部署K8S集群,注意事项下载好k8s的离线安装包
sealos init --master 192.168.0.2 --node 192.168.0.5 --passwd your-server-password --version v1.14.1 --pkg-url /root/kube1.14.1.tar .gz
# k8s的离线安装包地址:https://sealyun.oss-cn-beijing.aliyuncs.com/d551b0b9e67e0416d0f9dce870a16665-1.18.0/kube1.18.0.tar.gz
安装命令
# 下载并安装sealos, sealos是个golang的二进制工具,直接下载拷贝到bin目录即可, release页面也可下载
wget -c https://sealyun.oss-cn-beijing.aliyuncs.com/latest/sealos && \
chmod +x sealos && mv sealos /usr/bin
# 下载离线资源包
wget -c https://sealyun.oss-cn-beijing.aliyuncs.com/d551b0b9e67e0416d0f9dce870a16665-1.18.0/kube1.18.0.tar.gz
# 安装一个三master的kubernetes集群
sealos init --passwd 123456 \
--master 192.168.0.2 --master 192.168.0.3 --master 192.168.0.4 \
--node 192.168.0.5 \
--pkg-url /root/kube1.18.0.tar.gz \
--version v1.18.0
介绍
构建K8S集群。
- 每个节点都为主机LB配置了一个ipvs代理,因此我们不再需要haproxy或keepalived了。
- 然后运行lvscare作为staic pod来检查apiserver是否可用。
/etc/kubernetes/manifests/sealyun-lvscare.yaml
- 如果任何主服务器宕机,lvscare将删除ipvs realserver,当主服务器恢复时,它将添加回去。
- Sealos将发送软件包并应用安装命令,因此我们不必烦恼。
快速开始
预安装
- 安装并启动Docker
- 下载kubernetes离线软件包将其复制到/ root。
- 在发行页面上下载最新的Sealos。
- 支持备份1.14.0+ (1.14.x 至 1.18.x)
安装
多主机HA:
sealos init --master 192.168.0.2 \
--master 192.168.0.3 \
--master 192.168.0.4 \
--node 192.168.0.5 \
--user root \
--passwd your-server-password \
--version v1.14.1 \
--pkg-url /root/kube1.14.1.tar.gz
或单个主机:
sealos init --master 192.168.0.2 \
--node 192.168.0.5 \
--user root \
--passwd your-server-password\
--version v1.14.1 \
--pkg-url /root/kube1.14.1.tar .gz
或使用ssh私钥:
sealos init --master 172.16.198.83 \
--node 172.16.198.84 \
--pkg-url https://sealyun.oss-cn-beijing.aliyuncs.com/free/kube1.15.0.tar.gz \
--pk /root/kubernetes.pem#这是您的ssh私钥文件\
--version v1.15.0
就这样!
--master masters列表
--node节点列表
--user主机用户名
--passwd主机passwd
--pkg-url脱机包位置
--version kubernetes版本
注意: 1.可能报错 --user 不支持 ,去掉 --user root 这个选项就行了;2. 当命令执行到kubeadm init ... 时,由于你的服务器性能的问题,执行速度可能不太一样,如果长时间卡着,可以ctrl + c 取消,设置国内的kubernetes的repo,然后再次执行。
检查集群:
[root@iZj6cdqfqw4o4o9tc0q44rZ ~]# kubectl get node
NAME STATUS ROLES AGE VERSION
izj6cdqfqw4o4o9tc0q44rz Ready master 2m25s v1.14.1
izj6cdqfqw4o4o9tc0q44sz Ready master 119s v1.14.1
izj6cdqfqw4o4o9tc0q44tz Ready master 63s v1.14.1
izj6cdqfqw4o4o9tc0q44uz Ready <none> 38s v1.14.1
[root@iZj6cdqfqw4o4o9tc0q44rZ ~]# kubectl get pod --all-namespaces
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system calico-kube-controllers-5cbcccc885-9n2p8 1/1 Running 0 3m1s
kube-system calico-node-656zn 1/1 Running 0 93s
kube-system calico-node-bv5hn 1/1 Running 0 2m54s
kube-system calico-node-f2vmd 1/1 Running 0 3m1s
kube-system calico-node-tbd5l 1/1 Running 0 118s
kube-system coredns-fb8b8dccf-8bnkv 1/1 Running 0 3m1s
kube-system coredns-fb8b8dccf-spq7r 1/1 Running 0 3m1s
kube-system etcd-izj6cdqfqw4o4o9tc0q44rz 1/1 Running 0 2m25s
kube-system etcd-izj6cdqfqw4o4o9tc0q44sz 1/1 Running 0 2m53s
kube-system etcd-izj6cdqfqw4o4o9tc0q44tz 1/1 Running 0 118s
kube-system kube-apiserver-izj6cdqfqw4o4o9tc0q44rz 1/1 Running 0 2m15s
kube-system kube-apiserver-izj6cdqfqw4o4o9tc0q44sz 1/1 Running 0 2m54s
kube-system kube-apiserver-izj6cdqfqw4o4o9tc0q44tz 1/1 Running 1 47s
kube-system kube-controller-manager-izj6cdqfqw4o4o9tc0q44rz 1/1 Running 1 2m43s
kube-system kube-controller-manager-izj6cdqfqw4o4o9tc0q44sz 1/1 Running 0 2m54s
kube-system kube-controller-manager-izj6cdqfqw4o4o9tc0q44tz 1/1 Running 0 63s
kube-system kube-proxy-b9b9z 1/1 Running 0 2m54s
kube-system kube-proxy-nf66n 1/1 Running 0 3m1s
kube-system kube-proxy-q2bqp 1/1 Running 0 118s
kube-system kube-proxy-s5g2k 1/1 Running 0 93s
kube-system kube-scheduler-izj6cdqfqw4o4o9tc0q44rz 1/1 Running 1 2m43s
kube-system kube-scheduler-izj6cdqfqw4o4o9tc0q44sz 1/1 Running 0 2m54s
kube-system kube-scheduler-izj6cdqfqw4o4o9tc0q44tz 1/1 Running 0 61s
kube-system kube-sealyun-lvscare-izj6cdqfqw4o4o9tc0q44uz 1/1 Running 0 86s
清理节点
sealos clean
或清理主节点或节点
sealos clean --master 192.168.0.2
sealos clean --node 192.168.0.3
添加节点
sealos 加入 --master 192.168.0.2 #加入主人
sealos 加入 --node 192.168.0.3 --node 192.168.0.4 #加入主人
也可以使用192.168.0.3-192.168.0.3指定多个IP
使用配置文件
例如,我们需要添加一个certSAN sealyun.com
:
sealos config -t kubeadm >> kubeadm-config.yaml.tmpl
查看配置模板文件cat kubeadm-config.yaml.tmpl
,对其进行编辑添加sealyun.com
:
apiVersion: kubeadm.k8s.io/v1beta1
kind: ClusterConfiguration
kubernetesVersion: {{.Version}}
controlPlaneEndpoint: "apiserver.cluster.local:6443"
networking:
podSubnet: 100.64.0.0/10
apiServer:
certSANs:
- sealyun.com # this is what I added
- 127.0.0.1
- apiserver.cluster.local
{{range .Masters -}}
- {{.}}
{{end -}}
- {{.VIP}}
---
apiVersion: kubeproxy.config.k8s.io/v1alpha1
kind: KubeProxyConfiguration
mode: "ipvs"
ipvs:
excludeCIDRs:
- "{{.VIP}}/32"
然后使用--kubeadm-config标志:
sealos init --kubeadm-config kubeadm-config.yaml.tmpl \
--master 192.168.0.2 \
--master 192.168.0.3 \
--master 192.168.0.4 \
--node 192.168.0.5 \
--user root \
--passwd your-server-password \
--version v1.14.1 \
--pkg-url /root/kube1.14.1.tar.gz
翻译来源:https://gitee.com/yunwisdoms/sealos/blob/master/README_en.md(好吧,本身有中文文档,专门翻译的英文文档,然后好标个翻译原创)
更多推荐
已为社区贡献5条内容
所有评论(0)