sealos快速部署K8S
使用 Sealos 快速部署一个生产级别的 Kubernetes 高可用集群
一、集群规划
| k8s-master1 | 10.0.19.127 |
|---|---|
| k8s-master2 | 10.0.19.128 |
| k8s-master3 | 10.0.19.129 |
| k8s-node1 | 10.0.19.130 |
| k8s-node2 | 10.0.19.131 |
二、初始化服务器
1 设置防火墙为 Iptables 并设置空规则 【所有节点都执行】
[root@k8s-master1 ~]# systemctl stop firewalld
[root@k8s-master1 ~]# systemctl disable firewalld
[root@k8s-master1 ~]# yum -y install iptables-services ipvsadm && systemctl start iptables && systemctl enable iptables && iptables -F && service iptables save
2 关闭selinux 【所有节点都执行】
# setenforce 0
# vim /etc/selinux/config
修改SELINUX=enforcing 为 SELINUX=disabled
3 配置主机名 【所有节点都执行】
hostnamectl set-hostname 主机名
4 配置名称解析 【所有节点都执行】
# vi /etc/hosts
添加如下五行
10.0.19.127 k8s-master1
10.0.19.128 k8s-master2
10.0.19.129 k8s-master3
10.0.19.130 k8s-node1
10.0.19.131 k8s-node2
5 配置时间同步 选择一个节点作为服务端,剩下的作为客户端 master1为时间服务器的服务端 其他的为时间服务器的客户端
1)配置k8s-master1
# yum install chrony -y
# vim /etc/chrony.config
修改三项
server 127.127.1.0 iburst
allow 10.0.19.0/24
local stratum 10
# systemctl start chronyd
# systemctl enable chronyd
# ss -unl | grep 123
UNCONN 0 0 *:123 *:*
2)配置其他节点
# yum install chrony -y
# vim /etc/chrony.conf
server 10.0.19.127 iburst
# systemctl start chronyd
# systemctl enable chronyd
# chronyc sources
210 Number of sources = 1
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^* k8s-master1 10 6 17 4 +11us[ +79us] +/- 95us
6 关闭交换分区 【所有节点都执行】
[root@k8s-master1 ~]# swapoff -a
[root@k8s-master1 ~]# vim /etc/fstab
删除一行:
检查是否关闭成功
[root@k8s-master1 ~]# free -m
total used free shared buff/cache available
Mem: 2827 157 2288 9 380 2514
Swap: 0 0 0
7、调整内核参数,对于 K8S 【所有节点都执行】
cat > kubernetes.conf <<EOF
net.bridge.bridge-nf-call-iptables=1
net.bridge.bridge-nf-call-ip6tables=1
net.ipv4.ip_forward=1
net.ipv4.tcp_tw_recycle=0
fs.inotify.max_user_instances=8192
fs.inotify.max_user_watches=1048576
fs.file-max=52706963
fs.nr_open=52706963
net.ipv6.conf.all.disable_ipv6=1
EOF
cp kubernetes.conf /etc/sysctl.d/kubernetes.conf
sysctl -p /etc/sysctl.d/kubernetes.conf
出现,不用担心,因为没开通网桥我们后面会开通

