- 系統(tǒng)版本: openEuler 22.03 (LTS-SP2)
- docker版本:24.0.7
- kubenetes版本: 1.28.4
- 虛機IP: 192.168.177.138
- 基于 http://www.reibang.com/p/b10b2d996c40 簡化步驟
環(huán)境準備
IP内列、主機名設(shè)置
- 使用靜態(tài)IP
[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# cat ifcfg-ens33
TYPE=Ethernet
BOOTPROTO=static
NAME=ens33
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.177.138
NETMASK=255.255.255.0
- 修改主機名
hostnamectl set-hostname k8s-test
exec bash
echo "192.168.177.138 k8s-test" >> /etc/hosts
關(guān)閉swap分區(qū)
# 如果有的話撵术,關(guān)閉swap分區(qū)
swapoff -a
vi /etc/fstab # 永久關(guān)閉swap分區(qū),注釋掉fstab中包含swap的這一行
# /dev/mapper/centos-swap swap swap defaults 0 0
關(guān)閉firewalld话瞧,selinux
sudo systemctl stop firewalld
sudo systemctl disable firewalld
sudo setenforce 0
sudo sed -i 's/^SELINUX=enforcing$/SELINUX=disabled/' /etc/selinux/config
轉(zhuǎn)發(fā) IPv4 并讓 iptables 看到橋接流
cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
overlay
br_netfilter
EOF
sudo modprobe overlay
sudo modprobe br_netfilter
# 設(shè)置所需的 sysctl 參數(shù)嫩与,參數(shù)在重新啟動后保持不變
cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.ipv4.ip_forward = 1
EOF
# 應(yīng)用 sysctl 參數(shù)而不重新啟動
sudo sysctl --system
lsmod | grep br_netfilter
lsmod | grep overlay
sysctl net.bridge.bridge-nf-call-iptables net.bridge.bridge-nf-call-ip6tables net.ipv4.ip_forward
# 如果init時仍提示iptables錯誤請執(zhí)行
echo "1">/proc/sys/net/bridge/bridge-nf-call-iptables
echo "1">/proc/sys/net/ipv4/ip_forward
重啟服務(wù)器
如果selinux之前是開的,需要重啟服務(wù)器
一交排、 部署包準備
- 下載地址 kubenetes-1.28.4-oe2203sp2.tar.gz
鏈接:https://pan.baidu.com/s/1xaFpT2KncZ_CpCPtVTLO_w
提取碼:2gfn - 解壓
tar zxvf kubenetes-1.28.4-oe2203sp2.tar.gz
二划滋、 安裝docker及cri-docker
- 安裝軟件包
cd kubenetes-1.28.4-oe2203sp2/docker-ce/
rpm -ivh *.rpm
image.png
- 修改配置文件
sudo mkdir -p /etc/docker
scp daemon.json /etc/docker
scp cri-docker.service /usr/lib/systemd/system/cri-docker.service
- 啟動服務(wù)
systemctl daemon-reload && systemctl restart docker cri-docker.socket cri-docker
systemctl status docker cri-docker
三、安裝kubenetes
1埃篓、安裝相關(guān)rpm包
cd ../kubenetes-1.28.4-rpm/
rpm -ivh *.rpm
image.png
2处坪、啟動kubelet
#systemctl start kubelet
systemctl enable kubelet
3、導(dǎo)入鏡像
cd ../kubenetes-1.28.4-images/
for i in `ls *.tar`; do docker load -i $i ;done
image.png
4、初始化集群
替換其中的 --node-name稻薇,--apiserver-advertise-address
kubeadm init --node-name=k8s-test \
--image-repository=registry.aliyuncs.com/google_containers \
--cri-socket=unix:///var/run/cri-dockerd.sock \
--apiserver-advertise-address=192.168.177.138 \
--pod-network-cidr=10.244.0.0/16 \
--service-cidr=10.96.0.0/12
image.png
- 根據(jù)提示執(zhí)行命令
配置環(huán)境變量
# 非root用戶請執(zhí)行
$ mkdir -p $HOME/.kube
$ sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
$ sudo chown $(id -u):$(id -g) $HOME/.kube/config
# root用戶直接執(zhí)行
# 臨時生效嫂冻,重啟后失效,不推薦塞椎。
$ export KUBECONFIG=/etc/kubernetes/admin.conf
# 永久生效桨仿,執(zhí)行kubeadm reset后再次init也無需再次執(zhí)行這條命令
$ echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> ~/.bash_profile
$ source ~/.bash_profile
# 添加節(jié)點命令:
kubeadm join 192.168.177.138:6443 --token ybmcig.iv403delaz5p5vfe \
--discovery-token-ca-cert-hash sha256:008183ca74d9f7577684566ca53e801205f0de54ee225deb4fc4d015c828608a
5、安裝網(wǎng)絡(luò)組件
kubectl apply -f kube-flannel.yml