点击上方蓝字 关注大侠之运维
后台回复99.99% 获取运维干货物
之前介绍了1.24版本的安装部署,今天带来1.25的完整部署文档
♦️
前期主机环境准备
1.主机资源准备
ip | 主机名 | 内存 | CPU | 硬盘 | 系统 |
192.168.78.20 | master | 4G | 4C | 50G | centos7 |
192.168.78.21 | node1 | 4G | 4C | 50G | centos7 |
192.168.78.22 | node2 | 4G | 4C | 50G | centos7 |
#master节点
hostnamectl set-hostname master
#node1节点
hostnamectl set-hostname node1
#node2节点
hostnamectl set-hostname node2
3.主机host配置
vim etc/hosts
192.168.78.20 master
192.168.78.21 node1
192.168.78.22 node2
4.关闭防火墙
systemctl disable firewalld
systemctl stop firewalld
firewall-cmd --state
5.修改selinux设置
sed -ri 's/SELINUX=enforcing/SELINUX=disabled/' etc/selinux/config
6.时间同步 ,设置定时任务
crontab -l
*/5 * * * * ntpdate ntp1.aliyun.com
7.升级内核
centos7默认的内核是
uname -r
3.10.0-1160.el7.x86_64
下面操作每台都需要执行
导入elrepo gpg key
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
安装elrepo YUM源仓库
yum -y install https://www.elrepo.org/elrepo-release-7.0-4.el7.elrepo.noarch.rpm
安装kernel-ml版本,ml为长期稳定版本,lt为长期维护版本
yum --enablerepo="elrepo-kernel" -y install kernel-ml.x86_64
设置grub2默认引导为0
# grub2-set-default 0
重新生成grub2引导文件
# grub2-mkconfig -o boot/grub2/grub.cfg
更新后,需要重启,使用升级的内核生效。
# reboot
升级后内核版本
uname -r
5.19.10-1.el7.elrepo.x86_64
8.修改内核参数,设置网桥过滤
添加网桥过滤及内核转发配置文件
# cat etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
vm.swappiness = 0
加载br_netfilter模块
# modprobe br_netfilter
查看是否加载
# lsmod | grep br_netfilter
br_netfilter 22256 0
9.安装ipset ipvsadm
yum -y install ipset ipvsadm
配置ipvsadm模块加载方式
添加需要加载的模块
# 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
EOF
授权、运行、检查是否加载
# chmod 755 etc/sysconfig/modules/ipvs.modules && bash etc/sysconfig/modules/ipvs.modules && lsmod | grep -e ip_vs -e nf_conntrack
10.关闭swap
swapoff -a 临时
二、
♦️
docker环境准备
1.docker yum源 使用阿里镜像源
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O etc/yum.repos.d/docker-ce.repo
2.docker安装启动
yum -y install docker-ce
systemctl start docker
3.修改cgroup方式
vim etc/docker/daemon.json
{
"exec-opts": ["native.cgroupdriver=systemd"]
}
4.cri-dockerd 安装
wget https://github.com/Mirantis/cri-dockerd/releases/download/v0.2.5/cri-dockerd-0.2.5-3.el7.x86_64.rpm
systemctl start cri-docker
♦️
k8s 1.25环境部署
1.配置yum源
vim etc/yum.repos.d/k8s.repo
[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
2.kubeadm、kubelet、kubectl版本均为1.25
yum -y install kubeadm kubelet kubectl
3.修改kubelet配置
# vim etc/sysconfig/kubelet
KUBELET_EXTRA_ARGS="--cgroup-driver=systemd"
4.集群初始化
kubeadm init --apiserver-advertise-address=192.168.78.20 --image-repository registry.aliyuncs.com/google_containers --kubernetes-version=v1.25.0 --service-cidr=10.96.0.0/12 --pod-network-cidr=10.244.0.0/16 --ignore-preflight-errors=all --cri-socket unix:///var/run/cri-dockerd.sock
初始化过程中有报错的话,可以如下查看
journalctl -xeu kubelet | grep Failed
遇到一个报错是pull的pause镜像是3.8,但是需要的是3.6,重新pull了一个
初始化成功后是这样的
执行如下:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
5.node加入集群
kubeadm join 192.168.78.20:6443 --token mqpnuk.cwzgxt46up16uc01 --discovery-token-ca-cert-hash sha256:85e687d139427eee877f88d587d5bf95b47cafbbacfc6128ac504bdae8078ef9 --cri-socket unix:///var/run/cri-dockerd.sock
6.安装网络插件 calico
wget https://projectcalico.docs.tigera.io/archive/v3.24/manifests/calico.yaml --no-check-certificate
修改如下配置,注意格式对齐
- name: CALICO_IPV4POOL_CIDR
value: "10.224.0.0/16"
查看需要镜像
grep image calico.yaml |grep 3.24
image: docker.io/calico/cni:v3.24.1
image: docker.io/calico/cni:v3.24.1
image: docker.io/calico/node:v3.24.1
image: docker.io/calico/node:v3.24.1
image: docker.io/calico/kube-controllers:v3.24.1下载镜像
下载镜像
for i in calico/cni:v3.24.1 calico/node:v3.24.1 calico/kube-controllers:v3.24.1calico/kube-controllers:v3.24.1 ; do docker pull $i ; done
然后apply
kubectl apply -f calico.yaml
然后就完成啦
♦️
验证
查看所有的节点
[root@master ~]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
k8s-master01 Ready control-plane 1h v1.25.0
k8s-worker01 Ready <none> 1h v1.25.0
k8s-worker02 Ready <none> 1h v1.25.0
👆点击查看更多内容👆
推荐阅读
记得星标记一下,下次更容易找到我
文章转载自大侠之运维,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。