超詳細kubernetes部署k8s----一臺master和兩臺node

一、部署說明

1、主機操作系統說明

2、主機硬件配置說明

二、主機準備(沒有特別說明都是三臺都要配置)

1、配置主機名和IP

2、配置hosts解析

3、防火墻和SELinux

4、時間同步配置

5、配置內核轉發及網橋過濾

6、關閉swap

7、啟用ipvs

8、句柄數最大

9、系統優化

三、容器運行時工具安裝及運行

1、安裝docker

2、安裝cri-dockerd

1. 下載最新版cri-dockerd rpm包

2、安裝并啟動cri-docker

3、cri-dockerd設置國內鏡像加速

四、K8S軟件安裝

1、配置kubernetes源

?2、查看所有可用的版本

3、安裝kubelet、kubeadm、kubectl、kubernetes-cni

?4、配置cgroup

五、K8S集群初始化

六、K8S集群工作節點加入

七、K8S集群網絡插件使用

八、Kubectl命令自動補全

九、報錯問題與解決

1、在替換默認源時----dnf makecache出現以下內容

2、在安裝docker的,更新并安裝Docker-CE時出現

3、在安裝cri-dockerd時,

4、K8S集群初始化時


一、部署說明

image-20250217162805144

1、主機操作系統說明

序號操作系統及版本備注
1Rocky Linux release 9下載鏈接:https://mirrors.163.com/rocky/9.5/isos/x86_64/Rocky-9.5-x86_64-minimal.iso

2、主機硬件配置說明

作用IP地址操作系統配置關鍵組件
k8s-master01192.168.131.137Rocky Linux release 92顆CPU 4G內存 100G硬盤kube-apiserver, etcd, etc
k8s-node01192.168.131.138Rocky Linux release 92顆CPU 4G內存 100G硬盤kubelet, kube-proxy
k8s-node02192.168.131.139Rocky Linux release 92顆CPU 4G內存 100G硬盤kubelet, kube-proxy

網絡規劃表

網絡類型CIDR用途說明
節點管理網絡10.10.0.0/24SSH/K8s組件通信
Pod網絡10.244.0.0/16Flannel默認網段
Service網絡10.96.0.0/16ClusterIP地址池
Ingress網絡172.16.90.0/24外部訪問入口

二、主機準備(沒有特別說明都是三臺都要配置)

1、系統最小化安裝。(最小內存)
2、替換默認源。
#這組命令的作用是把 Rocky Linux 的軟件源配置文件中的官方鏡像地址替換成阿里云的鏡像地址,同時備份原配置文件sed -e 's|^mirrorlist=|#mirrorlist=|g' \-e 's|^#baseurl=http://dl.rockylinux.org/$contentdir|baseurl=https://mirrors.aliyun.com/rockylinux|g' \-i.bak \/etc/yum.repos.d/rocky*.repo#?更新軟件包元數據緩存dnf makecache
3、安裝epel軟件倉庫,更換國內源1>. 在 Rocky Linux 9 中啟用并安裝 EPEL Repo。
dnf config-manager --set-enabled crb
dnf install epel-release
????????2>. 備份(如有配置其他epel源)并替換為國內鏡像 注意最后這個庫,阿里云沒有對應的鏡像,不要修改它,如果誤改恢復原版源即可
cp /etc/yum.repos.d/epel.repo  /etc/yum.repos.d/epel.repo.backup 
cp /etc/yum.repos.d/epel-testing.repo  /etc/yum.repos.d/epel-testing.repo.backup
cp /etc/yum.repos.d/epel-cisco-openh264.repo  /etc/yum.repos.d/epel-cisco-openh264.repo.backup
?????????3>. 將 repo 配置中的地址替換為阿里云鏡像站地址執行下面語句,它會替換epel.repo、eple-testing.repo中的網址,不會修改epel-cisco-openh264.repo,可以正常使用。
?
sed -e 's!^metalink=!#metalink=!g' \-e 's!^#baseurl=!baseurl=!g' \-e 's!https\?://download\.fedoraproject\.org/pub/epel!https://mirrors.aliyun.com/epel!g' \-e 's!https\?://download\.example/pub/epel!https://mirrors.aliyun.com/epel!g' \-i /etc/yum.repos.d/epel{,-testing}.repo
現在我們有了 EPEL 倉庫,更新倉庫緩存
?
dnf clean all 
dnf makecache

1、配置主機名和IP

