sealos 部署 - k8s高可用集群 安装部署 系统软件 docker K8S



kubernetes,一条命令构建k8s高可用集群且不依赖haproxy和keepalived,也无需ansible。通过内核ipvs对apiserver进行负载均衡,并且带apiserver健康检测。

https://www.sealyun.com/zh-Hans/docs/Intro

https://github.com/fanux/sealos/releases

https://github.com/kubernetes/kubernetes/releases


环境信息

主机名IP地址
master0192.168.10.4
master1192.168.10.5
node0192.168.10.6

# 服务器密码:123456

# 主机名

hostnamectl set-hostname  master0

hostnamectl set-hostname  master1

hostnamectl set-hostname  node0


# kubernetes高可用安装教程,  只需要准备好服务器,在任意一台服务器上执行下面命令即可

# 下载并安装sealos, sealos是个golang的二进制工具,直接下载拷贝到bin目录即可

# 下载并安装sealos, sealos是个golang的二进制工具,直接下载拷贝到bin目录即可, release页面也可下载
wget https://github.com/fanux/sealos/releases/download/v3.3.7/sealos && \
    chmod +x sealos && mv sealos /usr/bin 

or
    
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.10.4  --master 192.168.10.5 \
--node 192.168.10.6 \
--pkg-url https://github.com/kubernetes/kubernetes/archive/v1.18.3.tar.gz  \
--version v1.18.3

or

sealos init --passwd 123456 \
--master 192.168.10.4  --master 192.168.10.5 \
--node 192.168.10.6 \
--pkg-url /root/kube1.18.0.tar.gz  \
--version v1.18.0


cd  /opt


wget https://github.com/fanux/sealos/releases/download/v3.3.7/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 


sealos init --passwd 123456 --master 192.168.10.4   --master 192.168.10.5    --node 192.168.10.6  --user root  --pkg-url /opt/kube1.18.0.tar.gz --version v1.18.0



参数含义

参数名含义示例
passwd服务器密码123456
masterk8s master节点IP地址192.168.0.2
nodek8s node节点IP地址192.168.0.3
pkg-url离线资源包地址,支持下载到本地,或者一个远程地址/root/kube1.16.0.tar.gz
version对应的版本v1.16.0


检查安装是否正常:

kubectl get node

kubectl get pod --all-namespaces


# 应用安装

kuboard            https://github.com/sealstore/dashboard/releases

sealos install --pkg-url   https://github.com/sealstore/dashboard/releases/download/v1.0-2/kuboard.tar


dashboard        https://github.com/sealstore/dashboard/releases

sealos install --pkg-url   https://github.com/sealstore/dashboard/releases/download/v2.0.0-bata5.3/dashboard.tar


prometheus      https://github.com/sealstore/prometheus/releases

sealos install --pkg-url   https://github.com/sealstore/prometheus/releases/download/v0.31.1/prometheus.tar


ingress              https://github.com/sealstore/ingress/releases

sealos install --pkg-url   https://github.com/sealstore/ingress/releases/download/v0.15.2/contour.tar


sealos install --pkg-url  /opt/kuboard.tar

sealos install --pkg-url  /opt/dashboard.tar

sealos install --pkg-url  /opt/prometheus.tar

sealos install --pkg-url  /opt/contour.tar


# dashboard访问

使用上述命令安装完dashboard后日志中会输出token,登录页面时需要使用.

https://你的master地址:32000 


# 获取token

kubectl get secret -nkubernetes-dashboard  $(kubectl get secret -n kubernetes-dashboard|grep dashboard-token |awk '{print $1}')    -o jsonpath='{.data.token}'  | base64 --decode


增加master

sealos join --master 192.168.0.6 --master 192.168.0.7
sealos join --master 192.168.0.6-192.168.0.9  # 或者多个连续IP

增加node

sealos join --node 192.168.0.6 --node 192.168.0.7
sealos join --node 192.168.0.6-192.168.0.9  # 或者多个连续IP

删除指定master节点

sealos clean --master 192.168.0.6 --master 192.168.0.7
sealos clean --master 192.168.0.6-192.168.0.9  # 或者多个连续IP

删除指定node节点

sealos clean --node 192.168.0.6 --node 192.168.0.7
sealos clean --node 192.168.0.6-192.168.0.9  # 或者多个连续IP

清理集群

sealos clean
sealos clean  --all -f

TIP

系统支持:centos7.2以上 ubuntu16.04以上 内核推荐4.14以上

