Centos7 搭建 k8s 環(huán)境教程,一次性成功
作者:快給我飯吃
https://www.jianshu.com/p/25c01cae990c
一. 為什么是k8s v1.16.0?
最新版的v1.16.2試過了,一直無法安裝完成,安裝到kubeadm init那一步執(zhí)行后,報了很多錯,如:node xxx not found等。centos7都重裝了幾次,還是無法解決。用了一天都沒安裝完,差點放棄。
后來在網(wǎng)上搜到的安裝教程基本都是v1.16.0的,我不太相信是v1.16.2的坑所以先前沒打算降級到v1.16.0。沒辦法了就試著安裝v1.16.0版本,竟然成功了。記錄在此,避免后來者踩坑。
本篇文章,安裝大步驟如下:
安裝docker-ce 18.09.9(所有機器)
設(shè)置k8s環(huán)境前置條件(所有機器)
安裝k8s v1.16.0 master管理節(jié)點
安裝k8s v1.16.0 node工作節(jié)點
安裝flannel(master)
這里有重要的一步,請記住自己master和node之間通信的ip,如我的master的ip為192.168.99.104,node的ip為:192.168.99.105. 請確保使用這兩個ip在master和node上能互相ping通,這個master的ip 192.168.99.104接下來配置k8s的時候需要用到。
我的環(huán)境:
操作系統(tǒng):win10
虛擬機:virtual box
linux發(fā)行版:CentOS7
linux內(nèi)核(使用uname -r查看):3.10.0-957.el7.x86_64
master和node節(jié)點通信的ip(master):192.168.99.104
二. 安裝docker-ce 18.09.9(所有機器)
所有安裝k8s的機器都需要安裝docker,命令如下:
#?安裝docker所需的工具
yum install -y yum-utils device-mapper-persistent-data lvm2
#?配置阿里云的docker源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
#?指定安裝這個版本的docker-ce
yum install -y docker-ce-18.09.9-3.el7
#?啟動docker
systemctl enable docker && systemctl start docker三. 設(shè)置k8s環(huán)境準備條件(所有機器)
安裝k8s的機器需要2個CPU和2g內(nèi)存以上,這個簡單,在虛擬機里面配置一下就可以了。然后執(zhí)行以下腳本做一些準備操作。所有安裝k8s的機器都需要這一步操作。
#?關(guān)閉防火墻
systemctl disable firewalld
systemctl stop firewalld
#?關(guān)閉selinux
#?臨時禁用selinux
setenforce 0
#?永久關(guān)閉 修改/etc/sysconfig/selinux文件設(shè)置
sed -i 's/SELINUX=permissive/SELINUX=disabled/' /etc/sysconfig/selinux
sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
#?禁用交換分區(qū)
swapoff -a
#?永久禁用,打開/etc/fstab注釋掉swap那一行。
sed -i 's/.*swap.*/#&/' /etc/fstab
#?修改內(nèi)核參數(shù)
cat < /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl --system 四. 安裝k8s v1.16.0 master管理節(jié)點
如果還沒安裝docker,請參照本文步驟二安裝docker-ce 18.09.9(所有機器)安裝。
如果沒設(shè)置k8s環(huán)境準備條件,請參照本文步驟三設(shè)置k8s環(huán)境準備條件(所有機器)執(zhí)行。
以上兩個步驟檢查完畢之后,繼續(xù)以下步驟。
1. 安裝kubeadm、kubelet、kubectl
由于官方k8s源在google,國內(nèi)無法訪問,這里使用阿里云yum源
# 執(zhí)行配置k8s阿里云源
cat?< /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
# 安裝kubeadm、kubectl、kubelet
yum install -y?kubectl-1.16.0-0?kubeadm-1.16.0-0?kubelet-1.16.0-0
# 啟動kubelet服務(wù)
systemctl enable kubelet && systemctl start kubelet 2. 初始化k8s
以下這個命令開始安裝k8s需要用到的docker鏡像,因為無法訪問到國外網(wǎng)站,所以這條命令使用的是國內(nèi)的阿里云的源(registry.aliyuncs.com/google_containers)。
另一個非常重要的是:這里的--apiserver-advertise-address使用的是master和node間能互相ping通的ip,我這里是192.168.99.104,剛開始在這里被坑了一個晚上,你請自己修改下ip執(zhí)行。
這條命令執(zhí)行時會卡在[preflight] You can also perform this action in beforehand using ''kubeadm config images pull,大概需要2分鐘,請耐心等待。
#?下載管理節(jié)點中用到的6個docker鏡像,你可以使用docker images查看到
#?這里需要大概兩分鐘等待,會卡在[preflight] You can also perform this action in?beforehand using ''kubeadm config images pull
kubeadm init --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.16.0 --apiserver-advertise-address 192.168.99.104 --pod-network-cidr=10.244.0.0/16 --token-ttl 0上面安裝完后,會提示你輸入如下命令,復制粘貼過來,執(zhí)行即可。
# 上面安裝完成后,k8s會提示你輸入如下命令,執(zhí)行
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config3. 記住node加入集群的命令
上面kubeadm init執(zhí)行成功后會返回給你node節(jié)點加入集群的命令,等會要在node節(jié)點上執(zhí)行,需要保存下來,如果忘記了,可以使用如下命令獲取。
kubeadm token create --print-join-command以上,安裝master節(jié)點完畢。可以使用kubectl get nodes查看一下,此時master處于NotReady狀態(tài),暫時不用管。
五. 安裝k8s v1.16.0 node工作節(jié)點
如果還沒安裝docker,請參照本文步驟二安裝docker-ce 18.09.9(所有機器)安裝。
如果沒設(shè)置k8s環(huán)境準備條件,請參照本文步驟三設(shè)置k8s環(huán)境準備條件(所有機器)執(zhí)行。
以上兩個步驟檢查完畢之后,繼續(xù)以下步驟。
1. 安裝kubeadm、kubelet
# 執(zhí)行配置k8s阿里云源
cat?< /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
# 安裝kubeadm、kubectl、kubelet
yum install -y??kubeadm-1.16.0-0?kubelet-1.16.0-0
# 啟動kubelet服務(wù)
systemctl enable kubelet && systemctl start kubelet 2. 加入集群
這里加入集群的命令每個人都不一樣,可以登錄master節(jié)點,使用kubeadm token create --print-join-command 來獲取。獲取后執(zhí)行如下。
# 加入集群,如果這里不知道加入集群的命令,可以登錄master節(jié)點,使用kubeadm token create --print-join-command?來獲取
kubeadm join?192.168.99.104:6443?--token ncfrid.7ap0xiseuf97gikl \
????--discovery-token-ca-cert-hash sha256:47783e9851a1a517647f1986225f104e81dbfd8fb256ae55ef6d68ce9334c6a2加入成功后,可以在master節(jié)點上使用kubectl get nodes命令查看到加入的節(jié)點。
六. 安裝flannel(master機器)
以上步驟安裝完后,機器搭建起來了,但狀態(tài)還是NotReady狀態(tài),如下圖,master機器需要安裝flanneld。
1. 下載官方fannel配置文件
使用wget命令,地址為:(https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml),這個地址國內(nèi)訪問不了,所以我把內(nèi)容復制下來,為了避免前面文章過長,我把它粘貼到文章末尾第八個步驟附錄了。
這個yml配置文件中配置了一個國內(nèi)無法訪問的地址(quay.io),我已經(jīng)將其改為國內(nèi)可以訪問的地址(quay-mirror.qiniu.com)。我們新建一個kube-flannel.yml文件,復制粘貼該內(nèi)容即可。
2. 安裝fannel
kubectl?apply?-f?kube-flannel.yml七. 大功告成
至此,k8s集群搭建完成,如下圖節(jié)點已為Ready狀態(tài),大功告成,完結(jié)撒花。
八. 附錄
這是kube-flannel.yml文件的內(nèi)容,已經(jīng)將無法訪問的地址(quay.io)全部改為國內(nèi)可以訪問的地址(quay-mirror.qiniu.com)。我們新建一個kube-flannel.yml文件,復制粘貼該內(nèi)容即可。
---
apiVersion: policy/v1beta1
kind: PodSecurityPolicy
metadata:
??name: psp.flannel.unprivileged
??annotations:
????seccomp.security.alpha.kubernetes.io/allowedProfileNames:?docker/default
????seccomp.security.alpha.kubernetes.io/defaultProfileName: docker/default
????apparmor.security.beta.kubernetes.io/allowedProfileNames:?runtime/default
????apparmor.security.beta.kubernetes.io/defaultProfileName: runtime/default
spec:
??privileged: false
??volumes:
????- configMap
????- secret
????- emptyDir
????- hostPath
??allowedHostPaths:
????- pathPrefix: "/etc/cni/net.d"
????- pathPrefix: "/etc/kube-flannel"
????- pathPrefix: "/run/flannel"
??readOnlyRootFilesystem: false
??# Users and?groups
??runAsUser:
????rule: RunAsAny
??supplementalGroups:
????rule: RunAsAny
??fsGroup:
????rule: RunAsAny
??# Privilege Escalation
??allowPrivilegeEscalation: false
??defaultAllowPrivilegeEscalation: false
??# Capabilities
??allowedCapabilities:?['NET_ADMIN']
??defaultAddCapabilities:?[]
??requiredDropCapabilities:?[]
??# Host namespaces
??hostPID: false
??hostIPC: false
??hostNetwork: true
??hostPorts:
??- min: 0
????max: 65535
??# SELinux
??seLinux:
????# SELinux is?unused in CaaSP
????rule: 'RunAsAny'
---
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
??name: flannel
rules:
??- apiGroups:?['extensions']
????resources:?['podsecuritypolicies']
????verbs:?['use']
????resourceNames:?['psp.flannel.unprivileged']
??- apiGroups:
??????- ""
????resources:
??????- pods
????verbs:
??????- get
??- apiGroups:
??????- ""
????resources:
??????- nodes
????verbs:
??????- list
??????- watch
??- apiGroups:
??????- ""
????resources:
??????- nodes/status
????verbs:
??????- patch
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
??name: flannel
roleRef:
??apiGroup: rbac.authorization.k8s.io
??kind: ClusterRole
??name: flannel
subjects:
- kind: ServiceAccount
??name: flannel
??namespace: kube-system
---
apiVersion: v1
kind: ServiceAccount
metadata:
??name: flannel
??namespace: kube-system
---
kind: ConfigMap
apiVersion: v1
metadata:
??name: kube-flannel-cfg
??namespace: kube-system
??labels:
????tier: node
????app: flannel
data:
??cni-conf.json: |
????{
??????"name": "cbr0",
??????"cniVersion": "0.3.1",
??????"plugins": [
????????{
??????????"type": "flannel",
??????????"delegate": {
????????????"hairpinMode": true,
????????????"isDefaultGateway": true
??????????}
????????},
????????{
??????????"type": "portmap",
??????????"capabilities": {
????????????"portMappings": true
??????????}
????????}
??????]
????}
??net-conf.json: |
????{
??????"Network": "10.244.0.0/16",
??????"Backend": {
????????"Type": "vxlan"
??????}
????}
---
apiVersion: apps/v1
kind: DaemonSet
metadata:
??name: kube-flannel-ds-amd64
??namespace: kube-system
??labels:
????tier: node
????app: flannel
spec:
??selector:
????matchLabels:
??????app: flannel
??template:
????metadata:
??????labels:
????????tier: node
????????app: flannel
????spec:
??????affinity:
????????nodeAffinity:
??????????requiredDuringSchedulingIgnoredDuringExecution:
????????????nodeSelectorTerms:
??????????????- matchExpressions:
??????????????????- key: beta.kubernetes.io/os
????????????????????operator: In
????????????????????values:
??????????????????????- linux
??????????????????- key: beta.kubernetes.io/arch
????????????????????operator: In
????????????????????values:
??????????????????????- amd64
??????hostNetwork: true
??????tolerations:
??????- operator: Exists
????????effect:?NoSchedule
??????serviceAccountName: flannel
??????initContainers:
??????- name: install-cni
????????image: quay-mirror.qiniu.com/coreos/flannel:v0.11.0-amd64
????????command:
????????- cp
????????args:
????????- -f
????????- /etc/kube-flannel/cni-conf.json
????????- /etc/cni/net.d/10-flannel.conflist
????????volumeMounts:
????????- name: cni
??????????mountPath: /etc/cni/net.d
????????- name: flannel-cfg
??????????mountPath: /etc/kube-flannel/
??????containers:
??????- name: kube-flannel
????????image: quay-mirror.qiniu.com/coreos/flannel:v0.11.0-amd64
????????command:
????????- /opt/bin/flanneld
????????args:
????????- --ip-masq
????????- --kube-subnet-mgr
????????resources:
??????????requests:
????????????cpu: "100m"
????????????memory: "50Mi"
??????????limits:
????????????cpu: "100m"
????????????memory: "50Mi"
????????securityContext:
??????????privileged: false
??????????capabilities:
????????????add: ["NET_ADMIN"]
????????env:
????????- name: POD_NAME
??????????valueFrom:
????????????fieldRef:
??????????????fieldPath: metadata.name
????????- name: POD_NAMESPACE
??????????valueFrom:
????????????fieldRef:
??????????????fieldPath: metadata.namespace
????????volumeMounts:
????????- name: run
??????????mountPath: /run/flannel
????????- name: flannel-cfg
??????????mountPath: /etc/kube-flannel/
??????volumes:
????????- name: run
??????????hostPath:
????????????path: /run/flannel
????????- name: cni
??????????hostPath:
????????????path: /etc/cni/net.d
????????- name: flannel-cfg
??????????configMap:
????????????name: kube-flannel-cfg
---
apiVersion: apps/v1
kind: DaemonSet
metadata:
??name: kube-flannel-ds-arm64
??namespace: kube-system
??labels:
????tier: node
????app: flannel
spec:
??selector:
????matchLabels:
??????app: flannel
??template:
????metadata:
??????labels:
????????tier: node
????????app: flannel
????spec:
??????affinity:
????????nodeAffinity:
??????????requiredDuringSchedulingIgnoredDuringExecution:
????????????nodeSelectorTerms:
??????????????- matchExpressions:
??????????????????- key: beta.kubernetes.io/os
????????????????????operator: In
????????????????????values:
??????????????????????- linux
??????????????????- key: beta.kubernetes.io/arch
????????????????????operator: In
????????????????????values:
??????????????????????- arm64
??????hostNetwork: true
??????tolerations:
??????- operator: Exists
????????effect:?NoSchedule
??????serviceAccountName: flannel
??????initContainers:
??????- name: install-cni
????????image: quay-mirror.qiniu.com/coreos/flannel:v0.11.0-arm64
????????command:
????????- cp
????????args:
????????- -f
????????- /etc/kube-flannel/cni-conf.json
????????- /etc/cni/net.d/10-flannel.conflist
????????volumeMounts:
????????- name: cni
??????????mountPath: /etc/cni/net.d
????????- name: flannel-cfg
??????????mountPath: /etc/kube-flannel/
??????containers:
??????- name: kube-flannel
????????image: quay-mirror.qiniu.com/coreos/flannel:v0.11.0-arm64
????????command:
????????- /opt/bin/flanneld
????????args:
????????- --ip-masq
????????- --kube-subnet-mgr
????????resources:
??????????requests:
????????????cpu: "100m"
????????????memory: "50Mi"
??????????limits:
????????????cpu: "100m"
????????????memory: "50Mi"
????????securityContext:
??????????privileged: false
??????????capabilities:
?????????????add: ["NET_ADMIN"]
????????env:
????????- name: POD_NAME
??????????valueFrom:
????????????fieldRef:
??????????????fieldPath: metadata.name
????????- name: POD_NAMESPACE
??????????valueFrom:
????????????fieldRef:
??????????????fieldPath: metadata.namespace
????????volumeMounts:
????????- name: run
??????????mountPath: /run/flannel
????????- name: flannel-cfg
??????????mountPath: /etc/kube-flannel/
??????volumes:
????????- name: run
??????????hostPath:
????????????path: /run/flannel
????????- name: cni
??????????hostPath:
????????????path: /etc/cni/net.d
????????- name: flannel-cfg
??????????configMap:
????????????name: kube-flannel-cfg
---
apiVersion: apps/v1
kind: DaemonSet
metadata:
??name: kube-flannel-ds-arm
??namespace: kube-system
??labels:
????tier: node
????app: flannel
spec:
??selector:
????matchLabels:
??????app: flannel
??template:
????metadata:
??????labels:
????????tier: node
????????app: flannel
????spec:
??????affinity:
????????nodeAffinity:
??????????requiredDuringSchedulingIgnoredDuringExecution:
????????????nodeSelectorTerms:
??????????????- matchExpressions:
??????????????????- key: beta.kubernetes.io/os
????????????????????operator: In
????????????????????values:
??????????????????????- linux
??????????????????- key: beta.kubernetes.io/arch
????????????????????operator: In
????????????????????values:
??????????????????????- arm
??????hostNetwork: true
??????tolerations:
??????- operator: Exists
????????effect:?NoSchedule
??????serviceAccountName: flannel
??????initContainers:
??????- name: install-cni
????????image: quay-mirror.qiniu.com/coreos/flannel:v0.11.0-arm
????????command:
????????- cp
????????args:
????????- -f
????????- /etc/kube-flannel/cni-conf.json
????????- /etc/cni/net.d/10-flannel.conflist
????????volumeMounts:
????????- name: cni
??????????mountPath: /etc/cni/net.d
????????- name: flannel-cfg
??????????mountPath: /etc/kube-flannel/
??????containers:
??????- name: kube-flannel
????????image: quay-mirror.qiniu.com/coreos/flannel:v0.11.0-arm
????????command:
????????- /opt/bin/flanneld
????????args:
????????- --ip-masq
????????- --kube-subnet-mgr
????????resources:
??????????requests:
????????????cpu: "100m"
????????????memory: "50Mi"
??????????limits:
????????????cpu: "100m"
????????????memory: "50Mi"
????????securityContext:
??????????privileged: false
??????????capabilities:
?????????????add: ["NET_ADMIN"]
????????env:
????????- name: POD_NAME
??????????valueFrom:
????????????fieldRef:
??????????????fieldPath: metadata.name
????????- name: POD_NAMESPACE
??????????valueFrom:
????????????fieldRef:
??????????????fieldPath: metadata.namespace
????????volumeMounts:
????????- name: run
??????????mountPath: /run/flannel
????????- name: flannel-cfg
??????????mountPath: /etc/kube-flannel/
??????volumes:
????????- name: run
??????????hostPath:
????????????path: /run/flannel
????????- name: cni
??????????hostPath:
????????????path: /etc/cni/net.d
????????- name: flannel-cfg
??????????configMap:
????????????name: kube-flannel-cfg
---
apiVersion: apps/v1
kind: DaemonSet
metadata:
??name: kube-flannel-ds-ppc64le
??namespace: kube-system
??labels:
????tier: node
????app: flannel
spec:
??selector:
????matchLabels:
??????app: flannel
??template:
????metadata:
??????labels:
????????tier: node
????????app: flannel
????spec:
??????affinity:
????????nodeAffinity:
??????????requiredDuringSchedulingIgnoredDuringExecution:
????????????nodeSelectorTerms:
??????????????- matchExpressions:
??????????????????- key: beta.kubernetes.io/os
????????????????????operator: In
????????????????????values:
??????????????????????- linux
??????????????????- key: beta.kubernetes.io/arch
????????????????????operator: In
????????????????????values:
??????????????????????- ppc64le
??????hostNetwork: true
??????tolerations:
??????- operator: Exists
????????effect:?NoSchedule
??????serviceAccountName: flannel
??????initContainers:
??????- name: install-cni
????????image: quay-mirror.qiniu.com/coreos/flannel:v0.11.0-ppc64le
????????command:
????????- cp
????????args:
????????- -f
????????- /etc/kube-flannel/cni-conf.json
????????- /etc/cni/net.d/10-flannel.conflist
????????volumeMounts:
????????- name: cni
??????????mountPath: /etc/cni/net.d
????????- name: flannel-cfg
??????????mountPath: /etc/kube-flannel/
??????containers:
??????- name: kube-flannel
????????image: quay-mirror.qiniu.com/coreos/flannel:v0.11.0-ppc64le
????????command:
????????- /opt/bin/flanneld
????????args:
????????- --ip-masq
????????- --kube-subnet-mgr
????????resources:
??????????requests:
????????????cpu: "100m"
????????????memory: "50Mi"
??????????limits:
????????????cpu: "100m"
????????????memory: "50Mi"
????????securityContext:
??????????privileged: false
??????????capabilities:
?????????????add: ["NET_ADMIN"]
????????env:
????????- name: POD_NAME
??????????valueFrom:
????????????fieldRef:
??????????????fieldPath: metadata.name
????????- name: POD_NAMESPACE
??????????valueFrom:
????????????fieldRef:
??????????????fieldPath: metadata.namespace
????????volumeMounts:
????????- name: run
??????????mountPath: /run/flannel
????????- name: flannel-cfg
??????????mountPath: /etc/kube-flannel/
??????volumes:
????????- name: run
??????????hostPath:
????????????path: /run/flannel
????????- name: cni
??????????hostPath:
????????????path: /etc/cni/net.d
????????- name: flannel-cfg
??????????configMap:
????????????name: kube-flannel-cfg
---
apiVersion: apps/v1
kind: DaemonSet
metadata:
??name: kube-flannel-ds-s390x
??namespace: kube-system
??labels:
????tier: node
????app: flannel
spec:
??selector:
????matchLabels:
??????app: flannel
??template:
????metadata:
??????labels:
????????tier: node
????????app: flannel
????spec:
??????affinity:
????????nodeAffinity:
??????????requiredDuringSchedulingIgnoredDuringExecution:
????????????nodeSelectorTerms:
??????????????- matchExpressions:
??????????????????- key: beta.kubernetes.io/os
????????????????????operator: In
????????????????????values:
??????????????????????- linux
??????????????????- key: beta.kubernetes.io/arch
????????????????????operator: In
????????????????????values:
??????????????????????- s390x
??????hostNetwork: true
??????tolerations:
??????- operator: Exists
????????effect:?NoSchedule
??????serviceAccountName: flannel
??????initContainers:
??????- name: install-cni
????????image: quay-mirror.qiniu.com/coreos/flannel:v0.11.0-s390x
????????command:
????????- cp
????????args:
????????- -f
????????- /etc/kube-flannel/cni-conf.json
????????- /etc/cni/net.d/10-flannel.conflist
????????volumeMounts:
????????- name: cni
??????????mountPath: /etc/cni/net.d
????????- name: flannel-cfg
??????????mountPath: /etc/kube-flannel/
??????containers:
??????- name: kube-flannel
????????image: quay-mirror.qiniu.com/coreos/flannel:v0.11.0-s390x
????????command:
????????- /opt/bin/flanneld
????????args:
????????- --ip-masq
????????- --kube-subnet-mgr
????????resources:
??????????requests:
????????????cpu: "100m"
????????????memory: "50Mi"
??????????limits:
????????????cpu: "100m"
????????????memory: "50Mi"
????????securityContext:
??????????privileged: false
??????????capabilities:
?????????????add: ["NET_ADMIN"]
????????env:
????????- name: POD_NAME
??????????valueFrom:
????????????fieldRef:
??????????????fieldPath: metadata.name
????????- name: POD_NAMESPACE
??????????valueFrom:
????????????fieldRef:
??????????????fieldPath: metadata.namespace
????????volumeMounts:
????????- name: run
??????????mountPath: /run/flannel
????????- name: flannel-cfg
??????????mountPath: /etc/kube-flannel/
??????volumes:
????????- name: run
??????????hostPath:
????????????path: /run/flannel
????????- name: cni
??????????hostPath:
????????????path: /etc/cni/net.d
????????- name: flannel-cfg
??????????configMap:
????????????name: kube-flannel-cfg推薦閱讀 海量交易訂單查詢沒做“重試”,一哥們“喜提”P3故障! 聰明的項目經(jīng)理,都會利用周報讓老板重視你! MySQL百萬數(shù)據(jù),你如何用分頁來查詢數(shù)據(jù) 你的Redis為什么變慢了?
