<p>最近一段时间部署k8s全部使用sealos了,整体使用感觉良好,基本没有什么坑。推荐给大家。</p><p>使用 Sealos,可以安装一个不包含任何组件的裸 Kubernetes 集群。</p><p>最大的好处是提供 99 年证书,用到我跑路是足够了。不用像之前kubeadm安装的每年需要记得续签。</p><p>其次增加删除节点也很方便。</p><p>最后,安装集群快啊,十来分钟一个生产可用集群就装好了。</p><h2><span/><span>经验教训写在前面:</span><span/><span> </span></h2><ol><li>/根目录需要大一些,镜像很大。300G</li><li>镜像很大,安装的时间准备的长一些</li><li>使用nohup,避免中途断网</li></ol><p>如果磁盘不是根目录,要创建软连接</p>mkdir -p /data/run/containerd
mkdir -p /data/var/lib/containers
mkdir -p /data/var/lib/kubelet
ln -s /data/run/containerd /run/containerd
ln -s /data/var/lib/containers /var/lib/containers
ln -s /data/var/lib/kubelet /var/lib/kubelet
<h2><span/><span>下载sealos命令行工具</span><span/><span> </span></h2><p>提前安装一下jq工具</p>yum install -y jq
<p>查看当前的sealos命令行工具版本</p>curl --silent "https://api.github.com/repos/labring/sealos/releases" | jq -r '.[].tag_name'
<p>选其中的稳定版</p>v5.0.0-beta5
v5.0.0-beta4
v4.4.0-beta3
v5.0.0-beta3
v5.0.0-beta2
v5.0.0-beta1
v4.3.7
v5.0.0-alpha2
v4.3.7-rc1
v4.3.6
<p>我这里用最新的稳定版4.3.7</p><p>下载</p>wget https://github.com/labring/sealos/releases/download/v4.3.7/sealos_4.3.7_linux_amd64.tar.gz
<p>安装</p>tar zxvf sealos_4.3.7_linux_amd64.tar.gz sealos && chmod +x sealos && mv sealos /usr/bin
<h2><span/><span>配置服务器环境</span><span/><span> </span></h2><p><strong>服务器做免密</strong></p><p>在其中一台master上执行sealos命令,要配置这台master到其他所有服务器的免密登录</p>ssh-keygen
cd .ssh
cat >> .ssh/authorized_keys << EOF master0的id_rsa.pub的内容 EOF
firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address="10.138.12.194" service name='ssh' accept"
firewall-cmd --reload
echo "sshd: master节点的ip" >> /etc/hosts.allow
<p><strong>关闭selinux</strong></p><p>关闭selinux以允许容器访问宿主机的文件系统</p># 查看,我的服务器交付时就已经关了,
[root@my-paas-master0 ~]# getenforce
Permissive
<p>关闭方法:</p>setenforce 0 # 临时关闭
sed -i 's/^SELINUX=enforcing/#\1/g' /etc/fstab
<p><strong>关闭防火墙</strong></p>systemctl stop firewalld
systemctl disable firewalld
<p><strong>启用 IPv4 数据包转发</strong></p><p>不用做,sealos安装时会进行配置</p><p>可以看一下sealos的修改的配置:</p>* Applying /usr/lib/sysctl.d/00-system.conf ...
net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 0
net.bridge.bridge-nf-call-arptables = 0
* Applying /usr/lib/sysctl.d/10-default-yama-scope.conf ...
kernel.yama.ptrace_scope = 0
* Applying /usr/lib/sysctl.d/50-default.conf ...
kernel.sysrq = 16
kernel.core_uses_pid = 1
kernel.kptr_restrict = 1
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.conf.default.promote_secondaries = 1
net.ipv4.conf.all.promote_secondaries = 1
fs.protected_hardlinks = 1
fs.protected_symlinks = 1
* Applying /etc/sysctl.d/99-sysctl.conf ...
fs.file-max = 1048576 # sealos
net.bridge.bridge-nf-call-ip6tables = 1 # sealos
net.bridge.bridge-nf-call-iptables = 1 # sealos
net.core.somaxconn = 65535 # sealos
net.ipv4.conf.all.rp_filter = 0 # sealos
net.ipv4.ip_forward = 1 # sealos
net.ipv4.ip_local_port_range = 1024 65535 # sealos
net.ipv4.tcp_keepalive_intvl = 30 # sealos
net.ipv4.tcp_keepalive_time = 600 # sealos
net.ipv4.vs.conn_reuse_mode = 0 # sealos
net.ipv4.vs.conntrack = 1 # sealos
net.ipv6.conf.all.forwarding = 1 # sealos
<p>配置了免密登录,不需要密码</p><p>现在有了阿里云的镜像源,速度嗖嗖快</p>nohup sealos run <br/> --masters 10.249.x.x <br/> --nodes 10.249.y.y,10.249.z.z <br/> registry.cn-shanghai.aliyuncs.com/labring/kubernetes:v1.27.7 <br/> registry.cn-shanghai.aliyuncs.com/labring/helm:v3.9.4 <br/> registry.cn-shanghai.aliyuncs.com/labring/calico:v3.24.5 >sealos.log 2>&1 &
<p>这来我装的是不使用docker的版本。如果你需要用docker,可以装这个镜像labring/kubernetes-docker:v1.27.0。</p><p>就是这么快,安装完成</p><div class="image-package"><img src="https://upload-images.jianshu.io/upload_images/5149787-f5772ca9d79c5c27.jpeg" img-data="{"format":"jpeg","size":29867,"width":729,"height":385,"space":"srgb","channels":3,"depth":"uchar","density":72,"chromaSubsampling":"4:2:0","isProgressive":false,"hasProfile":false,"hasAlpha":false}" contenteditable="false" class="uploaded-img" style="min-height:200px;min-width:200px;" width="auto" height="auto"/>
</div>image-20240507181817158[root@k8s-master0 ~]# kubectl get node
NAME STATUS ROLES AGE VERSION
k8s-master0 Ready control-plane 14m v1.27.7
k8s-node0 Ready <none> 14m v1.27.7
k8s-node1 Ready <none> 14m v1.27.7
<p>如果有报错,先清理再重新安装</p>sealos reset
<p>起个nginx测试一下</p>kubectl run ng --image=harbor-test.xxx.net/base/nginx:1.25.2
kubectl expose pod ng --port=80 --target-port=80 --type=NodePort
<div class="image-package"><img src="https://upload-images.jianshu.io/upload_images/5149787-7030c6248cf48971.jpeg" img-data="{"format":"jpeg","size":50381,"width":1035,"height":519,"space":"srgb","channels":3,"depth":"uchar","density":72,"chromaSubsampling":"4:2:0","isProgressive":false,"hasProfile":false,"hasAlpha":false}" contenteditable="false" class="uploaded-img" style="min-height:200px;min-width:200px;" width="auto" height="auto"/>
</div><p>
</p><p>
</p>
Sealos急速部署生产用k8s集群
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 一. 安装前准备工作:(所有节点操作) 安装条件: 1)Linux内核版本:3.0以上 uname -r 2)...
- 前言 去年12月份,当Kubernetes社区宣布1.20版本之后会逐步弃用 dockershim ,当时也有很多...