#在131.137上配置
hostnamectl set-hostname k8s-master01
#在131.138上配置
hostnamectl set-hostname k8s-node01
#在131.139上配置
hostnamectl set-hostname k8s-node02

2、配置hosts解析

# cat >> /etc/hosts << EOF
172.16.90.11 k8s-master01
172.16.90.12 k8s-node01
172.16.90.13 k8s-node02
EOF# 配置免密登錄,只在k8s-master01上操作
[root@k8s-master01 ~]# ssh-keygen -f ~/.ssh/id_rsa -N '' -q
?
# 點拷貝秘鑰到其他 2 臺節點
[root@k8s-master01 ~]# ssh-copy-id k8s-node01
[root@k8s-master01 ~]# ssh-copy-id k8s-node02

3、防火墻和SELinux

systemctl disable --now firewalld
sed -i '/^SELINUX=/ c SELINUX=disabled' /etc/selinux/config
setenforce 0

4、時間同步配置

#安裝chrony
dnf install -y chrony
# 修改同步服務器
sed -i '/^pool/ c pool ntp1.aliyun.com  iburst' /etc/chrony.conf
systemctl restart chronyd
systemctl enable chronyd
?
chronyc sources
出現以下內容:
MS Name/IP address ? ? ? ? Stratum Poll Reach LastRx Last sample ? ? ? ? ? ? ? 
===============================================================================
^* 47.96.149.233 ? ? ? ? ? ? ? ? 2 ? 6 ? ?17 ? ? 3 ? ?+77us[ +147us] +/- ? 34ms

5、配置內核轉發及網橋過濾

添加網橋過濾及內核轉發配置文件
# cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
vm.swappiness = 0
EOF
?
#加載br_netfilter模塊
modprobe br_netfilter
?
#查看是否加載
lsmod | grep br_netfilter
br_netfilter ? ? ? ? ? 22256 ?0
bridge ? ? ? ? ? ? ? ?151336 ?1 br_netfilter
?
使用新添加配置文件生效
# sysctl -p /etc/sysctl.d/k8s.conf

6、關閉swap

# 臨時關閉?
swapoff -a#永遠關閉swap分區
sed -i 's/.*swap.*/#&/' /etc/fstab

7、啟用ipvs

?
cat >> /etc/modules-load.d/ipvs.conf << EOF
br_netfilter
ip_conntrack
ip_vs
ip_vs_lc
ip_vs_wlc
ip_vs_rr
ip_vs_wrr
ip_vs_lblc
ip_vs_lblcr
ip_vs_dh
ip_vs_sh
ip_vs_fo
ip_vs_nq
ip_vs_sed
ip_vs_ftp
ip_vs_sh
nf_conntrack
ip_tables
ip_set
xt_set
ipt_set
ipt_rpfilter
ipt_REJECT
ipip
EOF#下載安裝?
dnf install ipvsadm ipset sysstat conntrack libseccomp -y
?
# 重啟服務
systemctl restart systemd-modules-load.service
# 查看以下內容
lsmod | grep -e ip_vs -e nf_conntrack#出現以下內容
ip_vs_ftp ? ? ? ? ? ? ?16384 ?0
nf_nat ? ? ? ? ? ? ? ? 61440 ?1 ip_vs_ftp
.....
nf_defrag_ipv4 ? ? ? ? 16384 ?1 nf_conntrack
libcrc32c ? ? ? ? ? ? ?16384 ?4 nf_conntrack,nf_nat,xfs,ip_vs

8、句柄數最大

ulimit -SHn 65535
cat >> /etc/security/limits.conf <<EOF
* soft nofile 655360
* hard nofile 131072
* soft nproc 655350
* hard nproc 655350
* seft memlock unlimited
* hard memlock unlimitedd
EOF
#查看修改結果
ulimit -a

9、系統優化

cat > /etc/sysctl.d/k8s_better.conf << EOF
net.bridge.bridge-nf-call-iptables=1
net.bridge.bridge-nf-call-ip6tables=1
net.ipv4.ip_forward=1
vm.swappiness=0
vm.overcommit_memory=1
vm.panic_on_oom=0
fs.inotify.max_user_instances=8192
fs.inotify.max_user_watches=1048576
fs.file-max=52706963
fs.nr_open=52706963
net.ipv6.conf.all.disable_ipv6=1
net.netfilter.nf_conntrack_max=2310720
EOF
?
modprobe br_netfilterlsmod |grep conntrackmodprobe ip_conntracksysctl -p /etc/sysctl.d/k8s_better.conf
?

三、容器運行時工具安裝及運行

