暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

一键部署k8s多、单集群命令(波哥亲测有效)

波哥的IT人生 2022-04-22
2801

项目地址: https://github.com/fanux/sealos参考地址: https://fuckcloudnative.io/posts/sealos/https://www.sealyun.com/goodsDetail?type=cloud_kernel&name=kubernetes官方教程: https://www.sealyun.com/instructions/2

安装前提条件(k8s官方不支持Rhel8系列)

!!!!高能警告:Rhel8,Centos8和Rocky8预装了podman和nftables,而nftables和kube-proxy不兼容,Rhel8系列安装k8s不能正常工作.建议使用Centos7(升级内核到5.4以上) 或Ubuntu.

issue提了快2年了,我看估计是没戏了。https://github.com/kubernetes/kubernetes/pull/97070

高版本离线包自带docker/containerd,如没安装docker/containerd会自动安装.1.22版本以上强制安装containerd,要求卸载docker.

安装前的注意事项

Linux系统配置好主机名和IP地址,主机间配置ssh免密登录,无需更多配置下载kubernetes 离线安装包.下载最新版本sealos.务必同步服务器时间主机名不可重复master节点CPU必须2C以上请使用sealos 3.2.0以上版本网卡名称如果是不常见的,建议修改成规范的网卡名称, 如(eth.|en.|em.*)cni组件选择cilium时要求内核版本不低于5.4podSubnet: 100.64.0.0/10serviceSubnet: 10.96.0.0/12继10.0.0.0/8、172.16.0.12、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启动不了生产环境只建议安装次新版!!!

下载并安装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

自定义网络

pod的ip地址段,也称为cidrpodcidr 参数指定自定义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年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 \

参数注释

详细参数: https://www.sealyun.com/instructions/2

节点操作

增加master

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

增加node

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

删除指定master节点

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

删除指定node节点

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

清理集群

#注意clean不加任何参数会清理整个集群,等同于sealos clean --allsealos clean --all

备份集群

# 查看备份帮助sealos etcd save -h##本地备份#本地备份, 默认保存在/opt/sealos/ectd-backup这个目录, 默认名称为sanpshotsealos etcd save#本地备份并复制到各master节点。增加--docker参数, 默认在生成的文件下添加当前的uinx时间戳#然后复制到各master节点sealos etcd save --docker####备份上传到阿里云oss备份上传至oss,首次执行带命令行或者编辑~/.sealos/config.yamlsealos 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镜像和容器管理

nerdctl用法参考: 
https://mdnice.com/writing/c57c45c557bf46b0835958134892abc4
官方工具是crictl,但是更推荐使用nerdctl.和docker官方语法几乎完全一致.也可以使用alias将nerdctl设别名为docker.# nerdctl要加上-n=k8s.ionerdctl -n=k8s.io images# 配置nerdctl自动补全source <(nerdctl completion bash)echo 'source <(nerdctl completion bash)' >>~/.bashrc# 设置alias别名为dockerecho "alias docker='nerdctl -n=k8s.io'" >>~/.bashrcsource .bashrc使用nerdctl打包docker镜像参考: https://mp.weixin.qq.com/s/Bjn0s5qRh2H9I__mAYh4jgnerdctl使用方法参考: https://mp.weixin.qq.com/s/vs_XIn-cpEXtWoF8Yb9vRwcontainerd配置代理老是替换源太麻烦了,直接上代理https://segmentfault.com/a/1190000020363043# 创建/etc/systemd/system/containerd.service.d目录mkdir /etc/systemd/system/containerd.service.d# 配置代理cat > /etc/systemd/system/containerd.service.d/proxy.conf << EOF> [Service] > Environment="HTTP_PROXY=socks5://127.0.0.1:1080" > Environment="HTTPS_PROXY=socks5://127.0.0.1:1080"  "NO_PROXY=localhost,127.0.0.1,192.168.0.0/16,10.0.0.0/8,docker-registry.somecorporation.com,isdp30x2.mirror.aliyuncs.com,hub-mirror.c.163.com,mirror.baidubce.com"'> EOF# 重启containerd服务systemctl daemon-reloadsystemctl restart containerd# 查看配置的代理systemctl show --property=Environment containerd.service 

containerd配置代理ansible剧本

---- hosts: all  tasks:    - name: 创建containerd.service.d目录      file:        path: /etc/systemd/system/containerd.service.d        state: directory    - name: 创建proxy.conf文件      file:        path: /etc/systemd/system/containerd.service.d/proxy.conf        state: touch    - name: 为http_proxy.conf文件添加配置信息      copy:        content: |          [Service]          Environment="HTTP_PROXY=socks5://127.0.0.1:1080"           Environment="HTTPS_PROXY=socks5://127.0.0.1:1080"  "NO_PROXY=localhost,127.0.0.1,docker-registry.somecorporation.com,isdp30x2.mirror.aliyuncs.com,hub-mirror.c.163.com,mirror.baidubce.com"        dest: /etc/systemd/system/containerd.service.d/proxy.conf      notify: 重启containerd服务  handlers:    - name: 重启containerd服务      systemd:        state: restarted        daemon_reload: yes        name: containerd

格式整理:IT运维技术圈

原文地址:https://blog.csdn.net/omaidb/article/details/116599552

小编有话说

➤推荐服务:

向下滑动查看更多

点击【IT面试精选】查看全网最权威的一线大厂面试真题及面试经验,每天更新哦!

点击【IT路边社】查看实时更新的IT新闻资讯

点击【互联网资料存储站】获取全网最全运维流程文档、表格、脚本、架构、等保资料等
点击【安全加固】获取最新安全加固脚本

点击一键iptables脚本】获取iptables自动设置脚本

回复【加群】群满啦!~添加波哥微信拉您进群!

文章转载自波哥的IT人生,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论