Centos7搭建k8s環(huán)境教程,一次性成功!網(wǎng)友:直接收藏了。。。
點(diǎn)擊上方[全棧開發(fā)者社區(qū)]→右上角[...]→[設(shè)為星標(biāo)?
點(diǎn)擊領(lǐng)取全棧資料:全棧資料
一. 為什么是k8s v1.16.0?
最新版的v1.16.2試過了,一直無法安裝完成,安裝到kubeadm init那一步執(zhí)行后,報(bào)了很多錯(cuò),如:node xxx not found等。centos7都重裝了幾次,還是無法解決。用了一天都沒安裝完,差點(diǎn)放棄。
后來在網(wǎng)上搜到的安裝教程基本都是v1.16.0的,我不太相信是v1.16.2的坑所以先前沒打算降級(jí)到v1.16.0。沒辦法了就試著安裝v1.16.0版本,竟然成功了。記錄在此,避免后來者踩坑。
本篇文章,安裝大步驟如下:
安裝docker-ce 18.09.9(所有機(jī)器)
設(shè)置k8s環(huán)境前置條件(所有機(jī)器)
安裝k8s v1.16.0 master管理節(jié)點(diǎn)
安裝k8s v1.16.0 node工作節(jié)點(diǎn)
安裝flannel(master)
這里有重要的一步,請(qǐng)記住自己master和node之間通信的ip,如我的master的ip為192.168.99.104,node的ip為:192.168.99.105. 請(qǐng)確保使用這兩個(gè)ip在master和node上能互相ping通,這個(gè)master的ip 192.168.99.104接下來配置k8s的時(shí)候需要用到。
我的環(huán)境:
操作系統(tǒng):win10
虛擬機(jī):virtual box
linux發(fā)行版:CentOS7
linux內(nèi)核(使用uname -r查看):3.10.0-957.el7.x86_64
master和node節(jié)點(diǎn)通信的ip(master):192.168.99.104
二. 安裝docker-ce 18.09.9(所有機(jī)器)
所有安裝k8s的機(jī)器都需要安裝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
#?指定安裝這個(gè)版本的docker-ce
yum?install?-y?docker-ce-18.09.9-3.el7
#?啟動(dòng)docker
systemctl?enable?docker?&&?systemctl?start?docker
三. 設(shè)置k8s環(huán)境準(zhǔn)備條件(所有機(jī)器)
安裝k8s的機(jī)器需要2個(gè)CPU和2g內(nèi)存以上,這個(gè)簡(jiǎn)單,在虛擬機(jī)里面配置一下就可以了。然后執(zhí)行以下腳本做一些準(zhǔn)備操作。所有安裝k8s的機(jī)器都需要這一步操作。
#?關(guān)閉防火墻
systemctl?disable?firewalld
systemctl?stop?firewalld
#?關(guān)閉selinux
#?臨時(shí)禁用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é)點(diǎn)
如果還沒安裝docker,請(qǐng)參照本文步驟二安裝docker-ce 18.09.9(所有機(jī)器)安裝。
如果沒設(shè)置k8s環(huán)境準(zhǔn)備條件,請(qǐng)參照本文步驟三設(shè)置k8s環(huán)境準(zhǔn)備條件(所有機(jī)器)執(zhí)行。
以上兩個(gè)步驟檢查完畢之后,繼續(xù)以下步驟。
1. 安裝kubeadm、kubelet、kubectl
由于官方k8s源在google,國(guó)內(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
#?啟動(dòng)kubelet服務(wù)
systemctl?enable?kubelet?&&?systemctl?start?kubelet
2. 初始化k8s
以下這個(gè)命令開始安裝k8s需要用到的docker鏡像,因?yàn)闊o法訪問到國(guó)外網(wǎng)站,所以這條命令使用的是國(guó)內(nèi)的阿里云的源
(registry.aliyuncs.com/google_containers)。
另一個(gè)非常重要的是:這里的--apiserver-advertise-address使用的是master和node間能互相ping通的ip,我這里是192.168.99.104,剛開始在這里被坑了一個(gè)晚上,你請(qǐng)自己修改下ip執(zhí)行。
這條命令執(zhí)行時(shí)會(huì)卡在[preflight] You can also perform this action in beforehand using ''kubeadm config images pull,大概需要2分鐘,請(qǐng)耐心等待。
#?下載管理節(jié)點(diǎn)中用到的6個(gè)docker鏡像,你可以使用docker?images查看到
#?這里需要大概兩分鐘等待,會(huì)卡在[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
上面安裝完后,會(huì)提示你輸入如下命令,復(fù)制粘貼過來,執(zhí)行即可。
#?上面安裝完成后,k8s會(huì)提示你輸入如下命令,執(zhí)行
mkdir?-p?$HOME/.kube
sudo?cp?-i?/etc/kubernetes/admin.conf?$HOME/.kube/config
sudo?chown?$(id?-u):$(id?-g)?$HOME/.kube/config
3. 記住node加入集群的命令
上面kubeadm init執(zhí)行成功后會(huì)返回給你node節(jié)點(diǎn)加入集群的命令,等會(huì)要在node節(jié)點(diǎn)上執(zhí)行,需要保存下來,如果忘記了,可以使用如下命令獲取。
kubeadm?token?create?--print-join-command?
以上,安裝master節(jié)點(diǎn)完畢。可以使用kubectl get nodes查看一下,此時(shí)master處于NotReady狀態(tài),暫時(shí)不用管。
五. 安裝k8s v1.16.0 node工作節(jié)點(diǎn)
如果還沒安裝docker,請(qǐng)參照本文步驟二安裝docker-ce 18.09.9(所有機(jī)器)安裝。
如果沒設(shè)置k8s環(huán)境準(zhǔn)備條件,請(qǐng)參照本文步驟三設(shè)置k8s環(huán)境準(zhǔn)備條件(所有機(jī)器)執(zhí)行。
以上兩個(gè)步驟檢查完畢之后,繼續(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
#?啟動(dòng)kubelet服務(wù)
systemctl?enable?kubelet?&&?systemctl?start?kubelet
2. 加入集群
這里加入集群的命令每個(gè)人都不一樣,可以登錄master節(jié)點(diǎn),使用kubeadm token create --print-join-command 來獲取。獲取后執(zhí)行如下。
#?加入集群,如果這里不知道加入集群的命令,可以登錄master節(jié)點(diǎn),使用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é)點(diǎn)上使用kubectl get nodes命令查看到加入的節(jié)點(diǎn)。
六. 安裝flannel(master機(jī)器)
以上步驟安裝完后,機(jī)器搭建起來了,但狀態(tài)還是NotReady狀態(tài),如下圖,master機(jī)器需要安裝flanneld。
1. 下載官方fannel配置文件
使用wget命令,地址為:
(https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml),這個(gè)地址國(guó)內(nèi)訪問不了,所以我把內(nèi)容復(fù)制下來,為了避免前面文章過長(zhǎng),我把它粘貼到文章末尾第八個(gè)步驟附錄了。
這個(gè)yml配置文件中配置了一個(gè)國(guó)內(nèi)無法訪問的地址(quay.io),我已經(jīng)將其改為國(guó)內(nèi)可以訪問的地址(quay-mirror.qiniu.com)。我們新建一個(gè)kube-flannel.yml文件,復(fù)制粘貼該內(nèi)容即可。
2. 安裝fannel
kubectl?apply?-f?kube-flannel.yml
七. 大功告成
至此,k8s集群搭建完成,如下圖節(jié)點(diǎn)已為Ready狀態(tài),大功告成,完結(jié)撒花。
八. 附錄
這是kube-flannel.yml文件的內(nèi)容,已經(jīng)將無法訪問的地址(quay.io)全部改為國(guó)內(nèi)可以訪問的地址(quay-mirror.qiniu.com)。我們新建一個(gè)kube-flannel.yml文件,復(fù)制粘貼該內(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覺得本文對(duì)你有幫助?請(qǐng)分享給更多人
關(guān)注「全棧開發(fā)者社區(qū)」加星標(biāo),提升全棧技能
本公眾號(hào)會(huì)不定期給大家發(fā)福利,包括送書、學(xué)習(xí)資源等,敬請(qǐng)期待吧!
如果感覺推送內(nèi)容不錯(cuò),不妨右下角點(diǎn)個(gè)在看轉(zhuǎn)發(fā)朋友圈或收藏,感謝支持。
好文章,留言、點(diǎn)贊、在看和分享一條龍吧??