1、安裝docker

?
#安裝依賴
yum install -y yum-utils device-mapper-persistent-data lvm2
?
#添加軟件源信息
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/rhel/docker-ce.repo
?
#更新并安裝Docker-CE
yum makecache fast
yum -y install docker-ce
?
#查看版本 
docker -v
#出現以下
Docker version 27.5.1, build 9f9e405
?
?
# 設置國內鏡像加速
mkdir -p /etc/docker/
cat  >> /etc/docker/daemon.json << EOF
{"registry-mirrors":["https://p3kgr6db.mirror.aliyuncs.com","https://docker.m.daocloud.io","https://your_id.mirror.aliyuncs.com","https://docker.nju.edu.cn/","https://docker.anyhub.us.kg","https://dockerhub.jobcher.com","https://dockerhub.icu","https://docker.ckyl.me","https://cr.console.aliyun.com"],
"exec-opts": ["native.cgroupdriver=systemd"]
}
EOF
?
?
#設置docker開機啟動并啟動
systemctl enable --now docker
?
?
#查看docker版本
docker version

2、安裝cri-dockerd

1. 下載最新版cri-dockerd rpm包

網絡條件好的話直接使用wget下載,網絡條件一般的話可以在github上面先下載再上傳到虛擬機

下載地址:Releases · Mirantis/cri-dockerd (github.com)。

https://github.com/Mirantis/cri-dockerd/releases/download/v0.3.16/cri-dockerd-0.3.16-3.fc35.x86_64.rpm

2、安裝并啟動cri-docker
wget -c https://github.com/Mirantis/cri-dockerd/releases/download/v0.3.16/cri-dockerd-0.3.16-3.fc35.x86_64.rpm
wget -c https://rpmfind.net/linux/almalinux/8.10/BaseOS/x86_64/os/Packages/libcgroup-0.41-19.el8.x86_64.rpm
yum install libcgroup-0.41-19.el8.x86_64.rpm
yum install cri-dockerd-0.3.16-3.fc35.x86_64.rpm
systemctl enable cri-docker但一般如果沒有代理是安裝不了的,可以上傳cri-dockerd和他的lincgroup依賴包的包(私我)上傳好后
順序不要錯
yum install libcgroup-0.41-19.el8.x86_64.rpm
yum install cri-dockerd-0.3.16-3.fc35.x86_64.rpm
systemctl enable cri-docke
3、cri-dockerd設置國內鏡像加速
vim /usr/lib/systemd/system/cri-docker.service
------------------
修改第10行內容
ExecStart=/usr/bin/cri-dockerd ?--pod-infra-container-image=registry.aliyuncs.com/google_containers/pause:3.9 ?--container-runtime-endpoint ?fd://
-----------------------------------
?
# 重啟Docker組件
systemctl daemon-reload && systemctl restart docker cri-docker.socket cri-docker 
# 檢查Docker組件狀態
systemctl status docker cir-docker.socket cri-docker

四、K8S軟件安裝