8、关闭系统不需要服务,并升级systemd
yum -y upgrade systemd #通过 centos 更新 systemd因为我的比较旧
systemctl stop postfix && systemctl disable postfix
9、设置 rsyslogd 和 systemd journald 【所有节点都执行】
mkdir /var/log/journal # 持久化保存日志的目录
mkdir /etc/systemd/journald.conf.d
cat > /etc/systemd/journald.conf.d/99-prophet.conf <<EOF
[Journal]
# 持久化保存到磁盘
Storage=persistent
# 压缩历史日志
Compress=yes
SyncIntervalSec=5m
RateLimitInterval=30s
RateLimitBurst=1000
# 最大占用空间 10G
SystemMaxUse=10G
# 单日志文件最大 200M
SystemMaxFileSize=200M
# 日志保存时间 2 周
MaxRetentionSec=2week
# 不将日志转发到 syslog
ForwardToSyslog=no
EOF
systemctl restart systemd-journald
10、升级系统内核为 4.44 【所有节点都执行】 CentOS 7.x 系统自带的 3.10.x 内核存在一些 Bugs,导致运行的 Docker、Kubernetes 不稳定,例如: rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm 我已经下载到百度网盘: 链接: 提取码:pwcq
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
# 安装完成后检查 /boot/grub2/grub.cfg 中对应内核 menuentry 中是否包含 initrd16 配置,如果没有,再安装一次!
yum --enablerepo=elrepo-kernel install -y kernel-lt
# 查看内核版本
cat /boot/grub2/grub.cfg |grep 4.4
# 设置开机从新内核启动
grub2-set-default 'CentOS Linux (4.4.222-1.el7.elrepo.x86_64) 7 (Core)'
# 重启
init 6
# 查看内核
uname -r
11、kube-proxy开启ipvs的前置条件 【所有节点都执行】
modprobe br_netfilter
cat > /etc/sysconfig/modules/ipvs.modules <<EOF
#!/bin/bash
modprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- nf_conntrack_ipv4
EOF
chmod 755 /etc/sysconfig/modules/ipvs.modules && bash /etc/sysconfig/modules/ipvs.modules && lsmod | grep -e ip_vs -e nf_conntrack_ipv4
三、Kubernetes安装
前提条件 下载kubernetes 离线安装包. 下载sealos 第一步,下载sealos最新版和kubernetes离线安装包
本次下载sealos版本为v3.3.9-rc.10,kubernetes版本为1.22.0
我的百度网盘:链接:https://pan.baidu.com/s/16T3Xo1jw8okOdK9bBMsXew 链接: 提取码:thu7
wget -c https://sealyun.oss-cn-beijing.aliyuncs.com/latest/sealos
wget -c https://sealyun.oss-cn-beijing.aliyuncs.com/05a3db657821277f5f3b92d834bbaf98-v1.22.0/kube1.22.0.tar.gz
第二步,安装sealos工具
chmod +x sealos && mv sealos /usr/bin
第三步,安装高可用kubernetes 多master HA:
sealos init \
--master 10.0.19.127 \
--master 10.0.19.128 \
--master 10.0.19.129 \
--node 10.0.19.130 \
--node 10.0.19.131 \
--version v1.22.0 \
--pkg-url /root/kube1.22.0.tar.gz
使用免密钥或者密钥对: 如果密钥对有密码, 添加–pk-passwd password
sealos init \
--passwd '123456' \
--master 10.0.19.127 \
--master 10.0.19.128 \
--master 10.0.19.129 \
--node 10.0.19.130 \
--node 10.0.19.131 \
--version v1.22.0 \
--pkg-url /root/kube1.22.0.tar.gz
自定义ssh端口号,如3222:
sealos init --passwd '123456' --master 10.0.19.127:55 \
--master 10.0.19.128:55 \
--master 10.0.19.129:55 \
--node 10.0.19.130:55 \
--node 10.0.19.131:55 \
--version v1.22.0 \
--pkg-url /root/kube1.22.0.tar.gz
验证集群是否升级成功
[root@k8s-master1 ~]# kubectl get node
NAME STATUS ROLES AGE VERSION
k8s-master1 Ready control-plane,master 14m v1.22.0
k8s-master2 Ready control-plane,master 13m v1.22.0
k8s-master3 Ready control-plane,master 13m v1.22.0
k8s-node1 Ready <none> 12m v1.22.0
k8s-node2 Ready <none> 12m v1.22.0
清理集群
sealos clean --all
增加master
sealos join --master 172.16.4.68 --master 172.16.4.69
sealos join --master 172.16.4.68-172.16.4.70 # 或者多个连续IP
增加node
sealos join --node 172.16.4.56 --node 172.16.4.57
sealos join --node 172.16.4.56-172.16.4.63 # 或者多个连续IP
删除指定master节点 注意clean不加任何参数会清理整个集群
sealos clean --master 172.16.4.68 --master 172.16.4.69
sealos clean --master 172.16.4.56-172.16.4.63 # 或者多个连续IP
删除指定node节点
sealos clean --node 1172.16.4.56 --node 172.16.4.57
sealos clean --node 172.16.4.56-172.16.4.63 # 或者多个连续IP
sealos快速部署K8S的更多相关文章
- 菜鸟系列k8s——快速部署k8s集群
快速部署k8s集群 1. 安装Rancher Rancher是业界唯一完全开源的企业级容器管理平台,为企业用户提供在生产环境中落地使用容器所需的一切功能与组件. Rancher2.0基于Kuberne ...
- 使用RKE快速部署k8s集群
一.环境准备 1.1环境信息 IP地址 角色 部署软件 10.10.100.5 K8s Master Etcd.Control 10.10.100.17 K8s Worker1 Worker 10.1 ...
- 通过kubeadm快速部署K8S集群
kubeadm是官方社区推出的一个用于快速部署kubernetes集群的工具. 这个工具能通过两条指令完成一个kubernetes集群的部署: # 创建一个 Master 节点 $ kubeadm i ...
- 【Kubernetes学习笔记】-使用Minikube快速部署K8S单机学习环境
介绍 https://minikube.sigs.k8s.io/docs/ Minikube 用于快速在本地搭建 Kubernetes 单节点集群环境,它对硬件资源没有太高的要求,方便开发人员学习试用 ...
- 阿里云单机快速部署K8S
网上有很多关于K8S部署测试环境的文章,但是有些部署比较繁琐.这里推荐使用 https://github.com/gjmzj/kubeasz地址文章.文章介绍很详细,记录一下方便自己日后学习使用. # ...
- 利用kubeadm快速部署k8s
内外网络互通 [root@k8s-1 ~]# cat /etc/redhat-release CentOS Linux release 7.6.1810 (Core) 配置k8syum仓库,及Dock ...
- 使用kubeadm快速部署k8s高可用集群
二进制安装方法请移步到:二进制部署高可用kubernetes-1.22.7集群 一:环境初始化 系统规划 k8s-master01 192.168.113.100 k8s-master02 192 ...
- 使用 Sealos 在 3 分钟内快速部署一个生产级别的 Kubernetes 高可用集群
本文首发于:微信公众号「运维之美」,公众号 ID:Hi-Linux. 「运维之美」是一个有情怀.有态度,专注于 Linux 运维相关技术文章分享的公众号.公众号致力于为广大运维工作者分享各类技术文章和 ...
- 使用kubeadm快速部署一套K8S集群
一.Kubernetes概述 1.1 Kubernetes是什么 Kubernetes是Google在2014年开源的一个容器集群管理系统,Kubernetes简称K8S. K8S用于容器化应用程序的 ...
- 快速安装k8s,版本为1.13.8
利用rpm快速部署k8s #!/bin/bash #快速安装k8s #by love19791126 107420988@qq.com pwd=$(pwd) masteripaddr=#(ip a s ...
随机推荐
- C#实现国产Linux视频录制生成mp4(附源码,银河麒麟、统信UOS)
随着信创国产化浪潮的来临,在国产操作系统上的应用开发的需求越来越多,最近有个客户需要在银河麒麟或统信UOS上实现录制摄像头视频和麦克风声音,将它们录制成一个mp4文件.那么这样的功能要如何实现了? 一 ...
- pikachu靶场 暴力破解(验证码绕过 on server)
先随便输入账号和密码.验证码,来判断前端是否对验证码进行判断对错 先随便输入账号和密码不输入验证码,来判断前端是否允许验证码留空 先随便输入账号和密码,输入正确的验证码,来判断账号和密码是否存在 1. ...
- 「Docker学习系列教程」基础篇小总结及高级篇预告
通过前面十来篇的学习,我们已经把docker基础篇学习完了.这篇文章,咱们就来小总结下基础篇学习的东西以及介绍接下来高级篇中,将会学习到哪些知识点. 基础篇总结: 第一篇, 凯哥就介绍了怎么 ...
- 八,SpringBoot Web 开发访问静态资源(附+详细源码剖析)
八,SpringBoot Web 开发访问静态资源(附+详细源码剖析) @ 目录 八,SpringBoot Web 开发访问静态资源(附+详细源码剖析) 1. 基本介绍 2. 快速入门 2.1 准备工 ...
- Serilog文档翻译系列(一) - 入门指南
保持优质文档是 Serilog 的优先事项.如果你发现文档中有缺失或不准确的内容,或者希望通过添加主题或教程来扩展 wiki,请通过问题追踪系统告知我们. 为什么选择Serilog? 与许多其他 .N ...
- SEO – Schema and JSON-LD
大纲介绍 Schema 是 Google, Microsoft, Yahoo 联合成立的, 目的是统一网页的表示方式, 这样搜素引擎会比较方便显示内容. 它虽然不算那种 w3c 独立的组织. 但其它的 ...
- tailwindcss 经验
树摇时扫描的文件范围 根据 tailwindcss.config.js 中 content 的配置,跟打包软件加载的模块无关.即未使用的模块中的 class 也会被包含进来.
- dfs与贪心算法——洛谷5194
问题描述: 有n个砝码,将砝码从大到小排列,从第三个砝码开始,所有砝码均大于其前两个砝码之和,问怎样的砝码组合才可以组合出不大于c的最大重量,输出该重量 输入: 第一行输入两个个整数N,c,代表有N个 ...
- [OI] 数学与推论证明 3(高中数学篇)
1 \[\color{#40865d}(2) \] \(f(x)=x^{2}-a(x+a\ln x)(a\neq0)\),若 \(f(1)+f'(1)=0\) 且 \(a\gt 0\),问可以得到什么 ...
- Salesforce AI Specialist篇之 Prompt Builder
本篇参考: https://salesforce.vidyard.com/watch/UUAxcUfHYGAxH3D9wV1RxJ https://help.salesforce.com/s/arti ...