k8s 集羣(不推薦)

 

參考連接html

https://blog.csdn.net/real_myth/article/details/78719244node

 

服務器IP角色分佈python

Test-01  172.16.119.214  kubernetes nodemysql

Test-02  172.16.119.223  kubernetes nodelinux

Test-03  172.16.119.224  kubernetes nodegit

Test-04  172.16.119.225  kubernetes mastergithub

 

 

Master節點必需組件sql

 

組件名稱docker

做用數據庫

版本號

etcd

非關係型數據庫

v1.9.1

kube-apiserver

核心組件,全部組件均與其通訊,提供Http Restful接口

v1.9.1

kube-controller-manager

集羣內部管理中心,負責各種資源管理,如RC,Pod,命名空間等

v1.9.1

kube-scheduler

調度組件,負責node的調度

 

 

Node節點必需組件

組件名稱

做用

版本號

kubelet

Node節點中核心組件,負責執行Master下發的任務

v1.9.1

kube-proxy

代理,負責kubelet與apiserver網絡。至關於負載均衡,將請求轉到後端pod中

 

 

準備工做

先設置本機hosts,編譯/etc/hosts添加以下內容:

172.16.119.225  test-04

 

修改內核參數

cat <<EOF >  /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward=1
EOF

sysctl --system

 

關閉swap   k8s1.8版本之後,要求關閉swap,不然默認配置下kubelet將沒法啓動。

swapoff -a

#防止開機自動掛載 swap 分區
sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab

 

開啓ipvs

不是必須,只是建議,pod的負載均衡是用kube-proxy來實現的,實現方式有兩種,一種是默認的iptables,一種是ipvs,ipvs比iptable的性能更好而已。
ipvs是啥?爲啥要用ipvs?:https://blog.csdn.net/fanren224/article/details/86548398
後面master的高可用和集羣服務的負載均衡要用到ipvs,因此加載內核的如下模塊

須要開啓的模塊是
ip_vs
ip_vs_rr
ip_vs_wrr
ip_vs_sh
nf_conntrack_ipv4

檢查有沒有開啓
cut -f1 -d " " /proc/modules | grep -e ip_vs -e nf_conntrack_ipv4

沒有的話,使用如下命令加載
modprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- nf_conntrack_ipv4

ipvs還須要ipset,檢查下有沒有。若是沒有,安裝

yum install ipset -y

 

關閉防火牆,禁用selinux

vi /etc/selinux/config
disabled

systemctl disable firewalld
systemctl stop firewalld

 

 

 

軟件安裝

一、Mster節點:

yum install etcd  kubernetes flannel

kubeadm:用於k8s節點管理(好比初始化主節點、集羣中加入子節佔爲、移除節點等)。

kubectl:用於管理k8s的各類資源(好比查看logs、rs、deploy、ds等)。

kubelet:k8s的服務。

 

 

配置/etc/etcd/etcd.conf

ETCD_DATA_DIR="/var/lib/etcd/master.etcd"

ETCD_LISTEN_CLIENT_URLS="http://127.0.0.1:2379,http://172.16.119.225:2379 "

ETCD_NAME="master"

ETCD_ADVERTISE_CLIENT_URLS="http://127.0.0.1:2379,http://172.16.119.225:2379"

 

啓動etcd

systemctl restart etcd  && systemctl enable  etcd 

 

 

檢查etcd的健康指標

etcdctl -C http://172.16.119.225:2379 cluster-health

 

配置etcd中關於flannel的key  也就是分配給docker的網段

etcdctl mk /atomic.io/network/config '{ "Network": "10.254.0.0/16" }'

 

配置 /etc/sysconfig/flanneld

FLANNEL_ETCD_ENDPOINTS="http://172.16.119.225:2379"

FLANNEL_ETCD_PREFIX="/atomic.io/network"

 

啓動flannel

systemctl start flanneld && systemctl enable flanneld

 

配置/etc/kubernetes/apiserver

KUBE_API_ADDRESS="--insecure-bind-address=0.0.0.0"   #此參數爲綁定不安全地址,綁定安全地址參數是  --bind-address=172.16.119.225KUBE_ETCD_SERVERS="--etcd-servers=http://172.16.119.225:2379"