1、配置kubernetes源
#添加阿里云YUM軟件源
cat <<EOF | tee /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes-new/core/stable/v1.32/rpm/
enabled=1
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes-new/core/stable/v1.32/rpm/repodata/repomd.xml.key
EOF
?2、查看所有可用的版本
yum list kubelet --showduplicates | sort -r |grep 1.32kubelet.x86_64 ? ? ? ? ? ? ? ? ? ?1.32.2-150500.1.1 ? ? ? ? ? ? ? ? ? kubernetes
kubelet.x86_64 ? ? ? ? ? ? ? ? ? ?1.32.1-150500.1.1 ? ? ? ? ? ? ? ? ? kubernetes
kubelet.x86_64 ? ? ? ? ? ? ? ? ? ?1.32.0-150500.1.1 ? ? ? ? ? ? ? ? ? kubernetes
kubelet.src ? ? ? ? ? ? ? ? ? ? ? 1.32.2-150500.1.1 ? ? ? ? ? ? ? ? ? kubernetes
kubelet.src ? ? ? ? ? ? ? ? ? ? ? 1.32.1-150500.1.1 ? ? ? ? ? ? ? ? ? kubernetes
kubelet.src ? ? ? ? ? ? ? ? ? ? ? 1.32.0-150500.1.1 ? ? ? ? ? ? ? ? ? kubernetes
kubelet.s390x ? ? ? ? ? ? ? ? ? ? 1.32.2-150500.1.1 ? ? ? ? ? ? ? ? ? kubernetes
kubelet.s390x ? ? ? ? ? ? ? ? ? ? 1.32.1-150500.1.1 ? ? ? ? ? ? ? ? ? kubernetes
kubelet.s390x ? ? ? ? ? ? ? ? ? ? 1.32.0-150500.1.1 ? ? ? ? ? ? ? ? ? kubernetes
kubelet.ppc64le ? ? ? ? ? ? ? ? ? 1.32.2-150500.1.1 ? ? ? ? ? ? ? ? ? kubernetes
kubelet.ppc64le ? ? ? ? ? ? ? ? ? 1.32.1-150500.1.1 ? ? ? ? ? ? ? ? ? kubernetes
kubelet.ppc64le ? ? ? ? ? ? ? ? ? 1.32.0-150500.1.1 ? ? ? ? ? ? ? ? ? kubernetes
kubelet.aarch64 ? ? ? ? ? ? ? ? ? 1.32.2-150500.1.1 ? ? ? ? ? ? ? ? ? kubernetes
kubelet.aarch64 ? ? ? ? ? ? ? ? ? 1.32.1-150500.1.1 ? ? ? ? ? ? ? ? ? kubernetes
kubelet.aarch64 ? ? ? ? ? ? ? ? ? 1.32.0-150500.1.1 ? ? ? ? ? ? ? ? ? kubernetes
?
3、安裝kubelet、kubeadm、kubectl、kubernetes-cni
yum install -y kubelet kubeadm kubectl kubernetes-cni
?4、配置cgroup
為了實現docker使用的cgroupdriver與kubelet使用的cgroup的一致性,建議修改如下文件內容。
vim /etc/sysconfig/kubelet? [3臺全部設置下]
---------------------
添加
KUBELET_EXTRA_ARGS="--cgroup-driver=systemd"
---------------------
設置kubelet為開機自啟動即可,由于沒有生成配置文件,集群初始化后自動啟動
systemctl enable kubelet
-----------------------------------

五、K8S集群初始化

# 只在master01節點上操作創建初始化文件 kubeadm-init.yaml
?kubeadm config print init-defaults > kubeadm-init.yaml
#修改如下配置:
?
#- advertiseAddress:為控制平面地址,( Master 主機 IP )
#    advertiseAddress: 1.2.3.4
修改為 advertiseAddress: 172.16.90.11#- criSocket:為 containerd 的 socket 文件地址
#    criSocket: unix:///var/run/containerd/containerd.sock
修改為 criSocket: unix:///var/run/cri-dockerd.sock#    name: node
修改為 name: k8s-master01
?
#- imageRepository:阿里云鏡像代理地址,否則拉取鏡像會失敗
#    imageRepository: registry.k8s.io
修改為:imageRepository: registry.aliyuncs.com/google_containers#- kubernetesVersion:為 k8s 版本
#   kubernetesVersion: 1.32.0
修改為:kubernetesVersion: 1.32.2#注意:一定要配置鏡像代理,否則會由于防火墻問題導致集群安裝失敗文件末尾增加啟用ipvs功能
apiVersion: kubeproxy.config.k8s.io/v1alpha1
kind: KubeProxyConfiguration
mode: ipvs
?
# 根據配置文件啟動 kubeadm 初始化 k8skubeadm init --config=kubeadm-init.yaml --upload-certs --v=6
...
?
#(當出現以下就說明配置成功了)
Your Kubernetes control-plane has initialized successfully!
?
To start using your cluster, you need to run the following as a regular user:
?mkdir -p $HOME/.kubesudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/configsudo chown $(id -u):$(id -g) $HOME/.kube/config
?
Alternatively, if you are the root user, you can run:
?export KUBECONFIG=/etc/kubernetes/admin.conf
?
You should now deploy a pod network to the cluster.
Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:https://kubernetes.io/docs/concepts/cluster-administration/addons/
?
Then you can join any number of worker nodes by running the following on each as root:
?
#(這個每個人是不同的記得復制,后續有用)
kubeadm join 172.16.90.11:6443 --token abcdef.0123456789abcdef \--discovery-token-ca-cert-hash sha256:06faf8d64c03530bf88d1a34eae877b3d446ab5e4f0e071fc96567ccf53b1e70 #配置一下內容mkdir -p $HOME/.kubesudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/configsudo chown $(id -u):$(id -g) $HOME/.kube/config
? ?export KUBECONFIG=/etc/kubernetes/admin.conf

六、K8S集群工作節點加入

