sealos3安装高可用k8s集群
sealos3安装高可用k8s集群
sealos3简介
注意官网的最新版本是sealos4
,和sealos3
完全不同,本文档不适用
于sealos4
.
项目地址: https://github.com/labring/sealos/tree/release-v3.3.9#readme
参考地址: https://fuckcloudnative.io/posts/sealos/
!安装前提条件(k8s低于1.20版本不兼容Rhel8
系列)
!!!!
高能警告:Rhel8,Centos8和Rocky8
预装了podman
和nftables
,而nftables
和kube-proxy
不兼容,Rhel8
系列安装k8s不能正常工作
.建议使用Centos7(升级内核到5.4以上)
或Ubuntu
.
关于Rhel8
的nftables
内核模块和kube-proxy
不兼容的issue
提了快2年
了,我看估计是没戏了。
https://github.com/kubernetes/kubernetes/pull/97070
下图为原文。
高版本离线包自带docker/containerd
,如没安装docker/containerd
会自动安装.
k8s1.22
版本及以上
强制安装containerd
,要求卸载docker
.
- Linux系统配置好主机名–
主机名不可重复
- 规划和配置好IP地址
- 集群内主机间配置ssh免密登录
- 下载sealos要使用的k8s离线安装包
- 下载最新版本sealos.
- 务必
同步服务器时间
- master节点CPU必须
2C以上
- 请使用
sealos 3.2.0以上版本
- 网卡名称如果是不常见的,建议修改成
规范的网卡名称
, 如(eth.|en.|em.*)
cni组件
选择cilium
时要求内核版本
不低于5.4
podSubnet
:100.64.0.0/10
serviceSubnet
:10.96.0.0/12
继10.0.0.0/8
、172.16.0.0/24
、192.168.0.0/16
之后又诞生了第四个私有IPv4地址
,但100.64.0.0/10
是在服务商网络
内,不同之处在于只使用。
100.64.0.0/10
,Shared address space
,是预留给ISP运营商做NAT
用的。ISP运营商设备给用户分配100.64.0.0/10
内的IP,然后再在运营商设备上进行NAT,转换成公网IP。
快速二进制包安装k8s高可用集群
不要指定网卡参数 --network,会导致cni启动不了
生产环境只建议安装次新版
!!!
cidr
建议使用B
类网段.
# 下载并安装sealos, sealos是个golang的二进制工具,直接下载拷贝到bin目录即可, release页面也可下载
wget -c https://sealyun-home.oss-cn-beijing.aliyuncs.com/sealos/latest/sealos && \
chmod +x sealos && mv sealos /usr/bin
# 下载离线资源包
wget -c https://sealyun.oss-cn-beijing.aliyuncs.com/05a3db657821277f5f3b92d834bbaf98-v1.22.0/kube1.22.0.tar.gz
# 安装一个三master的kubernetes集群
## 如已设ssh免密登录可以不需要--passwd参数
## --podcidr 配置pod网段
## --svccidr 配置clusterip网段
## --network 机器网卡名,CNI网卡发现用
sealos init \
--master 192.168.32.200 \
--master 192.168.32.202 \
--node 192.168.32.221 \
--pkg-url /root/kube1.22.7.tar.gz \
--version v1.22.7 \
--podcidr 10.244.0.0/16 \
--svccidr 10.93.0.0/12
# 安装单master的k8s集群
sealos init \
--master 192.168.0.2 \
--node 192.168.0.12 \
--pkg-url /root/kube1.22.0.tar.gz \
--version v1.22.0
安装日志
安装日志所在位置~/.sealos/sealos.log
# 查看安装日志
less ~/.sealos/sealos.log
自定义网络
pod
的ip地址段,也称为cidr
# podcidr 参数指定自定义pod网段 如
--podcidr 10.244.0.0/16 \
# svccidr 参数指定clusterip网段 如
--svccidr 10.93.0.0/12 \
# 不安装cni插件
## without-cni sealos自带calico网络,如果你想自己装CNI不用默认可加此参数, 如
sealos init --without-cni …
# 自定义cni插件
-- network flannel
添加证书
需要添加证书, 在init的时候指定--cert-sans 域名
即可
证书有效期是99年
# 安装k8s集群时添加证书
sealos init --cert-sans 域名 \
--master 192.168.0.2 \
--node 192.168.0.12 \
--pkg-url /root/kube1.22.0.tar.gz \
--version v1.22.0
--podcidr 10.244.0.0/16 \
--svccidr 10.93.0.0/12 \
sealos参数注释
参数名 | 含义 | 示例 |
---|---|---|
passwd | 服务器密码 | 123456 |
master | k8s master节点IP地址 | 192.168.0.2 |
node | k8s node节点IP地址 | 192.168.0.3 |
pkg-url | 离线资源包地址,支持下载到本地,或者一个远程地址 | /root/kube1.16.0.tar.gz |
version | 资源包对应的版本 | v1.16.0 |
向集群中加入机器
增加master
# 增加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
# 增加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节点
# 删除指定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节点
# 删除指定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
清理集群
# 注意clean不加任何参数会清理整个集群,等同于sealos clean --all
sealos clean --all
备份集群
# 查看备份帮助
sealos etcd save -h
本地备份etcd数据
本地备份, 默认保存在/opt/sealos/ectd-backup
这个目录, 默认名称为sanpshot
# 本地备份etcd数据
sealos etcd save
本地备份
并复制到各master节点
。增加--docker
参数, 默认在生成的文件下添加当前的uinx时间戳
,然后复制到各master节点
.
# 在所有的master节点上备份数据
sealos etcd save --docker
备份上传到阿里云oss
备份上传至oss,首次执行带命令行或者编辑~/.sealos/config.yaml
# 备份上传到阿里云oss
## 需要自行指定oss的ak参数
sealos etcd save --docker \
--aliId youraliyunkeyid \
--aliKey youraliyunkeysecrets \
--ep oss-cn-hangzhou.aliyuncs.com \
--bucket etcdbackup \
--objectPath /sealos/
升级k8s版本
参考: https://www.sealyun.com/instructions/5
!升级前注意事项:
# 确保集群是健康状态
kubectl get nodes -owid
# 确保kube-system下的pod运行正常
kubectl get pod -n kube-system -owide
执行升级
版本必须要大于等于1.18.0,才可升级
执行升级前提前下载好新版本的离线安装包
# 升级到1.19.2版本
sealos upgrade --version v1.19.2 --pkg-url /root/kube1.19.2.tar.gz -f | tee -a upgrade.1183-1192.log
containerd常用
相关文章
- 使用Docker(k8s)安装Kafka并使用宿主机连接
- k8s实战系列: 1-再谈为什么需要Kubernetes[通俗易懂]
- k8s学习一:使用kubeadm安装k8s
- k8s安装nginx进阶版
- k8s安装helm
- 【废亿点k8s】k8s单master集群安装(1.24版本)
- K3s之快速搭建精简版本K8S集群环境
- 图解K8s源码 - kubelet 下的 QoS 控制机制及 k8s Cgroups v2 简介
- 不背锅运维:k8s调度之初探nodeSelector和nodeAffinity
- k8s安装
- K8s中Pod健康检测和服务可用性检查Demo(LivenessProbe+ReadinessProbe)
- 使用kubeadm安装k8s
- K8S 生态周报| K8s v1.25 将 GlusterFS 卷插件废弃
- 【K8S 系列】k8s 学习一,Kubernetes 基本介绍及核心组件
- 这40套文档技能点过于密集,堪称K8s、Docker的命脉,正在刷第2遍 | 极客时间
- K8S上简易部署Oracle数据库(k8s上部署oracle)