服务器硬件配置要求
首先要有两台以上服务器,操作系统CentOS 7.x-86_x64
并且决定好主节点及从节点ip跟网络,集群中的所有机器之间网络互通
10.8.8.1 | k8s-master01 |
10.8.8.2 | k8s-node01 |
1.系统初始化
1.1关闭防火墙
临时关闭防火墙
systemctl stop firewalld
禁止防火墙自启(永久关闭)
systemctl disable firewalld
1.2关闭selinux
永久关闭
sed -i 's/enforcing/disabled/' /etc/selinux/config
临时关闭
setenforce 0
注:永久关闭需重启
1.3关闭swap分区
永久关闭
sed -ri 's/.*swap.*/#&/' /etc/fstab
临时关闭
swapoff -a
注:永久关闭需重启
1.4设置主机名
hostnamectl set-hostname <hostname>
- 应对上方的表格给两个服务器设置主机名
10.8.8.1
hostnamectl set-hostname k8s-master01
10.8.8.2
hostnamectl set-hostname k8s-node01
1.5在主节点写入host相关信息
cat >> /etc/hosts << EOF
10.8.8.1 k8s-master01
10.8.8.2 k8s-node01
EOF
1.6将桥接的IPv4流量传递到iptables的链
- 两个都需要设置
cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
vm.swappiness = 0
EOF
- 加载br_netfilter模块
modprobe br_netfilter
- 查看是否加载
lsmod | grep br_netfilter
- 使配置生效
sysctl --system
1.7配置同步时间
两台服务器均需要
- 安装时间同步软件
yum install ntpdate -y
- 向Windows官方同步时间
ntpdate time.windows.com
1.8安装ipset和ipvsadm
两台服务器都需要安装
yum -y install ipset ipvsadm
注:如提示没有可用软件包 ipvsadm请自行百度yum换源,再尝试即可
两台服务器写入以下参数
cat > /etc/sysconfig/modules/ipvs.modules <<EOF
#!/bin/bash
modprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- nf_conntrack_ipv4
EOF
- 授权运行权限
chmod 755 /etc/sysconfig/modules/ipvs.modules
- 运行模组
/etc/sysconfig/modules/ipvs.modules
- 检查是否运行成功
lsmod | grep -e ip_vs -e nf_conntrack_ipv4
1.9安装Docker
- 获取docker镜像源
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
- 安装docker-ce
yum -y install docker-ce
- 设置开机启动并打开docker并查看版本号
systemctl enable docker && systemctl start docker && docker version
- 设置Docker镜像加速器并指定docker的驱动
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://b9pmyelo.mirror.aliyuncs.com"],
"exec-opts": ["native.cgroupdriver=systemd"]
}
EOF
- 重启docker并载入配置
sudo systemctl daemon-reload
sudo systemctl restart docker
2.0给kubernetes添加镜像源
cat > /etc/yum.repos.d/kubernetes.repo << EOF
[kubernetes]
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
2.1安装kubeadm、kubelet和kubectl
两台服务器都需要进行下面的设置
- 官方的更新比较快,装针对官方文档中的较高版本号
yum install -y kubelet-1.23.4 kubeadm-1.23.4 kubectl-1.23.4
- 由于改了docker的运行引擎,故指定kube的引擎
vim /etc/sysconfig/kubelet
- 修改下面的值为
KUBELET_EXTRA_ARGS="--cgroup-driver=systemd"
- 设置开机自启
systemctl enable kubelet
2.2部署k8s的主节点
k8s的镜像都在国外,使用阿里的镜像代替
kubeadm init \
--apiserver-advertise-address=10.8.8.1 \
--image-repository registry.aliyuncs.com/google_containers \
--kubernetes-version v1.23.4 \
--service-cidr=10.96.0.0/12 \
--pod-network-cidr=10.244.0.0/16
注:
apiserver-advertise-address指定主节点
image-repository指定拉取源
kubernetes-version指定版本号
如出现
请查看是否docker跟kube的设置引擎是否一致,修改一致后重置再运行即可
出现以下代表部署成功
根据提示信息执行上方的参数配置
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
查看是否成功
kubectl get nodes
到此主节点部署完成
后续未完待续