#所有的工作節點加入集群注意:加入集群時需要添加 (node1和node2添加)
--cri-socket unix:///var/run/cri-dockerd.sock
kubeadm join 172.16.90.11:6443 --token abcdef.0123456789abcdef \--discovery-token-ca-cert-hash sha256:06faf8d64c03530bf88d1a34eae877b3d446ab5e4f0e071fc96567ccf53b1e70 \--cri-socket unix:///var/run/cri-dockerd.sock[root@k8s-master01 ~]# kubectl get node
NAME ? ? ? ? ? STATUS ? ? ROLES ? ? ? ? ? AGE ? ? VERSION
k8s-master01 ? NotReady ? control-plane ? 2m55s ? v1.32.2
k8s-node01 ? ? NotReady ? <none> ? ? ? ?  56s ? ? v1.32.2
k8s-node02 ? ? NotReady ? <none> ? ? ? ?  49s ? ? v1.32.2

七、K8S集群網絡插件使用

網絡插件選型對比

插件網絡模式性能損耗適用場景
FlannelVXLAN8-10%中小型集群
CalicoBGP3-5%大規模生產環境
CiliumeBPF1-3%云原生安全場景
Weavemesh10-15%混合云環境
# 只在master01上操作可能也需要代理,如果curl不下來,私我發包直接上傳不用修改)
curl -O https://docs.projectcalico.org/archive/v3.28/manifests/calico.yaml
?vim calico.yaml
以下兩行默認沒有開啟,開始后修改第二行為kubeadm初始化使用指定的pod network即可。
3680 ? ? ? ? ? ? # The default IPv4 pool to create on startup if none exists. Pod IPs will be
3681 ? ? ? ? ? ? # chosen from this range. Changing this value after installation will have
3682 ? ? ? ? ? ? # no effect. This should fall within `--cluster-cidr`.
3683 ? ? ? ? ? ? - name: CALICO_IPV4POOL_CIDR
3684 ? ? ? ? ? ? ? value: "10.244.0.0/16"
3685 ? ? ? ? ? ? # Disable file logging so `kubectl logs` works.
?#可以將鏡像提前拉取下來,如果官網倉庫不可達,可以嘗試手動從quay.io下載鏡像,quay.io是一個公共鏡像倉庫。(這步需要三臺都要拉鏡像)
docker pull calico/cni:v3.28.0
docker pull calico/node:v3.28.0
docker pull calico/kube-controllers:v3.28.0
#(可能也是需要代理才能拉下鏡像來,私我發包直接上傳,再按以下步驟)
?docker load -i calico.tar.gz
docker images#部署calico網絡(在master上)
[root@k8s-master01 ~]# kubectl apply -f calico.yaml
?
#檢查:
[root@k8s-master01 ~]# kubectl get pod -n kube-system 
NAME ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?  READY ? STATUS ?  RESTARTS ? AGE
calico-kube-controllers-cb7c98d86-qbbmr ? 1/1 ? ? Running ? 0 ? ? ? ?  10m
calico-node-68gc6 ? ? ? ? ? ? ? ? ? ? ? ? 1/1 ? ? Running ? 0 ? ? ? ?  10m
calico-node-gxcl8 ? ? ? ? ? ? ? ? ? ? ? ? 1/1 ? ? Running ? 0 ? ? ? ?  10m
calico-node-xj6xp ? ? ? ? ? ? ? ? ? ? ? ? 1/1 ? ? Running ? 0 ? ? ? ?  10m
coredns-6766b7b6bb-dzbzb ? ? ? ? ? ? ? ? ?1/1 ? ? Running ? 0 ? ? ? ?  59m
coredns-6766b7b6bb-qmwjw ? ? ? ? ? ? ? ? ?1/1 ? ? Running ? 0 ? ? ? ?  59m
etcd-k8s-master01 ? ? ? ? ? ? ? ? ? ? ? ? 1/1 ? ? Running ? 0 ? ? ? ?  59m
kube-apiserver-k8s-master01 ? ? ? ? ? ? ? 1/1 ? ? Running ? 0 ? ? ? ?  59m
kube-controller-manager-k8s-master01 ? ? ?1/1 ? ? Running ? 0 ? ? ? ?  59m
kube-proxy-gfv7j ? ? ? ? ? ? ? ? ? ? ? ? ?1/1 ? ? Running ? 0 ? ? ? ?  59m
kube-proxy-nfhvt ? ? ? ? ? ? ? ? ? ? ? ? ?1/1 ? ? Running ? 0 ? ? ? ?  57m
kube-proxy-pf2rs ? ? ? ? ? ? ? ? ? ? ? ? ?1/1 ? ? Running ? 0 ? ? ? ?  57m
kube-scheduler-k8s-master01 ? ? ? ? ? ? ? 1/1 ? ? Running ? 0 ? ? ? ?  59m
?