KUBE_SERVICE_ADDRESSES="--service-cluster-ip-range=10.254.0.0/16"

KUBE_ADMISSION_CONTROL="--admission-control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ServiceAccount,ResourceQuota"

KUBE_API_ARGS=""

  

 重啓服務並設置開機自啓動

systemctl restart kube-apiserver  && systemctl enable kube-apiserver
 
systemctl restart kube-controller-manager  &&  systemctl enable kube-controller-manager

systemctl restart kube-scheduler   &&  systemctl enable  kube-scheduler 

 

二、node節點:

一、安裝配置flannel

yum install flannel

配置flannel:/etc/sysconfig/flanneld

FLANNEL_ETCD_ENDPOINTS="http://172.16.119.225:2379"  # 172.16.119.225爲master地址

FLANNEL_ETCD_PREFIX="/atomic.io/network"

 

啓動flannel

systemctl start flanneld && systemctl enable flanneld

 

 

 

二、安裝kubernetes

yum install kubernetes

不一樣於master節點,slave節點上須要運行kubernetes的以下組件:

kubelet

kubernets-proxy

 

配置/etc/kubernetes/config

KUBE_LOGTOSTDERR="--logtostderr=true"

# journal message level, 0 is debug

KUBE_LOG_LEVEL="--v=0"

# Should this cluster be allowed to run privileged docker containers

KUBE_ALLOW_PRIV="--allow-privileged=false"

# How the controller-manager, scheduler, and proxy find the apiserver

KUBE_MASTER="--master=http://172.16.119.225:8080"
#172.16.119.225爲master地址

 

 

配置 /etc/kubernetes/kubelet

# The address for the info server to serve on (set to 0.0.0.0 or "" for all interfaces)
KUBELET_ADDRESS="--address=172.16.119.225"

# The port for the info server to serve on
KUBELET_PORT="--port=10250"

# You may leave this blank to use the actual hostname
KUBELET_HOSTNAME="--hostname-override= 172.16.119.214"  #node的名字,隨意取
# 172.16.119.214爲node地址

# location of the api-server
KUBELET_API_SERVER="--api-servers=http://172.16.119.225:6442"
#172.16.119.225爲master地址

# pod infrastructure container
KUBELET_POD_INFRA_CONTAINER="--pod-infra-container-image=registry.access.redhat.com/rhel7/pod-infrastructure:latest"

# Add your own!
KUBELET_ARGS=""  
 

 

啓動kube服務

systemctl restart kubelet && systemctl enable  kubelet

systemctl restart kube-proxy && systemctl enable kube-proxy

 

至此,k8s集羣的搭建過程就完成一半了

 

驗證集羣狀態

  • 一、查看端點信息:kubectl get endpoints

 

 

  • 二、查看集羣信息:kubectl cluster-info

 

 

  • 三、獲取集羣中的節點狀態: kubectl get nodes

 

認證受權設置

參考連接:https://www.cnblogs.com/lemon-le/p/9970783.html

集羣搭建好後務必設置認證受權,不然等後面配置Kubernetes Api Server時會由於沒有安全配置致使服務器被滲透,參考https://www.jianshu.com/p/e443b3171253

步驟以下:

一、中止原有kubernetes相關服務,包括service,deployments,pods以及運行的全部kubernetes組件

master節點上:

