吊炸天!一行命令快速部署大规模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将发送软件包并应用安装命令,因此我们不必烦恼。

 

快速开始

预安装

 

安装

多主机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(好吧,本身有中文文档,专门翻译的英文文档,然后好标个翻译原创)

 

推荐阅读:炫酷超拽!推荐一款Vue开发的OA系统,功能还不错哟!!!

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