天天看點

Kubernetes-v1.22.10二進制方式安裝(三)

作者:霸都運維

一 寫在前面

接上篇Kubernetes-v1.22.10二進制方式安裝(二)

位址如下:

https://www.toutiao.com/article/7222451304017183247/

二 Kubernetes基本元件安裝

2.8 k8s元件配置

所有k8s節點建立以下目錄

mkdir -p /etc/kubernetes/manifests/ /etc/systemd/system/kubelet.service.d /var/lib/kubelet /var/log/kubernetes

2.8.1 建立apiserver(所有master節點)

master01節點配置

cat > /usr/lib/systemd/system/kube-apiserver.service << EOF

[Unit]

Description=Kubernetes API Server

Documentation=https://github.com/kubernetes/kubernetes

After=network.target

[Service]

ExecStart=/usr/local/bin/kube-apiserver \

--v=2 \

--logtostderr=true \

--allow-privileged=true \

--bind-address=0.0.0.0 \

--secure-port=6443 \

--insecure-port=0 \

--advertise-address=192.168.0.104 \

--service-cluster-ip-range=10.96.0.0/12,fd00::/108 \

--feature-gates=IPv6DualStack=true \

--service-node-port-range=30000-32767 \

--etcd-servers=https://192.168.0.104:2379,https://192.168.0.105:2379,https://192.168.0.106:2379 \

--etcd-cafile=/etc/etcd/ssl/etcd-ca.pem \

--etcd-certfile=/etc/etcd/ssl/etcd.pem \

--etcd-keyfile=/etc/etcd/ssl/etcd-key.pem \

--client-ca-file=/etc/kubernetes/pki/ca.pem \

--tls-cert-file=/etc/kubernetes/pki/apiserver.pem \

--tls-private-key-file=/etc/kubernetes/pki/apiserver-key.pem \

--kubelet-client-certificate=/etc/kubernetes/pki/apiserver.pem \

--kubelet-client-key=/etc/kubernetes/pki/apiserver-key.pem \

--service-account-key-file=/etc/kubernetes/pki/sa.pub \

--service-account-signing-key-file=/etc/kubernetes/pki/sa.key \

--service-account-issuer=https://kubernetes.default.svc.cluster.local \

--kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname \

--enable-admission-plugins=NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,ResourceQuota \

--authorization-mode=Node,RBAC \

--enable-bootstrap-token-auth=true \

--requestheader-client-ca-file=/etc/kubernetes/pki/front-proxy-ca.pem \

--proxy-client-cert-file=/etc/kubernetes/pki/front-proxy-client.pem \

--proxy-client-key-file=/etc/kubernetes/pki/front-proxy-client-key.pem \

--requestheader-allowed-names=aggregator \

--requestheader-group-headers=X-Remote-Group \

--requestheader-extra-headers-prefix=X-Remote-Extra- \

--requestheader-username-headers=X-Remote-User \

--enable-aggregator-routing=true

Restart=on-failure

RestartSec=10s

LimitNOFILE=65535

[Install]

WantedBy=multi-user.target

EOF

master02節點配置

cat > /usr/lib/systemd/system/kube-apiserver.service << EOF

[Unit]

Description=Kubernetes API Server

Documentation=https://github.com/kubernetes/kubernetes

After=network.target

[Service]

ExecStart=/usr/local/bin/kube-apiserver \

--v=2 \

--logtostderr=true \

--allow-privileged=true \

--bind-address=0.0.0.0 \

--secure-port=6443 \

--insecure-port=0 \

--advertise-address=192.168.0.105 \

--service-cluster-ip-range=10.96.0.0/12,fd00::/108 \

--feature-gates=IPv6DualStack=true \

--service-node-port-range=30000-32767 \

--etcd-servers=https://192.168.0.104:2379,https://192.168.0.105:2379,https://192.168.0.106:2379 \

--etcd-cafile=/etc/etcd/ssl/etcd-ca.pem \

--etcd-certfile=/etc/etcd/ssl/etcd.pem \

--etcd-keyfile=/etc/etcd/ssl/etcd-key.pem \

--client-ca-file=/etc/kubernetes/pki/ca.pem \

--tls-cert-file=/etc/kubernetes/pki/apiserver.pem \

