玛卡巴卡的卡巴卡玛 发表于 2023-3-19 05:06:40

第一章 1.1.1节 Kubeadm安装K8S高可用集群

1.1 安装前必读

请不要使用带中文的服务器和克隆的虚拟机。
生产环境建议使用二进制的方式安装。
文档中的IP地址要更换成自己的IP地址,要谨记!!!
1.2 基本环境配置

kubeadm安装方式自1.14版本以后,安装方法几乎没有任何变化,此文档可以尝试安装最新的K8S集群,centos采用的是7.x版本。
K8S官网:
https://kubernetes.io/docs/setup/
最新版高可用安装:
https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/high-availability/
1.2.1 高可用Kubernetes集群规划

 主机名 IP地址 说明 k8s-master01 10.3.50.11 master节点1 k8s-master02 10.3.50.12 master节点02 k8s-master03 10.3.50.13 master节点03 k8s-master-lb 10.3.50.100 keepalived虚拟IP k8s-node01 10.3.50.14 worker节点01 k8s-node02 10.3.50.15 worker节点02 
配置信息备注系统版本CentOS 7.9Docker版本20.10.xPod网段10.16.0.0/12Service网段10.244.0.0、16注意:宿主机网段、k8s Service网段、Pod网段不能重复!!!
VIP(虚拟IP)不要和公司内网IP重复,首先去ping一下,不通才可用。VIP需要和你的主机在同一个局域网内(不是直接用上述IP,要和本主机网段相同)!
公有云上搭建VIP是公有云的负载均衡的IP,比如阿里云的内网SLB的地址,腾讯云内网ELB的地址。不需要再搭建keepalived和haproxy!
1.2.2 基本环境配置

所有节点配置hosts,修改/etc/hosts如下:
注意用自己本机的IP地址!!!
# vim /etc/hosts<br>10.3.50.11 k8s-master01<br>10.3.50.12 k8s-master02<br>10.3.50.13 k8s-master03<br>10.3.50.100 k8s-master-lb      # 如果不是高可用集群,该IP为master01的IP!<br>10.3.50.14 k8s-node01<br>10.3.50.15 k8s-node02CentOS 7安装yum源如下:
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
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repocat <<EOF > /etc/yum.repos.d/kubernetes.repo

name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF<br>
sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo所有节点配置limit:
yum install wget jq psmisc vim net-tools telnet yum-utils device-mapper-persistent-data lvm2 git -y 
   vim /etc/security/limits.conf
 
   # 末尾添加如下内容
   * soft nofile 65536
   * hard nofile 131072
   * soft nproc 65535
   * hard nproc 655350
   * soft memlock unlimited
   * hard memlock unlimited
master01节点免密钥登陆其他节点,安装过程中生成配置文件和证书均在master上操作,集群管理也在master01上操作,阿里云或者AWS上需要单独一台kubectl服务器。密钥配置如下:
systemctl disable --now firewalld
systemctl disable --now dnsmasq
systemctl disable --now NetworkManager      # 公有云不要关闭

setenforce 0
sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/sysconfig/selinux
sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config下载安装所有的源码文件:
swapoff -a && sysctl -w vm.swappiness=0
sed -ri '/^[^#]*swap/s@^@#@' /etc/fstab如果无法下载就下载:
https://gitee.com/dukuan/k8s-ha-install.git
所有节点升级系统并重启,此处没有升级内核。
rpm -ivh http://mirrors.wlnmp.com/centos/wlnmp-release-centos.noarch.rpm
yum install ntpdate -y1.3 内核配置

CentOS 7需要升级内核至4.18+,本地升级的版本为4.19。
在master01节点下载内核!
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
echo 'Asia/Shanghai' >/etc/timezone
ntpdate time2.aliyun.com<br>crntab -e
# 加入到crontab
*/5 * * * * /usr/sbin/ntpdate time2.aliyun.com从master01节点传到其他节点:
ulimit -SHn 65535所有节点安装内核
ssh-keygen -t rsa
for i in k8s-master01 k8s-master02 k8s-master03 k8s-node01 k8s-node02;do ssh-copy-id -i .ssh/id_rsa.pub $i;done所有节点更改内核启动顺序
cd /root/
git clone https://github.com/dotbalo/k8s-ha-install.git    
git clone https://gitee.com/dukuan/k8s-ha-install.git      # 如果上面的无法下载就使用这个检查默认内核是不是4.19
yum update -y --exclude=kernel* && reboot      # CentOS 7需要升级,CentOS 8可以按需升级系统所有节点重启,然后检查内核是不是4.19
cd /root
wget http://193.49.22.109/elrepo/kernel/el7/x86_64/RPMS/kernel-ml-devel-4.19.12-1.el7.elrepo.x86_64.rpm
wget http://193.49.22.109/elrepo/kernel/el7/x86_64/RPMS/kernel-ml-4.19.12-1.el7.elrepo.x86_64.rpm所有节点安装ipvsadm:
for i in k8s-master02 k8s-master03 k8s-node01 k8s-node02;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所有节点配置ipvs模块,在内核4.19+版本nf_conntrack_ipv4已经改为nf_conntrack,4.18以下使用nf_conntrack_ipv4即可:
cd /root && yum localinstall -y kernel-ml*然后执行systemctl enable --now systemd-modules-load.service即可
开启一些k8s集群中必须的内核参数,所有节点配置k8s内核:
cat
页: [1]
查看完整版本: 第一章 1.1.1节 Kubeadm安装K8S高可用集群