八、Kubectl命令自動補全

yum -y install bash-completion
source /usr/share/bash-completion/bash_completion
source <(kubectl completion bash)
echo "source <(kubectl completion bash)" >> ~/.bashrc

九、報錯問題與解決

1、在替換默認源時----dnf makecache出現以下內容

? ? ? ? 1、檢查網絡連接(如果無法 ping 通,可能是網絡配置問題,在管理出檢查設備是否可以net連接)

ping mirrors.aliyun.com

如果網絡連接正常,但域名解析失敗,可能是 DNS 配置有問題。?/etc/resolv.conf?文件,添加一個可靠的 DNS 服務器,我這里是

?search localdomain nameserver 192.168.131.2

你也可以寫?Google 的公共 DNS:

nameserver 8.8.8.8
nameserver 8.8.4.4

2、在安裝docker的,更新并安裝Docker-CE時出現

加一個sudo就行

sudo yum makecache fast

3、在安裝cri-dockerd時,

這表示沒有cri-docker的依賴包libcgroup,只需要改變一下順序:先安裝libcgroup如下:

yum install libcgroup-0.41-19.el8.x86_64.rpm
yum install cri-dockerd-0.3.16-3.fc35.x86_64.rpm

4、K8S集群初始化時

? ? ? ? 1、出現重復字段和未知字段,如下

#進入到kubeadm-init.yaml里,將配置修改為以下內容(可以直接粘貼過去,但 advertiseAddress:后面的ip改為你自己的master IP地址)
vim kubeadm-init.yamlapiVersion: kubeadm.k8s.io/v1beta4
kind: InitConfiguration
bootstrapTokens:
- groups:- system:bootstrappers:kubeadm:default-node-tokentoken: abcdef.0123456789abcdefttl: 24h0m0susages:- signing- authentication
localAPIEndpoint:advertiseAddress: 192.168.131.137bindPort: 6443
nodeRegistration:criSocket: unix:///var/run/cri-dockerd.sockimagePullPolicy: IfNotPresentname: k8s-master01taints: null
timeouts:controlPlaneComponentHealthCheck: 4m0sdiscovery: 5m0setcdAPICall: 2m0skubeletHealthCheck: 4m0skubernetesAPICall: 1m0stlsBootstrap: 5m0supgradeManifests: 5m0s
---
apiVersion: kubeadm.k8s.io/v1beta4
kind: ClusterConfiguration
clusterName: kubernetes
imageRepository: registry.aliyuncs.com/google_containers
kubernetesVersion: 1.32.2
networking:dnsDomain: cluster.localserviceSubnet: 10.96.0.0/12
certificatesDir: /etc/kubernetes/pki
caCertificateValidityPeriod: 87600h0m0s
certificateValidityPeriod: 8760h0m0s
encryptionAlgorithm: RSA-2048
apiServer: {}
controllerManager: {}
scheduler: {}
etcd:local:dataDir: /var/lib/etcd
dns: {}
---
apiVersion: kubeproxy.config.k8s.io/v1alpha1
kind: KubeProxyConfiguration
mode: ipvs

???????再次執行?kubeadm init --config=kubeadm-init.yaml --upload-certs --v=6 ? ? ?

????????2、kubelet沒有運行

首先,檢查?kubelet?是否正在運行:

systemctl status kubelet

如果?kubelet?沒有運行,嘗試啟動它:

sudo systemctl start kubelet

然后再次檢查狀態:

systemctl status kubelet

???????再次執行?kubeadm init --config=kubeadm-init.yaml --upload-certs --v=6 ? ? ?

3、問題 1:端口被占用。問題 2:文件已存在。問題 3:/var/lib/etcd?目錄不為空問題/var/lib/etcd?目錄不為空

?

#安裝 net-tools
sudo dnf install net-tools -y
#檢查端口占用
[root@k8s-master01 ~]# sudo netstat -tuln | grep -E '6443|10259|10257|10250|2379|2380'
tcp6       0      0 :::10250                :::*                    LISTEN
#運行以下命令停止 kubelet 服務:
sudo systemctl stop kubelet2. 檢查 kubelet 是否仍在運行
運行以下命令確認 kubelet 是否已停止:
sudo systemctl status kubelet3. 清理 Kubernetes 環境
運行以下命令清理 Kubernetes 環境:
sudo kubeadm reset
sudo rm -rf /etc/kubernetes
sudo rm -rf /var/lib/etcd
sudo rm -rf $HOME/.kube