--tls-private-key-file=/etc/kubernetes/pki/apiserver-key.pem \

--kubelet-client-certificate=/etc/kubernetes/pki/apiserver.pem \

--kubelet-client-key=/etc/kubernetes/pki/apiserver-key.pem \

--service-account-key-file=/etc/kubernetes/pki/sa.pub \

--service-account-signing-key-file=/etc/kubernetes/pki/sa.key \

--service-account-issuer=https://kubernetes.default.svc.cluster.local \

--kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname \

--enable-admission-plugins=NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,ResourceQuota \

--authorization-mode=Node,RBAC \

--enable-bootstrap-token-auth=true \

--requestheader-client-ca-file=/etc/kubernetes/pki/front-proxy-ca.pem \

--proxy-client-cert-file=/etc/kubernetes/pki/front-proxy-client.pem \

--proxy-client-key-file=/etc/kubernetes/pki/front-proxy-client-key.pem \

--requestheader-allowed-names=aggregator \

--requestheader-group-headers=X-Remote-Group \

--requestheader-extra-headers-prefix=X-Remote-Extra- \

--requestheader-username-headers=X-Remote-User \

--enable-aggregator-routing=true

Restart=on-failure

RestartSec=10s

LimitNOFILE=65535

[Install]

WantedBy=multi-user.target

EOF

master03節點配置

cat > /usr/lib/systemd/system/kube-apiserver.service << EOF

[Unit]

Description=Kubernetes API Server

Documentation=https://github.com/kubernetes/kubernetes

After=network.target

[Service]

ExecStart=/usr/local/bin/kube-apiserver \

--v=2 \

--logtostderr=true \

--allow-privileged=true \

--bind-address=0.0.0.0 \

--secure-port=6443 \

--insecure-port=0 \

--advertise-address=192.168.0.106 \

--service-cluster-ip-range=10.96.0.0/12,fd00::/108 \

--feature-gates=IPv6DualStack=true \

--service-node-port-range=30000-32767 \

--etcd-servers=https://192.168.0.104:2379,https://192.168.0.105:2379,https://192.168.0.106:2379 \

--etcd-cafile=/etc/etcd/ssl/etcd-ca.pem \

--etcd-certfile=/etc/etcd/ssl/etcd.pem \

--etcd-keyfile=/etc/etcd/ssl/etcd-key.pem \

--client-ca-file=/etc/kubernetes/pki/ca.pem \

--tls-cert-file=/etc/kubernetes/pki/apiserver.pem \

--tls-private-key-file=/etc/kubernetes/pki/apiserver-key.pem \

--kubelet-client-certificate=/etc/kubernetes/pki/apiserver.pem \

--kubelet-client-key=/etc/kubernetes/pki/apiserver-key.pem \

--service-account-key-file=/etc/kubernetes/pki/sa.pub \

--service-account-signing-key-file=/etc/kubernetes/pki/sa.key \

--service-account-issuer=https://kubernetes.default.svc.cluster.local \

--kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname \

--enable-admission-plugins=NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,ResourceQuota \

--authorization-mode=Node,RBAC \

--enable-bootstrap-token-auth=true \

--requestheader-client-ca-file=/etc/kubernetes/pki/front-proxy-ca.pem \

--proxy-client-cert-file=/etc/kubernetes/pki/front-proxy-client.pem \

--proxy-client-key-file=/etc/kubernetes/pki/front-proxy-client-key.pem \

--requestheader-allowed-names=aggregator \

--requestheader-group-headers=X-Remote-Group \

--requestheader-extra-headers-prefix=X-Remote-Extra- \

--requestheader-username-headers=X-Remote-User \

--enable-aggregator-routing=true

Restart=on-failure

RestartSec=10s

LimitNOFILE=65535

[Install]

WantedBy=multi-user.target

EOF

啟動apiserver(所有master節點)

systemctl daemon-reload && systemctl enable --now kube-apiserver

注意檢視狀态是否啟動正常

systemctl status kube-apiserver
Kubernetes-v1.22.10二進制方式安裝(三)

2.8.2 配置kube-controller-manager service

所有master節點配置,且配置相同

cat > /usr/lib/systemd/system/kube-controller-manager.service << EOF

[Unit]

Description=Kubernetes Controller Manager

