背景
公司使用的是交老的k8s版本(1.16),由于老版本的K8s對于現(xiàn)在很多新特性不支持,所以需要升級到新版本。目前2023年7月11日最新版本的k8s是v1.27.3。通過參考官方文檔進(jìn)行k8s部署工作。其中涉及到操作系統(tǒng)配置、防火墻配置、私有鏡像倉庫等。
推薦一個AI工具:態(tài)靈AI: chatai.taigoodai.com
環(huán)境
操作系統(tǒng):centos7.9
機(jī)器:1個master 和 1個node 節(jié)點(diǎn)
安裝
設(shè)置系統(tǒng)
# 所有機(jī)器設(shè)置hostname
hostnamectl set-hostname master1
hostnamectl set-hostname node1
# 所有機(jī)器增加內(nèi)網(wǎng)ip和 master1 對應(yīng)關(guān)系
vi /etc/hosts
如:
master1 192.168.1.1
node1 192.168.1.3
關(guān)閉防火墻
# 注意,如果不關(guān)閉防火墻,需要將kubernates所有端口放行
sudo systemctl stop firewalld.service
sudo systemctl disable firewalld.service
設(shè)置機(jī)器同步
可使用ntpdate,如果是各大廠的云服務(wù)器,也可以不設(shè)置,云服務(wù)器已設(shè)置好
關(guān)閉交換空間
sudo swapoff -a
sudo sed -i 's/.*swap.*/#&/' /etc/fstab
關(guān)閉selinux
getenforce
cat /etc/selinux/config
sudo setenforce 0
sudo sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
cat /etc/selinux/config
使用阿里云的Yum庫
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
# 是否開啟本倉庫
enabled=1
# 是否檢查 gpg 簽名文件
gpgcheck=0
# 是否檢查 gpg 簽名文件
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
配置網(wǎng)橋
# 設(shè)置所需的 sysctl 參數(shù),參數(shù)在重新啟動后保持不變
cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
vm.swappiness = 0
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
安裝containerd
由于新的Kubernates [1.24.0以上] 建議使用contanerd, 而且kubernates如何使用containerd 不會像使用docker一樣,要中間轉(zhuǎn)幾層,故其性能很好。大概CPU使用率減少60%,內(nèi)存使用率能減少12%。文章來源:http://www.zghlxwxcb.cn/news/detail-704962.html
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
sudo yum install -y containerd.io containerd
sudo systemctl stop containerd.service
sudo containerd config default > /etc/containerd/config.toml
sudo sed -i "s#registry.k8s.io/pause#registry.cn-hangzhou.aliyuncs.com/google_containers/pause#g" /etc/containerd/config.toml
# 更改/etc/containerd/config.toml ,disabled_plugins 中刪除 cri
vi /etc/containerd/config.toml
sudo sed -i "s#SystemdCgroup = false#SystemdCgroup = true#g" /etc/containerd/config.toml
sudo systemctl enable --now containerd.service
sudo systemctl status containerd.service
sudo modprobe br_netfilter
安裝k8s
sudo yum install -y kubelet-1.27.3-0 kubeadm-1.27.3-0 kubectl-1.27.3-0 --disableexcludes=kubernetes --nogpgcheck
sudo systemctl daemon-reload
sudo systemctl restart kubelet
sudo systemctl enable kubelet
初始化k8s master節(jié)點(diǎn)
kubeadm init --image-repository=registry.aliyuncs.com/google_containers
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
# 讓master參與服務(wù)調(diào)度,不做control-plane
kubectl taint node master1 node-role.kubernetes.io/control-plane-
kubectl label node master1 kubernetes.io/role=master
sudo crictl config runtime-endpoint unix:///var/run/containerd/containerd.sock
增加k8s worker節(jié)點(diǎn)
利用上一步中 kubeadm init后產(chǎn)生的命令在work節(jié)點(diǎn)中執(zhí)行文章來源地址http://www.zghlxwxcb.cn/news/detail-704962.html
kubeadm join 172.16.64.9:6443 --token token.fake --discovery-token-ca-cert-hash sha256:fake
安裝calico網(wǎng)絡(luò)插件
wget --no-check-certificate https://projectcalico.docs.tigera.io/archive/v3.25/manifests/calico.yaml
# 修改 calico.yaml 文件
vim calico.yaml
# 在 - name: CLUSTER_TYPE 下方添加如下內(nèi)容
- name: CLUSTER_TYPE
value: "k8s,bgp"
# 下方為新增內(nèi)容
- name: IP_AUTODETECTION_METHOD
value: "interface=網(wǎng)卡名稱"
# 例如:- name: IP_AUTODETECTION_METHOD
# 例如: value: "interface=eth0" 可使用通配符,例如:interface="eth.*|en.*"
kubectl apply -f calico.yaml
查看集群狀態(tài)
kubectl cluster-info
kubectl get nodes
kubectl get pods -A -o wide
常用命令
containerd命令
# 查看鏡像
ctr image list
或者
crictl images
# 拉取鏡像, 分為非k8s容器用 和 k8s容器用。一定要加上--all-platforms
ctr i pull --all-platforms registry.xxxxx/pause:3.2
ctr -n k8s.io i pull --all-platforms registry.aliyuncs.com/google_containers/pause:3.2
或者,要登錄的harbor
ctr i pull --user user:passwd --all-platforms registry.aliyuncs.com/google_containers /pause:3.2
或者,不推薦,沒有 --all-platforms
crictl pull --creds user:passwd registry.aliyuncs.com/google_containers /pause:3.2
# 鏡像打tag
鏡像標(biāo)記tag
ctr -n k8s.io i tag registry.xxxxx/pause:3.2 k8s.gcr.io/pause:3.2
或者 強(qiáng)制覆蓋
ctr -n k8s.io i tag --force registry.xxxxx/pause:3.2 k8s.gcr.io/pause:3.2
# 刪除鏡像tag
ctr -n k8s.io i rm registry.xxxxx/pause:3.2
# 推送鏡像
ctr i push --all-platforms --user user:passwd registry.xxxxx/pause:3.2
# 導(dǎo)出/保存鏡像
ctr -n=k8s.io i export kube-apiserver:v1.28.0.tar xxxxx.com/kube-apiserver:v1.28.0 --all-platforms
ctr -n=k8s.io i import kube-apiserver:v1.28.0.tar
到了這里,關(guān)于Kubernetes[k8s] 最新版1.27.3安裝教程,使用containerd模式的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!