???????再次執行?kubeadm init --config=kubeadm-init.yaml --upload-certs --v=6 ? ?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/72735.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/72735.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/72735.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

高光譜相機在水果分類與品質檢測中的應用

一、核心應用領域 ?外部品質檢測? ?表面缺陷識別&#xff1a;通過400-1000nm波段的高光譜成像&#xff0c;可檢測蘋果表皮損傷、碰傷等細微缺陷&#xff0c;結合圖像分割技術實現快速分類?。 ?損傷程度評估&#xff1a;例如青香蕉的碰撞損傷會導致光譜反射率變化&#…

【藍橋杯每日一題】3.17

&#x1f3dd;?專欄&#xff1a; 【藍橋杯備篇】 &#x1f305;主頁&#xff1a; f狐o貍x 他們說內存泄漏是bug&#xff0c;我說這是系統在逼我進化成SSR級程序員 OK來吧&#xff0c;不多廢話&#xff0c;今天來點有難度的&#xff1a;二進制枚舉 二進制枚舉&#xff0c;就是…

Windows11 新機開荒(二)電腦優化設置

目錄 前言&#xff1a; 一、注冊微軟賬號綁定權益 二、此電腦 桌面圖標 三、系統分盤及默認存儲位置更改 3.1 系統分盤 3.2 默認存儲位置更改 四、精簡任務欄 總結&#xff1a; 前言&#xff1a; 本文承接上一篇 新機開荒&#xff08;一&#xff09; 上一篇文章地址&…

aws(學習筆記第三十三課) 深入使用cdk 練習aws athena

文章目錄 aws(學習筆記第三十三課) 深入使用cdk學習內容&#xff1a;1. 使用aws athena1.1 什么是aws athena1.2 什么是aws glue1.2 為什么aws athena和aws glue一起使用 2. 開始練習aws athena2.1 代碼鏈接2.2 整體架構2.3 代碼解析2.3.1 創建測試數據的S3 bucket2.3.2 創建保…

每日學習Java之一萬個為什么(待補充)

Git分支操作 git branch 分支名 git branch -v git checkout -b 分支名 git checkout 分支名 git merge 分支名 git branch -d | -D 分支名Git沖突 git同名文件合并的最基本單位是行。同名文件同一行不同就會發生沖突。 解決辦法&#xff1a;及時溝通&#xff0c;手動更改&…

C++ 多生產者單消費者(MPSC)模式

根據你的需求,多生產者單消費者(MPSC)模式的日志任務隊列需要調整設計。以下是改進后的代碼實現,重點在于多線程安全入隊、單線程消費任務,并確保停止時隊列任務全部處理完畢: 多生產者單消費者(MPSC)任務隊列實現 #include <iostream> #include <queue> …

OpenCV基礎【圖像和視頻的加載與顯示】

目錄 一.創建一個窗口&#xff0c;顯示圖片 二.顯示攝像頭/多媒體文件 三.把攝像頭錄取到的視頻存儲在本地 四.鼠標回調事件 五.TrackBar滑動條 一.創建一個窗口&#xff0c;顯示圖片 import cv2img_path "src/fengjing.jpg" # 自己的圖片路徑 img cv2.imre…

c++--vector