Documentation=https://github.com/kubernetes/kubernetes

After=network.target

[Service]

ExecStart=/usr/local/bin/kube-controller-manager \

--v=2 \

--logtostderr=true \

--address=127.0.0.1 \

--root-ca-file=/etc/kubernetes/pki/ca.pem \

--cluster-signing-cert-file=/etc/kubernetes/pki/ca.pem \

--cluster-signing-key-file=/etc/kubernetes/pki/ca-key.pem \

--service-account-private-key-file=/etc/kubernetes/pki/sa.key \

--kubeconfig=/etc/kubernetes/controller-manager.kubeconfig \

--leader-elect=true \

--use-service-account-credentials=true \

--node-monitor-grace-period=40s \

--node-monitor-period=5s \

--pod-eviction-timeout=2m0s \

--controllers=*,bootstrapsigner,tokencleaner \

--allocate-node-cidrs=true \

--service-cluster-ip-range=10.96.0.0/12,fd00::/108 \

--cluster-cidr=172.16.0.0/12,fc00::/48 \

--node-cidr-mask-size-ipv4=24 \

--node-cidr-mask-size-ipv6=64 \

--requestheader-client-ca-file=/etc/kubernetes/pki/front-proxy-ca.pem \

--feature-gates=IPv6DualStack=true

Restart=always

RestartSec=10s

[Install]

WantedBy=multi-user.target

EOF

啟動kube-controller-manager,并檢視狀态

systemctl daemon-reload

systemctl enable --now kube-controller-manager

systemctl status kube-controller-manager

Kubernetes-v1.22.10二進制方式安裝(三)

2.8.3 配置kube-scheduler service

所有master節點相同,且配置相同

cat > /usr/lib/systemd/system/kube-scheduler.service << EOF

[Unit]

Description=Kubernetes Scheduler

Documentation=https://github.com/kubernetes/kubernetes

After=network.target

[Service]

ExecStart=/usr/local/bin/kube-scheduler \

--v=2 \

--logtostderr=true \

--address=127.0.0.1 \

--leader-elect=true \

--kubeconfig=/etc/kubernetes/scheduler.kubeconfig

Restart=always

RestartSec=10s

[Install]

WantedBy=multi-user.target

EOF

啟動服務并檢視服務狀态

systemctl daemon-reload

systemctl enable --now kube-scheduler

systemctl status kube-scheduler

Kubernetes-v1.22.10二進制方式安裝(三)

2.9 TLS Bootstrapping配置

2.9.1 在master01上配置

kubectl config set-cluster kubernetes \

--certificate-authority=/etc/kubernetes/pki/ca.pem \

--embed-certs=true --server=https://192.168.0.109:8443 \

--kubeconfig=/etc/kubernetes/bootstrap-kubelet.kubeconfig

kubectl config set-credentials tls-bootstrap-token-user \

--token=c8ad9c.2e4d610cf3e7426e \

--kubeconfig=/etc/kubernetes/bootstrap-kubelet.kubeconfig

kubectl config set-context tls-bootstrap-token-user@kubernetes \

--cluster=kubernetes \

--user=tls-bootstrap-token-user \

--kubeconfig=/etc/kubernetes/bootstrap-kubelet.kubeconfig

kubectl config use-context tls-bootstrap-token-user@kubernetes \

--kubeconfig=/etc/kubernetes/bootstrap-kubelet.kubeconfig

# token的位置在bootstrap.secret.yaml,如果修改的話到這個檔案修改

三台master都要操作

mkdir -p /root/.kube ; cp /etc/kubernetes/admin.kubeconfig /root/.kube/config

2.9.2 檢視叢集狀态,沒問題的話繼續後續操作

kubectl get cs
Kubernetes-v1.22.10二進制方式安裝(三)
kubectl create -f bootstrap.secret.yaml
Kubernetes-v1.22.10二進制方式安裝(三)

2.10 node節點配置

2.10.1 在master01節點上将證書複制到node節點