推荐配置:centos7.4


注意事项

  1. 必须同步所有服务器时间
  2. 所有服务器主机名不能重复


# 确认节点时间同步

hostnamectl set-hostname xx

yum install -y chrony

systemctl enable --now chronyd

timedatectl set-timezone Asia/Shanghai


# 验证所有节点时间是否同步

timedatectl


确认 k8s 集群已经就绪:

[root@k8s-master1 ~]# kubectl get nodes -o wide

NAME          STATUS   ROLES    AGE     VERSION   INTERNAL-IP     EXTERNAL-IP   OS-IMAGE                KERNEL-VERSION                CONTAINER-RUNTIME

k8s-master1   Ready    master   5m57s   v1.18.8   192.168.1.102   <none>        CentOS Linux 7


[root@k8s-master1 ~]# kubectl get pods -A

NAMESPACE     NAME                                       READY   STATUS    RESTARTS   AGE

kube-system   calico-kube-controllers-84445dd79f-ntnf2   1/1     Running   0          5m50s

kube-system   calico-node-6dnfd                          1/1     Running   0          5m39s



# 确认 k8s 集群已经就绪


# 升级 Kubernetes 集群版本

升级所有节点的 Kubeadm 并导入新的镜像。

升级 Master 节点上的 Kubelet。

升级其它 Master 节点。

升级 Node 节点。

验证集群状态。


#1 升级 Kubeadm

#主要用于更新 Kubeadm、Kubectl、Kubelet 等二进制文件,并导入新版本的镜像。升级方法很简单,只需复制离线包到所有节点并执行以下命令。

cd kube/shell && sh init.sh


#2 升级 Master 节点上的 Kubelet

#只需要把新版本的 Kubelet 复制到 /usr/bin 目录下替换旧版本,然后重启 Kubelet 服务即可。

kubeadm upgrade plan

kubeadm upgrade apply v1.16.0

 

# 重启 Kubelet

systemctl restart kubelet

其中最重要的 kubeadm upgrade apply 命令主要完成以下一些操作。

验证集群是否可升级并执行版本升级策略。

确认离线包中相关镜像是否可用。

对控制组件的容器进行升级,失败就回滚。

对 Kube-DNS 和 Kube-Proxy 进行升级。

创建新的证书文件并备份旧的证书文件。


#3 升级其它 Master 节点

kubeadm upgrade apply


#4 升级 Node 节点

#升级 Node 节点前,首先要驱逐节点。

kubectl drain $NODE --ignore-daemonsets

#其次,是更新 Kubelet 的配置文件和升级 Node 节点的 Kubelet。

kubeadm upgrade node config --kubelet-version v1.16.0

# 同样是替换二进制文件并重启 Kubelet

systemctl restart kubelet

#最后,恢复 Node 节点为可调度状态。

kubectl uncordon $NODE


#5 验证集群是否升级成功

kubectl get nodes

# 如果输出的节点的版本信息是和升级的版本一致的话,一切就搞定了!


# 鲲鹏-arm

wget -c https://sealyun.oss-cn-beijing.aliyuncs.com/latest/sealos-arm64 && 

    chmod +x sealos-arm64 && mv sealos-arm64 /usr/bin/sealos


-安装一个三master的kubernetes集群

sealos init --passwd 123456 \

--master 192.168.10.4  --master 192.168.10.5 \

--node 192.168.10.6 \

--pkg-url https://github.com/kubernetes/kubernetes/archive/v1.18.3.tar.gz  \

--version v1.18.3

or

sealos init --passwd  meiya@2021 --master 27.159.75.113 --user admin --pkg-url /data/v1.17.9.tar.gz  --version v1.17.9


---下载离线资源包

wget https://sealyun.oss-cn-beijing.aliyuncs.com/413bd3624b2fb9e466601594b4f72072-1.17.0/kube1.17.0.tar.gz


wget -c https://sealyun.oss-cn-beijing.aliyuncs.com/7b6af025d4884fdd5cd51a674994359c-1.18.0/kube1.18.0.tar.gz


# sealos+rook 部署 kubeSphere+TiDB

https://blog.csdn.net/alex_yangchuansheng/article/details/109127206


# Sealos安装Kubernetes v1.16.0 HA集群

https://blog.51cto.com/13231454/2448838


https://blog.csdn.net/qq_43138678/article/details/111358525


签名:这个人很懒,什么也没有留下!
最新回复 (0)
返回