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

打印 上一主题 下一主题

主题 531|帖子 531|积分 1593

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.9
Docker版本20.10.x
Pod网段10.16.0.0/12
Service网段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地址!!!
  1. [root@k8s-master01 ~]# 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-node02
复制代码
CentOS 7安装yum源如下:
  1. curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
  2. yum install -y yum-utils device-mapper-persistent-data lvm2
  3. yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
复制代码
  1. cat <<EOF > /etc/yum.repos.d/kubernetes.repo
  2. [kubernetes]
  3. name=Kubernetes
  4. baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
  5. enabled=1
  6. gpgcheck=0
  7. repo_gpgcheck=0
  8. gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
  9. EOF<br>
  10. sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo
复制代码
所有节点配置limit:
  1. 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服务器。密钥配置如下:
  1. systemctl disable --now firewalld
  2. systemctl disable --now dnsmasq
  3. systemctl disable --now NetworkManager      # 公有云不要关闭
  4. setenforce 0
  5. sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/sysconfig/selinux
  6. sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config
复制代码
下载安装所有的源码文件:
  1. swapoff -a && sysctl -w vm.swappiness=0
  2. sed -ri '/^[^#]*swap/s@^@#@' /etc/fstab
复制代码
如果无法下载就下载:
https://gitee.com/dukuan/k8s-ha-install.git
所有节点升级系统并重启,此处没有升级内核。
  1. rpm -ivh http://mirrors.wlnmp.com/centos/wlnmp-release-centos.noarch.rpm
  2. yum install ntpdate -y
复制代码
1.3 内核配置

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

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

王海鱼

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表