1.定義vector vector的定義分為四種 (1)vector() ——————無參構造 (2)vector(size_t n,const value_type& val value_type()) ——————構造并初始化n個val (3)vector(const vector& v1) ———————拷貝構造 (4)vector(inputiterator first,inpu…

宇樹科技純技能要求總結

一、嵌入式開發與硬件設計 核心技能 嵌入式開發&#xff1a; 精通C/C&#xff0c;熟悉STM32、ARM開發熟悉Linux BSP開發及驅動框架&#xff08;SPI/UART/USB/FLASH/Camera/GPS/LCD&#xff09;掌握主流平臺&#xff08;英偉達、全志、瑞芯微等&#xff09; 硬件設計&#xff1a…

「Unity3D」UGUI運行時設置元素的錨點Anchor,維持元素Rect的顯示不變,即待在原處

在編輯器中&#xff0c;通過設置Raw edit mode&#xff0c;可以切換兩種&#xff0c;元素錨點的改變模式&#xff1a; 一種是錨點單獨改變&#xff0c;即&#xff1a;不開啟原始模式&#xff0c;保持原樣&#xff0c;改變anchoredPosition與sizeDelta。一種是錨點聯動顯示&…

使用 Google Firebase 控制臺和 ESP8266 NodeMCU 的物聯網控制 LED

使用 Google Firebase 控制臺控制 LED ESP8266 您是否想過從世界任何地方控制任何外圍設備?是的,IoT(物聯網)使從任何地方控制任何設備成為可能,并且有許多 IoT 硬件和云平臺可用于實現這一目標。在前面的教程中,我們已經介紹了許多 IoT 應用程序。今天,我們將使用 Goo…

【數據庫】如何用索引優化查詢性能

引言 在數據庫查詢中&#xff0c;索引是提升性能的關鍵工具。合理使用索引可以顯著減少數據掃描量&#xff0c;加快查詢速度。然而&#xff0c;索引的使用也需要謹慎&#xff0c;錯誤的索引策略可能導致性能下降甚至系統崩潰。本文將深入探討如何通過索引優化查詢性能&#xf…

LeetCode 392. 判斷子序列 java題解

https://leetcode.cn/problems/is-subsequence/description/ 轉化為最長公共子序列問題。求[lens][j]的公共子序列長度是否為lens。 class Solution {//s屬于t,lens<lentpublic boolean isSubsequence(String s, String t) {int lenss.length(),lentt.length();if(s.length…

【Kubernetes】Kube Proxy 如何幫助 Pod 之間通信?Kube-Proxy 實踐案例

kube-proxy 主要通過管理網絡規則和流量轉發來幫助 Pod 之間進行通信&#xff0c;具體方式如下&#xff1a; 1. 維護 Service 相關的網絡規則 kube-proxy 監聽 API Server&#xff0c;當 Service 或 Endpoints 發生變化時&#xff0c;動態更新網絡規則。確保流量能正確地從 S…

平衡樹的模擬實現

一.平衡樹的介紹 平衡樹是以二叉樹結構為基礎&#xff0c;同時引入了平衡因子進行了限制&#xff0c;以保證樹的結點之間的高度差小于等于1&#xff0c;在插入刪除結點時通過旋轉的方法保持高度相對平衡&#xff0c;從而提高搜索等效率。 二.代碼實現 1.平衡樹結點 平衡樹結…

JavaScript基礎-獲取元素

在Web開發中&#xff0c;使用JavaScript動態地訪問和操作網頁上的元素是一項基本技能。通過獲取頁面上的特定元素&#xff0c;我們可以對其進行各種操作&#xff0c;比如修改內容、樣式或屬性等。本文將詳細介紹幾種獲取DOM元素的方法&#xff0c;并探討它們的特點及適用場景。…

為什么要用(:deep、::v-deep、>>>)樣式穿透

在 Vue.js 中&#xff0c;當你使用像 Element UI 這樣的 UI 庫時&#xff0c;它們的樣式通常是全局的&#xff0c;即使你在組件中使用了 scoped 樣式&#xff08;為什么要用scoped&#xff09;&#xff0c;仍然可能需要對這些全局樣式進行修改。 為了實現這一點&#xff0c;樣…

MySQL中的事務隔離級別有哪些

MySQL中的事務隔離級別 一、事務并發問題二、MySQL 事務隔離級別1. READ UNCOMMITTED&#xff08;讀未提交&#xff09;2. READ COMMITTED&#xff08;讀已提交&#xff09;3. REPEATABLE READ&#xff08;可重復讀&#xff09;&#xff08;MySQL 默認級別&#xff09;4. SERIA…

Python----計算機視覺處理(Opencv:圖像鏡像旋轉)

一、圖像鏡像旋轉 圖像的旋轉是圍繞一個特定點進行的&#xff0c;而圖像的鏡像旋轉則是圍繞坐標軸進行的。圖像鏡像旋轉&#xff0c;也可 以叫做圖像翻轉&#xff0c;分為水平翻轉、垂直翻轉、水平垂直翻轉三種。 通俗的理解為&#xff0c;當以圖片的中垂線為x軸和y軸時&#x…

hibernate 自動生成數據庫表和java類 字段順序不一致 這導致添加數據庫數據時 異常

hibernate 自動生成的數據庫表和java類 字段順序不一致 這導致該書寫方式添加數據庫數據時 異常 User user new User( null, username, email, phone, passwordEncoder.encode(password) ); return userRepository.save(user);Hibernate 默認不會保證數據庫表字段的順序與 Ja…