当前位置:   article > 正文

Kubeadm-K8s1.20-高可用部署-详细-生产环境(四)_kubeadmin生产环境

kubeadmin生产环境

文章目录

kubeadm部署高可用集群

在这里插入图片描述

注意事项

  • 最新的版本不一定好,但相对于旧版本,核心功能稳定,但新增功能、接口相对不稳

  • 学会一个版本的 高可用部署,其他版本操作都差不多

  • 不要使用带中文的服务器

  • 宿主机尽量不要使用克隆(可能在后期calico网络部署时,pod网络不同的问题),使用全新的机器

  • 宿主机尽量升级到CentOS 7.9

  • 内核kernel升级到 4.19+ 这种稳定的内核

  • 部署k8s版本时,尽量找 1.xx.5 这种大于5的小版本(这种一般是比较稳定的版本)

  • k8s版本在一年之内进行更新一次

  • master在测试环境 为 2核3G

  • node节点在测试环境为 2核2G

k8s部署 二进制与高可用的区别

二进制部署

  • 部署难,管理方便,集群伸展性能好
  • 更稳定,集群规模到达一定的规模(几百个节点、上万个Pod),二进制稳定性是要高于kubeadm部署
  • 遇到故障,宿主机起来了,进程也会起来

kubeadm部署

  • 部署简单,管理难
  • 是以一种容器管理容器的方式允许的组件及服务,故障恢复时间比二进制慢
  • 遇到故障,启动宿主机,在启动进程,最后去启动容器,集群才能恢复,速度比二进制慢

一、环境配置

Sys-VersionhostnameIP地址性能
CentOS7.9k8s-master1192.168.178.512核3G
CentOS7.9k8s-master2192.168.178.522核3G
CentOS7.9k8s-master3192.168.178.532核3G
CentOS7.9k8s-node1192.168.178.542核2G
CentOS7.9k8s-node2192.168.178.552核2G
Sys-VersionAPP
v1.20.12Kubernetes
v20.10.10Docker
v3.15.3Calico
v2.0.4Dashboard

1、所有节点修改主机名

# hostnamectl set-hostname k8s-master1
# hostnamectl set-hostname k8s-master2
# hostnamectl set-hostname k8s-master3
# hostnamectl set-hostname k8s-node1
# hostnamectl set-hostname k8s-node2
  • 1
  • 2
  • 3
  • 4
  • 5

2、所有节点进行域名解析

# vi /etc/hosts
192.168.178.51  k8s-master1
192.168.178.52  k8s-master2
192.168.178.53  k8s-master3
192.168.178.200 k8s-master-lb	#此为VIP的地址
192.168.178.54  k8s-node1
192.168.178.55  k8s-node2
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

3、所有节点关闭相关应用

3.1、防火墙关闭
# systemctl disable --now firewalld
# setenforce 0
# sed -i '/^SELINUX=/cSELINUX=disabled' /etc/selinux/config
  • 1
  • 2
  • 3
3.2、dnsmasq关闭
#没有该目录就直接跳过
# systemctl disable --now dnsmasq
  • 1
  • 2
3.3、NetworkManager关闭
# systemctl disable --now NetworkManager
  • 1
3.4、关闭SWAP分区
# swapoff -a && sysctl -w vm.swappiness=0
# sed -ri '/^[^#]*swap/s@^@#@' /etc/fstab
  • 1
  • 2
3.5、检查MAC和product_uuid
# ip link
# cat /sys/class/dmi/id/product_uuid
  • 1
  • 2

4、所有节点获取相关软件

4.1、获取aliyun源
# curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
# yum install -y yum-utils device-mapper-persistent-data lvm2
  • 1
  • 2
4.2、获取docker-yum源
# yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  • 1
4.3、配置k8s-Yum源
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

# sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
4.4、安装必备工具
# yum install wget jq psmisc vim net-tools telnet yum-utils device-mapper-persistent-data lvm2 git bash-completion lrzsz -y
  • 1

5、所有节点时间同步

5.1、安装ntpdate
# rpm -ivh http://mirrors.wlnmp.com/centos/wlnmp-release-centos.noarch.rpm
# yum install ntpdate -y
  • 1
  • 2
5.2、时间同步
# ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
# echo 'Asia/Shanghai' >/etc/timezone
# ntpdate time2.aliyun.com
  • 1
  • 2
  • 3
5.3、计划任务时间同步
# systemctl enable --now crond
# crontab -e
添加并保存退出,每隔5秒进行时间同步
*/5 * * * * /usr/sbin/ntpdate time2.aliyun.com
# crontab -l
*/5 * * * * /usr/sbin/ntpdate time2.aliyun.com
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

6、所有节点实现Linux的资源限制

# ulimit -SHn 65535
# vim /etc/security/limits.conf
#在末尾进行追加,保存退出
* soft nofile 65536
* hard nofile 131072
* soft nproc 65535
* hard nproc 655350
* soft memlock unlimited
* hard memlock unlimited
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

7、master1进行免密

生成公钥
# ssh-keygen -t rsa

公钥推送
# for i in k8s-master1 k8s-master2 k8s-master3 k8s-node1 k8s-node2;do ssh-copy-id -i .ssh/id_rsa.pub $i;done
  • 1
  • 2
  • 3
  • 4
  • 5

二、内核配置

1、所有节点进行升级update、重启

# yum update -y --exclude=kernel*
# reboot
  • 1
  • 2

2、所有节点升级内核

2.1、master1获取RPM包
[root@k8s-master1 ~]# wget http://193.49.22.109/elrepo/kernel/el7/x86_64/RPMS/kernel-ml-devel-4.19.12-1.el7.elrepo.x86_64.rpm

[root@k8s-master1 ~]# wget http://193.49.22.109/elrepo/kernel/el7/x86_64/RPMS/kernel-ml-4.19.12-1.el7.elrepo.x86_64.rpm
  • 1
  • 2
  • 3
2.2、master1拷贝至所有节点
# for i in k8s-master2 k8s-master3 k8s-node1 k8s-node2;do scp kernel-ml-4.19.12-1.el7.elrepo.x86_64.rpm kernel-ml-devel-4.19.12-1.el7.elrepo.x86_64.rpm $i:/root/ ; done
  • 1
2.3、安装内核
# cd /root/
# yum localinstall -y kernel-ml*
  • 1
  • 2
2.3、更改内核启动方式
# grub2-set-default  0 && grub2-mkconfig -o /etc/grub2.cfg

# grubby --args="user_namespace.enable=1" --update-kernel="$(grubby --default-kernel)"

# grubby --default-kernel

#reboot
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

3、所有节点安装与配置ipvsadm

1、安装软件
# yum install ipvsadm ipset sysstat conntrack libseccomp -y
  • 1
2、配置内核参数

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/空白诗007/article/detail/765730
推荐阅读
相关标签