本次安裝K8S版本為1.26.0
服務(wù)器環(huán)境配置
ip | 描述 | 配置 |
---|---|---|
192.168.233.221 | master節(jié)點(diǎn) | CPU(2C) 內(nèi)存(2G) 硬盤(50G) |
192.168.233.222 | node1節(jié)點(diǎn) | CPU(2C) 內(nèi)存(2G) 硬盤(50G) |
192.168.233.223 | node2節(jié)點(diǎn) | CPU(2C) 內(nèi)存(2G) 硬盤(50G) |
服務(wù)器環(huán)境配置準(zhǔn)備
服務(wù)器環(huán)境配置三臺(tái)服務(wù)器都要執(zhí)行下面的操作
設(shè)置服務(wù)器主機(jī)名
#192.168.43.201服務(wù)器執(zhí)行
hostnamectl set-hostname k8s-master
#192.168.43.202服務(wù)器執(zhí)行
hostnamectl set-hostname k8s-node1
#192.168.43.203服務(wù)器執(zhí)行
hostnamectl set-hostname k8s-node2
修改host文件解析域名
cat >> /etc/hosts << EOF
192.168.56.100 k8s-master
192.168.56.101 k8s-node1
192.168.56.102 k8s-node2
EOF
配置免密登錄
#生成密鑰,一路回車即可
ssh-keygen
#將本機(jī)密鑰拷貝至目標(biāo)服務(wù)器,實(shí)現(xiàn)免密登錄
ssh-copy-id -i ~/.ssh/id_rsa.pub K8s-master
ssh-copy-id -i ~/.ssh/id_rsa.pub K8s-node1
ssh-copy-id -i ~/.ssh/id_rsa.pub K8s-node2
時(shí)間同步
yum -y install ntp ntpdate
#時(shí)間服務(wù)器可以選擇:ime.nist.gov、time.nuri.net、0.asia.pool.ntp.org、1.asia.pool.ntp.org、2.asia.pool.ntp.org、3.asia.pool.ntp.org中任意一個(gè),只要保證可用就OK
tpdate 0.asia.pool.ntp.org
#將系統(tǒng)時(shí)間寫入硬件時(shí)間
hwclock --systohc
timedatectl
禁用iptables和firewalld服務(wù)
kubernetes和docker在運(yùn)行中會(huì)產(chǎn)生大量的iptables規(guī)則,為了不讓系統(tǒng)規(guī)則跟它們混淆,直接關(guān)閉系統(tǒng)的規(guī)則
# 1 關(guān)閉firewalld服務(wù)
systemctl stop firewalld
systemctl disable firewalld
# 2 關(guān)閉iptables服務(wù)
systemctl stop iptables
systemctl disable iptables
禁用selinux
selinux是linux系統(tǒng)下的一個(gè)安全服務(wù),如果不關(guān)閉它,在安裝集群中會(huì)產(chǎn)生各種各樣的奇葩問題
# 編輯 /etc/selinux/config 文件,修改SELINUX的值為disabled
# 注意修改完畢之后需要重啟linux服務(wù)
SELINUX=disabled
# 永久關(guān)閉
sed -i 's/enforcing/disabled/' /etc/selinux/config
# 臨時(shí)
setenforce 0
禁用swap分區(qū)
# vim /etc/fstab 分區(qū)配置文件,注釋掉swap分區(qū)一行
# 注意修改完畢之后需要重啟linux服務(wù)
UUID=455cc753-7a60-4c17-a424-7741728c44a1 /boot xfs defaults 0 0
/dev/mapper/centos-home /home xfs defaults 0 0
# /dev/mapper/centos-swap swap swap defaults 0 0
# 臨時(shí)關(guān)閉swap
swapoff -a
# 永久關(guān)閉swap
sed -ri 's/.*swap.*/#&/' /etc/fstab
修改linux的內(nèi)核參數(shù)
# 修改linux的內(nèi)核參數(shù),添加網(wǎng)橋過濾和地址轉(zhuǎn)發(fā)功能
# 創(chuàng)建/etc/sysctl.d/kubernetes.conf文件,添加如下配置:
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
# 重新加載配置
sysctl -p
# 加載網(wǎng)橋過濾模塊
modprobe br_netfilter
# 查看網(wǎng)橋過濾模塊是否加載成功
lsmod | grep br_netfilter
配置ipvs功能
# 1 安裝ipset和ipvsadm
yum install ipset ipvsadmin -y
# 2 添加需要加載的模塊寫入腳本文件
cat <<EOF > /etc/sysconfig/modules/ipvs.modules
#!/bin/bash
modprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- nf_conntrack_ipv4
EOF
# 3 為腳本文件添加執(zhí)行權(quán)限
chmod +x /etc/sysconfig/modules/ipvs.modules
# 4 執(zhí)行腳本文件
/bin/bash /etc/sysconfig/modules/ipvs.modules
# 5 查看對應(yīng)的模塊是否加載成功
lsmod | grep -e ip_vs -e nf_conntrack_ipv4
重啟服務(wù)器
reboot
Docker和cri-dockerd安裝
三臺(tái)服務(wù)器都要安裝
- CRI是Kubernetes中定義的一種標(biāo)準(zhǔn)化接口,用于與容器運(yùn)行時(shí)通信,并管理容器的創(chuàng)建、啟動(dòng)、停止和銷毀等操作。K8S => cri-docker => docker
Docker安裝參考博客:Centos安裝docker
cri-dockerd安裝:
#下載rpm包
wget https://github.com/Mirantis/cri-dockerd/releases/download/v0.3.1/cri-dockerd-0.3.1-3.el7.x86_64.rpm
#創(chuàng)建路徑
mkdir /usr/local/cri-dockerd
#移動(dòng)安裝包至文件夾下
mv cri-dockerd-0.3.1-3.el7.x86_64.rpm /usr/local/cri-dockerd
#安裝rpm包
rpm -ivh cri-dockerd-0.3.1-3.el7.x86_64.rpm
#需要修改配置
vim /usr/lib/systemd/system/cri-docker.service
#注釋以下配置項(xiàng)
#ExecStart=/usr/bin/cri-dockerd --container-runtime-endpoint fd://
#新增以下配置項(xiàng)
ExecStart=/usr/bin/cri-dockerd --container-runtime-endpoint fd:// --pod-infra-container-image=registry.aliyuncs.com/google_containers/pause:3.7
#修改后保存,然后重新加載,并配置cri-docker開機(jī)自啟
systemctl daemon-reload
systemctl start cri-docker && systemctl enable cri-docker
K8S安裝
配置k8s yum源
配置yum源為阿里源,提高安裝速度
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
安裝K8s
#安裝文件
yum install -y kubelet-1.26.0 kubeadm-1.26.0 kubectl-1.26.0
#啟動(dòng)kubelet
systemctl enable kubelet
配置集群
Master節(jié)點(diǎn)執(zhí)行初始化命令
#注意 192.168.233.221需要改成自己服務(wù)器的ip
kubeadm init \
--apiserver-advertise-address=192.168.233.221 \
--image-repository registry.aliyuncs.com/google_containers \
--kubernetes-version v1.26.0 \
--service-cidr=10.96.0.0/12 \
--pod-network-cidr=10.244.0.0/16 \
--cri-socket=unix:///var/run/cri-dockerd.sock \
--ignore-preflight-errors=all
#執(zhí)行后稍等片刻,K8s會(huì)輸出一大串提示,告訴你如果想要使用集群,需要把配置文件放到家目錄下
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
#上面這三個(gè)命令必須執(zhí)行,不讓會(huì)提示權(quán)限問題。
#init后還會(huì)輸出各節(jié)點(diǎn)join時(shí)的命令,從節(jié)點(diǎn)加入時(shí)通過改命令加入
kubeadm join 192.168.226.128:6443 --token b3n3vs.kopnhfh0r34j7yl4 \
--discovery-token-ca-cert-hash sha256:b3562644ef3bf180939252c79157c96850c6fa1db5dcee0f1889156508730fb9
從節(jié)點(diǎn)加入集群
#注意要制定cri-docker.sock的地址
kubeadm join 192.168.226.128:6443 --token b3n3vs.kopnhfh0r34j7yl4 \
--discovery-token-ca-cert-hash sha256:b3562644ef3bf180939252c79157c96850c6fa1db5dcee0f1889156508730fb9 \
--cri-socket=unix:///var/run/cri-dockerd.sock
安裝容器網(wǎng)絡(luò)插件
kubernetes支持多種網(wǎng)絡(luò)插件,比如flannel
、calico、canal等等,任選一種使用即可,本次選擇flannel
#master節(jié)點(diǎn)安裝 獲取fannel的配置文件,這個(gè)文件是外網(wǎng)的,如果下載不下來可以用下面提供的文件
wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
# 使用配置文件啟動(dòng)flannel
kubectl apply -f kube-flannel.yml
執(zhí)行完 kubectl apply后可以通過 kubectl get pods -A 查看pods是否創(chuàng)建成功,這里需要多等待下,等到pods的狀態(tài)都為就緒狀態(tài)就表示安裝成功了。
#稍等片刻再次查看集群狀態(tài)
kubectl get nodes
K8S卸載
#1、停止相關(guān)服務(wù)
systemctl stop kubelet
systemctl stop etcd
systemctl stop docker
#2、卸載k8s
kubeadm reset -f
#3、刪除k8s相關(guān)目錄
modprobe -r ipip
lsmod
rm -rf ~/.kube/
rm -rf /etc/kubernetes/
rm -rf /etc/systemd/system/kubelet.service.d
rm -rf /etc/systemd/system/kubelet.service
rm -rf /usr/bin/kube*
rm -rf /etc/cni
rm -rf /opt/cni
rm -rf /var/lib/etcd
rm -rf /var/etcd
#4、卸載k8s相關(guān)程序
yum -y remove kube*
#5、更新鏡像
yum clean all
yum -y update
yum makecache
附件
kube-flannel.yml
cri-dockerd安裝包:后綴更改為rpm即可文章來源:http://www.zghlxwxcb.cn/news/detail-681827.html
cri-dockerd-0.3.1-3.el7.x86_64.txt文章來源地址http://www.zghlxwxcb.cn/news/detail-681827.html
到了這里,關(guān)于KubeAdmin方式搭建K8S(1.26.0)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!