for NODE in k8s-master02 k8s-master03 k8s-node01 k8s-node02;do scp /opt/cni/bin/* $NODE:/opt/cni/bin/;done

for NODE in k8s-master02 k8s-master03 k8s-node01 k8s-node02; do ssh $NODE mkdir -p /etc/kubernetes/pki; for FILE in pki/ca.pem pki/ca-key.pem pki/front-proxy-ca.pem bootstrap-kubelet.kubeconfig; do scp /etc/kubernetes/$FILE $NODE:/etc/kubernetes/${FILE}; done; done

2.10.2 kubelet配置

所有k8s節點建立相關目錄

mkdir -p /var/lib/kubelet /var/log/kubernetes /etc/systemd/system/kubelet.service.d /etc/kubernetes/manifests/

2.10.3 所有k8s節點配置kubelet service

cat > /usr/lib/systemd/system/kubelet.service << EOF

[Unit]

Description=Kubernetes Kubelet

Documentation=https://github.com/kubernetes/kubernetes

After=network.target

[Service]

ExecStart=/usr/local/bin/kubelet \

--bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.kubeconfig \

--kubeconfig=/etc/kubernetes/kubelet.kubeconfig \

--config=/etc/kubernetes/kubelet-conf.yml \

--network-plugin=cni \

--cni-conf-dir=/etc/cni/net.d \

--cni-bin-dir=/opt/cni/bin \

--runtime-request-timeout=15m \

--cgroup-driver=systemd \

--node-labels=node.kubernetes.io/node= \

--pod-infra-container-image=registry.cn-hangzhou.aliyuncs.com/google_containers/pause-amd64:3.2 \

--feature-gates=IPv6DualStack=true

Restart=always

StartLimitInterval=0

RestartSec=10

[Install]

WantedBy=multi-user.target

EOF

2.10.4 所有k8s節點建立kubelet的配置檔案

cat > /etc/kubernetes/kubelet-conf.yml <<EOF

apiVersion: kubelet.config.k8s.io/v1beta1

kind: KubeletConfiguration

address: 0.0.0.0

port: 10250

readOnlyPort: 10255

authentication:

anonymous:

enabled: false

webhook:

cacheTTL: 2m0s

enabled: true

x509:

clientCAFile: /etc/kubernetes/pki/ca.pem

authorization:

mode: Webhook

webhook:

cacheAuthorizedTTL: 5m0s

cacheUnauthorizedTTL: 30s

cgroupDriver: systemd

cgroupsPerQOS: true

clusterDNS:

- 10.96.0.10

clusterDomain: cluster.local

containerLogMaxFiles: 5

containerLogMaxSize: 10Mi

contentType: application/vnd.kubernetes.protobuf

cpuCFSQuota: true

cpuManagerPolicy: none

cpuManagerReconcilePeriod: 10s

enableControllerAttachDetach: true

enableDebuggingHandlers: true

enforceNodeAllocatable:

- pods

eventBurst: 10

eventRecordQPS: 5

evictionHard:

imagefs.available: 15%

memory.available: 100Mi

nodefs.available: 10%

nodefs.inodesFree: 5%

evictionPressureTransitionPeriod: 5m0s

failSwapOn: true

fileCheckFrequency: 20s

hairpinMode: promiscuous-bridge

healthzBindAddress: 127.0.0.1

healthzPort: 10248

httpCheckFrequency: 20s

imageGCHighThresholdPercent: 85

imageGCLowThresholdPercent: 80

imageMinimumGCAge: 2m0s

iptablesDropBit: 15

iptablesMasqueradeBit: 14

kubeAPIBurst: 10

kubeAPIQPS: 5

makeIPTablesUtilChains: true

maxOpenFiles: 1000000

maxPods: 110

nodeStatusUpdateFrequency: 10s

oomScoreAdj: -999

podPidsLimit: -1

registryBurst: 10

registryPullQPS: 5

resolvConf: /etc/resolv.conf

rotateCertificates: true

runtimeRequestTimeout: 2m0s

serializeImagePulls: true

staticPodPath: /etc/kubernetes/manifests

streamingConnectionIdleTimeout: 4h0m0s

syncFrequency: 1m0s

volumeStatsAggPeriod: 1m0s

EOF

啟動kubelet

systemctl daemon-reload

systemctl start kubelet

Kubernetes-v1.22.10二進制方式安裝(三)

因為還沒有裝網絡插件,是以顯示的是NotReady

2.10.5 kube-proxy配置

此配置隻在master01操作

cd /opt/kubernetes

kubectl -n kube-system create serviceaccount kube-proxy

kubectl create clusterrolebinding system:kube-proxy \

--clusterrole system:node-proxier \

--serviceaccount kube-system:kube-proxy

SECRET=$(kubectl -n kube-system get sa/kube-proxy \

--output=jsonpath='{.secrets[0].name}')

JWT_TOKEN=$(kubectl -n kube-system get secret/$SECRET \

--output=jsonpath='{.data.token}' | base64 -d)

PKI_DIR=/etc/kubernetes/pki

K8S_DIR=/etc/kubernetes

kubectl config set-cluster kubernetes \

--certificate-authority=/etc/kubernetes/pki/ca.pem \

--embed-certs=true \

--server=https://192.168.0.109:8443 \

--kubeconfig=${K8S_DIR}/kube-proxy.kubeconfig

kubectl config set-credentials kubernetes \

--token=${JWT_TOKEN} \

--kubeconfig=/etc/kubernetes/kube-proxy.kubeconfig

kubectl config set-context kubernetes \

--cluster=kubernetes \

--user=kubernetes \

--kubeconfig=/etc/kubernetes/kube-proxy.kubeconfig

kubectl config use-context kubernetes \

--kubeconfig=/etc/kubernetes/kube-proxy.kubeconfig

将kubeconfig發送至其它節點

for NODE in k8s-master02 k8s-master03 k8s-node01 k8s-node02;do scp /etc/kubernetes/kube-proxy.kubeconfig $NODE:/etc/kubernetes/kube-proxy.kubeconfig;done

所有k8s節點添加kube-proxy的配置和service檔案

cat > /usr/lib/systemd/system/kube-proxy.service << EOF

[Unit]

Description=Kubernetes Kube Proxy

Documentation=https://github.com/kubernetes/kubernetes

After=network.target

[Service]

ExecStart=/usr/local/bin/kube-proxy \

--config=/etc/kubernetes/kube-proxy.yaml \

--v=2

Restart=always

RestartSec=10s

[Install]

WantedBy=multi-user.target

EOF

cat > /etc/kubernetes/kube-proxy.yaml << EOF

apiVersion: kubeproxy.config.k8s.io/v1alpha1

bindAddress: 0.0.0.0

clientConnection:

acceptContentTypes: ""

burst: 10

contentType: application/vnd.kubernetes.protobuf

kubeconfig: /etc/kubernetes/kube-proxy.kubeconfig

qps: 5

clusterCIDR: 172.16.0.0/12,fc00::/48

configSyncPeriod: 15m0s

conntrack:

max: null

maxPerCore: 32768

min: 131072

tcpCloseWaitTimeout: 1h0m0s

tcpEstablishedTimeout: 24h0m0s

enableProfiling: false

healthzBindAddress: 0.0.0.0:10256

hostnameOverride: ""

iptables:

masqueradeAll: false

masqueradeBit: 14

minSyncPeriod: 0s

syncPeriod: 30s

ipvs:

masqueradeAll: true

minSyncPeriod: 5s

scheduler: "rr"

syncPeriod: 30s

kind: KubeProxyConfiguration

metricsBindAddress: 127.0.0.1:10249

mode: "ipvs"

nodePortAddresses: null

oomScoreAdj: -999

portRange: ""

udpIdleTimeout: 250ms

EOF

啟動kube-proxy

systemctl daemon-reload

systemctl enable --now kube-proxy

Kubernetes-v1.22.10二進制方式安裝(三)

2.11 安裝Calico

以下步驟隻在master01操作

2.11.1 更改calico網段

cd /opt/kubernetes/calico

sed -i 's#etcd_endpoints: "http://<ETCD_IP>:<ETCD_PORT>"#etcd_endpoints: "https://192.168.0.104:2379,https://192.168.0.105:2379,https://192.168.0.106:2379"#g' calico-etcd.yaml

ETCD_CA=`cat /etc/kubernetes/pki/etcd/etcd-ca.pem | base64 | tr -d '\n'`

ETCD_CERT=`cat /etc/kubernetes/pki/etcd/etcd.pem | base64 | tr -d '\n'`

ETCD_KEY=`cat /etc/kubernetes/pki/etcd/etcd-key.pem | base64 | tr -d '\n'`

sed -i "s@# etcd-key: null@etcd-key: ${ETCD_KEY}@g; s@# etcd-cert: null@etcd-cert: ${ETCD_CERT}@g; s@# etcd-ca: null@etcd-ca: ${ETCD_CA}@g" calico-etcd.yaml

sed -i 's#etcd_ca: ""#etcd_ca: "/calico-secrets/etcd-ca"#g; s#etcd_cert: ""#etcd_cert: "/calico-secrets/etcd-cert"#g; s#etcd_key: ""#etcd_key: "/calico-secrets/etcd-key" #g' calico-etcd.yaml

POD_SUBNET="172.16.0.0/12"

sed -i 's#POD_CIDR#value: '"${POD_SUBNET}"'#g' calico-etcd.yaml

kubectl apply -f calico-etcd.yaml

2.11.2 檢視容器狀态

kubectl get pod -A
Kubernetes-v1.22.10二進制方式安裝(三)

叢集也是ready狀态了

kubectl get node
Kubernetes-v1.22.10二進制方式安裝(三)

2.12 安裝CoreDNS

以下步驟隻在master01操作

2.12.1 修改檔案

cd /opt/kubernetes/coredns

cat coredns.yaml | grep clusterIP:

Kubernetes-v1.22.10二進制方式安裝(三)

2.12.2 安裝

kubectl apply -f coredns.yaml
Kubernetes-v1.22.10二進制方式安裝(三)

檢視容器狀态

Kubernetes-v1.22.10二進制方式安裝(三)

2.13 安裝Metrics Server

以下步驟隻在master01操作

2.13.1 安裝

在新版本的kubernetes中系統資源的采集均使用Metrics-server,可以通過Metrics采集點和pod的記憶體、磁盤、CPU和網絡的使用率

cd /opt/kubernetes/metrics-server

kubectl apply -f metrics-server.yaml

Kubernetes-v1.22.10二進制方式安裝(三)

2.13.2 檢視狀态

kubectl get pod -A
Kubernetes-v1.22.10二進制方式安裝(三)
kubectl top node
Kubernetes-v1.22.10二進制方式安裝(三)

2.14 叢集驗證

2.14.1 部署pod資源

cat<<EOF | kubectl apply -f -

apiVersion: v1

kind: Pod

metadata:

name: busybox

namespace: default

spec:

containers:

- name: busybox

image: busybox:1.28

command:

- sleep

- "3600"

imagePullPolicy: IfNotPresent

restartPolicy: Always

EOF

檢視

kubectl get pod

NAME READY STATUS RESTARTS AGE

busybox 1/1 Running 0 17s

Kubernetes-v1.22.10二進制方式安裝(三)

2.14.2 用pod解析預設命名空間中的kubernetes

kubectl get svc
Kubernetes-v1.22.10二進制方式安裝(三)

2.14.3 測試跨命名空間是否可以解析

kubectl exec busybox -n default -- nslookup kube-dns.kube-system
Kubernetes-v1.22.10二進制方式安裝(三)

2.14.4 每個節點都必須要能通路k8s的kubernetes svc 443和kube-dns的service 53

telnet 10.96.0.1 443

telnet 10.96.0.10 53

Kubernetes-v1.22.10二進制方式安裝(三)

2.14.5 pod和pod之間要能ping通

kubectl get po -owide

Kubernetes-v1.22.10二進制方式安裝(三)

kubectl get po -n kube-system -owide

Kubernetes-v1.22.10二進制方式安裝(三)

進入busybox ping其它節點上的pod

kubectl exec -ti busybox -- sh

Kubernetes-v1.22.10二進制方式安裝(三)

可以連通,說明這個pod是可以跨命名空間和跨主機通信的。

2.14.6 修改節點角色

kubectl label node k8s-master01 node-role.kubernetes.io/master=

kubectl label node k8s-master02 node-role.kubernetes.io/master=

kubectl label node k8s-master03 node-role.kubernetes.io/master=

kubectl label node k8s-node01 node-role.kubernetes.io/node=

kubectl label node k8s-node02 node-role.kubernetes.io/node=

kubectl get node

Kubernetes-v1.22.10二進制方式安裝(三)

至此,二進制安裝Kuberbetes-v1.22.10版本第三部分結束。

待續......

繼續閱讀