systemctl stop  kube-apiserver
systemctl stop  kube-controller-manager
systemctl stop  kube-schedulerrm -fr /var/lib/kubelet/*

rm -fr /var/lib/kube-proxy/*

node節點上:

systemctl stop kubelet
systemctl stop kube-proxy
rm -fr /var/lib/kubelet/*
rm -fr /var/lib/kube-proxy/*

 二、設置kube-apiserver的ca證書的相關文件和啓動參數

openssl genrsa -out ca.key 2048
openssl req -x509 -new -nodes -key ca.key -subj "/CN=test-04" -days 5000 -out ca.crt
openssl genrsa -out server.key 2048

注意:生成ca.crt時  /CN 值爲master主機名

而後準備master_ssl.conf文件,該文件用於x509 v3版本證書,文件中主要設置master主機 hostname  、ip、 k8s 虛擬賦權名稱和該虛擬服務的ClusterIP地址

內容以下:

[req]
req_extensions = v3_req
distinguished_name = req_distinguished_name 
[req_distinguished_name]
[ v3_req ]
basicConstraints = CA:FALSE
keyUsage = nonRepudiation,digitalSignature,keyEncipherment
subjectAltName = @alt_names

[alt_names]
DNS.1 = kubernetes
DNS.2 = kubernetes.default
DNS.3 = kubernetes.default.svc
DNS.4 = kubernetes.default.svc.cluster.local
DNS.5 = test-04      #服務器的hostname
IP.1 = 172.16.119.225   #master ip
IP.2 = 10.254.0.1      #svc的cluster ip  若是cluster網段是 10.254.0.0/16  此處就寫10.254.0.1 
 

 而後基於master_ssl.conf文件建立server.csr和server.crt文件,在生成server.csr時,-subject參數中 /CN 值爲master主機名

openssl req -new -key server.key -subj "/CN=test-04" -config  master_ssl.conf -out server.csr

openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -days 5000 -extensions v3_req -extfile master_ssl.conf -out server.crt

所有執行完畢會生成6個文件:ca.crt  ca.key  ca.srl  server.crt  server.csr  server.key 將這些文件複製到一個目錄下,如 /var/run/kubernetes/   

 /var/run/kubernetes/  默認只有apiserver.crt 、 apiserver.key 、kubelet.crt和kubelet.key四個文件

 

 

而後在kube-apiserver文件 KUBE_API_ARGS中添加三個啓動參數 --client-ca-file     --tls-cert-file   和  --tls-private-key-file,分別表明CA根證書文件、服務器端證書文件和服務端私鑰文件

 同時能夠更改KUBE_API_ADDRESS     KUBE_API_PORT  KUBE_API_ARGS參數關掉非安全端口8080,設置安全端口爲6442,默認爲6443

 

KUBE_API_ADDRESS="--bind-address=172.16.119.225"
KUBE_API_PORT="--secure-port=0"
# Comma separated list of nodes in the etcd cluster
KUBE_ETCD_SERVERS="--etcd-servers=http://172.16.119.225:2379"

# Address range to use for services
KUBE_SERVICE_ADDRESSES="--service-cluster-ip-range=10.254.0.0/16"

# default admission control policies
KUBE_ADMISSION_CONTROL="--admission-control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ServiceAccount,ResourceQuota"

# Add your own!
KUBE_API_ARGS="--client-ca-file=/var/run/kubernetes/ca.crt   --tls-cert-file=/var/run/kubernetes/server.crt   --tls-private-key-file=/var/run/kubernetes/server.key  --secure-port=6442"

 

最後重啓kube-apiserver服務

systemctl restart kube-apiserver

 

 三、設置kube-controller-manager的客戶端證書、私鑰和啓動參數

openssl genrsa -out cs_client.key 2048
openssl req -new -key cs_client.key -subj "/CN=test-04" -out cs_client.csr
openssl x509 -req -in cs_client.csr -CA /var/run/kubernetes/ca.crt -CAkey /var/run/kubernetes/ca.key -CAcreateserial  -out cs_client.crt -days 5000

此步會生成3個文件:cs_client.key   cs_client.crt  cs_client.csr   把生成的證書複製到/var/run/kubernetes/   而後建立/etc/kubernetes/kubeconfig文件,(kube-controller-manager與kube-scheduler共用),配置客戶端證書等參數,內容以下:

apiVersion: v1
kind: Config
users:
- name: controllermanager
  user:
     client-certificate: /var/run/kubernetes/cs_client.crt
     client-key: /var/run/kubernetes/cs_client.key
clusters:
- name: local
  cluster:
     certificate-authority: /var/run/kubernetes/ca.crt
contexts:
- context:
   cluster: local
   user: controllermanager
  name: my-context
current-context: my-context

 

而後,設置kube-controller-manager服務啓動參數,注意 --master的地址爲https安全服務地址

更改/etc/kubernetes/controller-manager   啓動參數

KUBE_CONTROLLER_MANAGER_ARGS="--master=https://172.16.119.225:6442  --service_account_private_key_file=/var/run/kubernetes/server.key  --root-ca-file=/var/run/kubernetes/ca.crt --kubeconfig=/etc/kubernetes/kubeconfig"

 

更改/etc/kubernetes/config 裏 KUBE_MASTER="--master=http://127.0.0.1:8080"  改爲上面設置的安全地址 KUBE_MASTER="--master=https://172.16.119.225:6442" 

 

重啓kube-controller-manager服務

systemctl restart kube-controller-manager

 

四、設置kube-scheduler參數

kube-scheduler複用上一步kube-controller-manager建立的客戶端證書,只須要修改/etc/kubernetes/scheduler啓動參數便可

KUBE_SCHEDULER_ARGS="--master=https://172.16.119.225:6442  --kubeconfig=/etc/kubernetes/kubeconfig"

重啓kube-scheduler服務

systemctl restart kube-scheduler

 

五、設置每臺node上kubelet的客戶端證書、私鑰和啓動參數

首先複製kube-apiserver的ca.crt和ca.key文件到node上,而後生成kubelet_client.crt證書,生成證書時-CA參數和-CAkey參數使用的是apiserver的ca.crt和ca.key文件;生成kubelet_client.csr是 -subj參數中 /CN 爲本機node ip地址

openssl genrsa -out kubelet_client.key 2048
openssl req -new -key kubelet_client.key -subj "/CN=172.16.119.225" -out kubelet_client.csr
openssl x509 -req -in kubelet_client.csr -CA  ca.crt -CAkey  ca.key -CAcreateserial  -out kubelet_client.crt -days 5000

此步會生成3個文件:kubelet_client.key   kubelet_client.csr   kubelet_client.crt   而後把生成的證書複製到/var/run/kubernetes/目錄下

接下來建立/etc/kubernetes/kube_client_config文件(kubelet和kube-proxy共用),配置客戶端證書等相關參數,內容以下:

apiVersion: v1
kind: Config
users:
- name: kubelet
  user: 
     client-certificate: /var/run/kubernetes/kubelet_client.crt
     client-key: /var/run/kubernetes/kubelet_client.key
clusters:
- name: local
  cluster: 
     certificate-authority: /var/run/kubernetes/ca.crt
contexts:
- context:
   cluster: local
   user: kubelet
  name: my-context
current-context: my-context

 

而後設置kubelet啓動參數

# location of the api-server
KUBELET_API_SERVER="--api-servers=https://172.16.119.225:6442"

# pod infrastructure container
KUBELET_POD_INFRA_CONTAINER="--pod-infra-container-image=registry.access.redhat.com/rhel7/pod-infrastructure:latest"

# Add your own!
KUBELET_ARGS="--kubeconfig=/etc/kubernetes/kube_client_config"

重啓kubelet服務

systemctl restart kubelet

 

六、設置kube-proxy啓動參數

kube-proxy複用上一步建立的客戶端證書,只需配置啓動參數便可

vim /etc/kubernetes/proxy

KUBE_PROXY_ARGS="--master=https://172.16.119.225:6442  --kubeconfig=/etc/kubernetes/kube_client_config"

重啓kube-proxy服務

systemctl restart kube-proxy

 

七、設置kubectl客戶端使用安全方式訪問apiserver

在使用kubectl對kubenetes集羣進行操做時,默認使用非安全端口8080對apiserver進行訪問,也能夠設置設置爲安全訪問apiserver的模式,此模式須要設置3個證書相關的參數  --certificat-authority   --client-certificate  和 --client-key

分別表示用於CA受權證書、客戶端證書和客戶端祕鑰,其中

--certificat-authority   使用爲kube-apiserver生成的ca.crt文件

--client-certificate      使用爲kube-controller-manager生成的cs_client.crt文件

--client-key                使用爲kube-controller-manager生成的cs_client.key文件

同時指定apiserver的URL地址爲HTTPS安全地址,最後輸入須要執行的子命令,便可對apiserver進行安全訪問了:

 

kubectl --server=https://172.16.119.225:6442 --certificate-authority=/var/run/kubernetes/ca.crt --client-certificate=/var/run/kubernetes/cs_client.crt  --client-key=/var/run/kubernetes/cs_client.key get nodes

 

但每次這樣忒麻煩了,因此寫個alias,不知道還有沒有其餘方法

 編輯 ~/.bashrc  

vim ~/.bashrc 增長下面一局而後source ~/.bashrc  便可

 

alias kubectl='kubectl --server=https://172.16.119.225:6442 --certificate-authority=/var/run/kubernetes/ca.crt --client-certificate=/var/run/kubernetes/cs_client.crt  --client-key=/var/run/kubernetes/cs_client.key'

 

 

 DNS服務搭建

https://blog.51cto.com/ylw6006/2067923 

Kubernetes集羣機制經過DNS進行服務名和ip的映射,若是沒有配置dns,能夠經過kubectl get svc 命令查詢集羣ip,

但Cluster-ip是變化的,若是經過一個create命令一次批量創建一堆具備相互依賴關係的Pod或者RC,就須要配置DNS

DNS 有兩種配置方式,在 1.3 以前使用 etcd + kube2sky + skydns 的方式,在 1.3 以後可使用 kubedns + dnsmasq 的方式。

推薦使用kubedns + dnsmasq 的方式,本次也是使用此方式。

先建立目錄,skydns文件都放在/etc/kubernetes/skydns 下

mkdir /etc/kubernetes/skydns

 

一、配置etcd中關於skyDNS的key

 etcdctl mk /skydns/config '{"dns-addr":"10.254.254.254:53","ttl":3600,"domain":"cluster.local."}'

 

二、skynds服務由一個RC和一個Service定義組成,分別由配置文件skydns-rc.yaml和 skydns-svc.yaml定義:

skydns-rc.yaml包含2個容器的定義,須要修改以下幾個參數:

--kube_master_url  爲master所在的物理主機IP和端口

--domain=cluster.local  設置kubernetes集羣中Service所屬的域名,本例爲cluster.local

apiVersion: v1
kind: ReplicationController
metadata:
  name: kube-dns
  namespace: kube-system
  labels:
    k8s-app: kube-dns
    version: v12
    kubernetes.io/cluster-service: "true"
spec:
  replicas: 1
  selector:
    k8s-app: kube-dns
    version: v12
  template:
    metadata:
      labels:
        k8s-app: kube-dns
        version: v12
        kubernetes.io/cluster-service: "true"
    spec:
      containers:
      - name: kube2sky
        image: docker.io/port/kubernetes-kube2sky
        resources:
          limits:
            cpu: 100m
            memory: 50Mi
          requests:
            cpu: 100m
            memory: 50Mi
        args:
        - --kube_master_url=https://172.16.119.225:6442
        - -domain=cluster.local
        - -etcd-server=http://172.16.119.225:2379 
      - name: skydns
        image: docker.io/skynetservices/skydns
        resources:
          limits:
            cpu: 100m
            memory: 50Mi
          requests:
            cpu: 100m
            memory: 50Mi
        args:
        - -machines=http://172.16.119.225:2379
        - -addr=0.0.0.0:53
        - -ns-rotate=false
        - -domain=cluster.local.  # 點 不能少
        ports:
        - containerPort: 53
          name: dns
          protocol: UDP
        - containerPort: 53
          name: dns-tcp
          protocol: TCP
      dnsPolicy: Default

 

 

skydns-svc.yaml

apiVersion: v1
kind: Service
metadata:
  name: kube-dns
  namespace: kube-system
  labels:
    k8s-app: kube-dns
    kubernetes.io/cluster-service: "true"
    kubernetes.io/name: "KubeDNS"
spec:
  selector:
    k8s-app: kube-dns
  clusterIP:  10.254.254.254
  ports:
  - name: dns
    port: 53
    protocol: UDP
  - name: dns-tcp
    port: 53
    protocol: TCP

注意,skydns須要指定一個固定的IP,以後每一個node節點啓動都將使用這個IP,且這個IP必定要是kube-apiserver啓動參數--service-cluster-ip-range範圍內的IP。

 

建立skydns以前須要修改每一個node上kubelet的啓動參數。

三、修改node啓動參數

編譯kubelet文件,添加倆個啓動參數

--cluster-dns  上面配置的10.254.254.254
--cluster-domain 上面配置的cluster.local
KUBELET_ARGS="--kubeconfig=/etc/kubernetes/kube_client_config  --cluster-dns=10.254.254.254 --cluster-domain=cluster.local"

而後重啓kubelet服務

systemctl restart kubelet

 

四、建立skydns的RC和SVC

kubectl create -f skydns/skydns-rc.yaml 
kubectl create -f skydns/skydns-svc.yaml 

 查看RC pod svc,確保容器啓動成功,若是沒有啓動成功,查看緣由是否是鏡像地址更改了,若是鏡像地址改了,能夠登陸http://docker.gaoxiaobang.com查看新的鏡像地址

若是pod沒法啓動,可參考文尾解決辦法

 

至此,在Kubernetes集羣內的虛擬DNS服務已搭建完畢。

 

五、測試效果

部署一個test-dns的Pod進行驗證

apiVersion: v1
kind: Pod
metadata:
  name: test-dns
  namespace: default
spec:
  containers:
  - name: test-dns
    image: busybox
    command:
      - sleep
      - "3600"

啓動test-dns

 

容器啓動成功後,經過下面命令進行測試

kubectl exec -it test-dns  sh

 

 

也能夠新建一個pod,而後用 kubectl exec <container_id> nslookup  驗證

若是某個Service屬於不一樣的命名空間,則進行Service查找時,須要帶上namespace的名字,如:

kubectl exec test-dns  -- nslookup  default.kubernetes

 

 

 安裝Dashboard 

一、下載代碼

git clone https://github.com/Qihoo360/wayne/
其中  目錄下面就是咱們須要部署的 Wayne 的資源清單文件hack/kubernetes

二、咱們這裏將全部服務都部署到 kube-system 命名空間下面,因此將這裏的資源清單中的 namespace 都統一改爲 kube-system

     

grep -rl default wayne/hack/kubernetes/wayne/ | xargs sed -i 's/default/kube-system/'

三、因爲咱們這裏是使用上面集羣中部署的 MySQL 服務,因此這裏須要對 configmap.yaml 文件進行簡單的配置,而 360 文檔上面的 ConfigMap 是不完整的,須要使用源碼裏面的 app.conf 文件來進行建立,因此咱們這裏可使用 --from-file 關鍵字來建立 ConfigMap 對象,首先配置下 wayne/src/backend/conf/app.conf 文件,根據我的須要修改,也能夠不改,使用默認的配置,而後建立ConfigMap 

   

kubectl create configmap infra-wayne --namespace kube-system --from-file=wayne/src/backend/conf/app.conf

四、而後部署另外倆個應用

kubectl create -f wayne/hack/kubernetes/wayne/deployment.yaml 
kubectl create -f wayne/hack/kubernetes/wayne/service.yaml 

五、建立完成後,能夠查看下 Pod 的狀態,若是沒有錯誤信息,就證實部署成功了

kubectl get pods -n kube-system

若是失敗可用  

kubectl logs -n kube-system  -f infra-wayne-312744915-xdb8b  查看錯誤信息

或者

 kubectl describe -n kube-system pods infra-wayne-312744915-xdb8b 

 

六、查看端口

kubectl get svc -n kube-system -l app=infra-wayne

 

而後使用本機IP:30771來訪問 Wayne 

 

 

 

---------------------------------------------

異常解決

 

一、kubectl create -f  mysql.yaml  後pod沒法啓動,用kubectl get pod 發現該pod處於ContainerCreating狀態

使用kubectl  describe pod mysql-wayne-3939478235-x83pm  查看具體信息時發現報錯以下:

 

 解決辦法:

各個node節點上都須要安裝

yum install *rhsm*

docker pull registry.access.redhat.com/rhel7/pod-infrastructure:latest

若是還報錯則進行以下步驟

wget http://mirror.centos.org/centos/7/os/x86_64/Packages/python-rhsm-certificates-1.19.10-1.el7_4.x86_64.rpm

rpm2cpio python-rhsm-certificates-1.19.10-1.el7_4.x86_64.rpm | cpio -iv --to-stdout ./etc/rhsm/ca/redhat-uep.pem | tee /etc/rhsm/ca/redhat-uep.pem

docker pull registry.access.redhat.com/rhel7/pod-infrastructure:latest

而後刪除pod 從新建立

kubectl delete -f mysql.yaml

kubectl create -f mysql.yaml

 

 

二、pod沒法刪除排查

https://www.58jb.com/html/155.html

 

三、etcd簡單操做

 ls 查看

get 獲取key的值

rm 刪除key

更多的參考 etcdctl help

相關文章
相關標籤/搜索