使用kubeadm部署高可用IPV4/IPV6集群
https://github.com/cby-chen/Kubernetes 开源不易,帮助点个star,谢谢了
介绍
kubernetes(k8s)二进制高可用安装部署,支持IPv4+IPv6双栈。
我使用IPV6的目的是在公网进行访问,所以我设置了IPV6静态地址。
若您没有IPV6环境,或者不想使用IPv6,不对主机进行设置IPv6地址即可。
不设置IPV6,不影响后续,不外集群仍旧是支持IPv6的。为后期留有扩展可能性。
若不要IPv6 ,不给网卡设置IPv6即可,不要对IPv6相关设置删除或操纵,否则会出问题。
猛烈建议在Github上检察文档 !!!
Github出问题会更新文档,并且后续尽可能第一时间更新新版本文档 !!!
k8s基础系统环境设置
设置IP
设置主机名
- hostnamectl set-hostname k8s-master01
- hostnamectl set-hostname k8s-master02
- hostnamectl set-hostname k8s-master03
- hostnamectl set-hostname k8s-node01
- hostnamectl set-hostname k8s-node02
- # 参数解释
- #
- # 参数: set-hostname
- # 解释: 这是hostnamectl命令的一个参数,用于设置系统的主机名。
- #
- # 参数: k8s-master01
- # 解释: 这是要设置的主机名,将系统的主机名设置为"k8s-master01"。
复制代码 设置yum源
- # 其他系统的源地址
- # https://mirrors.tuna.tsinghua.edu.cn/help/
- # 对于 Ubuntu
- sed -i 's/cn.archive.ubuntu.com/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
- # 对于 CentOS 7
- sudo sed -e 's|^mirrorlist=|#mirrorlist=|g' \
- -e 's|^#baseurl=http://mirror.centos.org/centos|baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos|g' \
- -i.bak \
- /etc/yum.repos.d/CentOS-*.repo
- # 对于 CentOS 8
- sudo sed -e 's|^mirrorlist=|#mirrorlist=|g' \
- -e 's|^#baseurl=http://mirror.centos.org/$contentdir|baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos|g' \
- -i.bak \
- /etc/yum.repos.d/CentOS-*.repo
- # 对于私有仓库
- sed -e 's|^mirrorlist=|#mirrorlist=|g' -e 's|^#baseurl=http://mirror.centos.org/\$contentdir|baseurl=http://192.168.1.123/centos|g' -i.bak /etc/yum.repos.d/CentOS-*.repo
- # 参数解释
- #
- # 以上命令是用于更改系统软件源的配置,以便从国内镜像站点下载软件包和更新。
- #
- # 对于 Ubuntu 系统,将 /etc/apt/sources.list 文件中的软件源地址 cn.archive.ubuntu.com 替换为 mirrors.ustc.edu.cn。
- #
- # 对于 CentOS 7 系统,将 /etc/yum.repos.d/CentOS-*.repo 文件中的 mirrorlist 注释掉,并将 baseurl 的值替换为 https://mirrors.tuna.tsinghua.edu.cn/centos。
- #
- # 对于 CentOS 8 系统,同样将 /etc/yum.repos.d/CentOS-*.repo 文件中的 mirrorlist 注释掉,并将 baseurl 的值替换为 https://mirrors.tuna.tsinghua.edu.cn/centos。
- #
- # 对于私有仓库,将 /etc/yum.repos.d/CentOS-*.repo 文件中的 mirrorlist 注释掉,并将 baseurl 的值替换为私有仓库地址 http://192.168.1.123/centos。
- #
- # 这些命令通过使用 sed 工具和正则表达式,对相应的配置文件进行批量的替换操作,从而更改系统软件源配置。
复制代码 安装一些必备工具
- # 对于 Ubuntu
- apt update && apt upgrade -y && apt install -y wget psmisc vim net-tools nfs-kernel-server telnet lvm2 git tar curl
- # 对于 CentOS 7
- yum update -y && yum -y install wget psmisc vim net-tools nfs-utils telnet yum-utils device-mapper-persistent-data lvm2 git tar curl
- # 对于 CentOS 8
- yum update -y && yum -y install wget psmisc vim net-tools nfs-utils telnet yum-utils device-mapper-persistent-data lvm2 git network-scripts tar curl
复制代码 关闭防火墙
- # Ubuntu忽略,CentOS执行
- systemctl disable --now firewalld
复制代码 关闭SELinux
- # Ubuntu忽略,CentOS执行
- setenforce 0
- sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config
- # 参数解释
- #
- # setenforce 0
- # 此命令用于设置 SELinux 的执行模式。0 表示关闭 SELinux。
- #
- # sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config
- # 该命令使用 sed 工具来编辑 /etc/selinux/config 文件。其中 '-i' 参数表示直接修改原文件,而不是输出到终端或另一个文件。's#SELINUX=enforcing#SELINUX=disabled#g' 是 sed 的替换命令,它将文件中所有的 "SELINUX=enforcing" 替换为 "SELINUX=disabled"。这里的 '#' 是分隔符,用于替代传统的 '/' 分隔符,以避免与路径中的 '/' 冲突。
复制代码 关闭互换分区
- sed -ri 's/.*swap.*/#&/' /etc/fstab
- swapoff -a && sysctl -w vm.swappiness=0
- cat /etc/fstab
- # /dev/mapper/centos-swap swap swap defaults 0 0
- # 参数解释:
- #
- # -ri: 这个参数用于在原文件中替换匹配的模式。-r表示扩展正则表达式,-i允许直接修改文件。
- # 's/.*swap.*/#&/': 这是一个sed命令,用于在文件/etc/fstab中找到包含swap的行,并在行首添加#来注释掉该行。
- # /etc/fstab: 这是一个文件路径,即/etc/fstab文件,用于存储文件系统表。
- # swapoff -a: 这个命令用于关闭所有启用的交换分区。
- # sysctl -w vm.swappiness=0: 这个命令用于修改vm.swappiness参数的值为0,表示系统在物理内存充足时更倾向于使用物理内存而非交换分区。
复制代码 网络设置(俩种方式二选一)
[code]# Ubuntu忽略,CentOS执行# 方式一# systemctl disable --now NetworkManager# systemctl start network && systemctl enable network# 方式二cat > /etc/NetworkManager/conf.d/calico.conf /etc/chrony.conf /etc/chrony.conf > /etc/security/limits.conf /etc/modules-load.d/ipvs.conf |