一、准备下载资源
https://download.csdn.net/download/weixin_43205308/89608560
以下,每个k8s节点都要执行
二、载入镜像
解压上面的下载资源的文件夹后,会有图中的两个资源
载入资源
docker load --input flannel-flannel-v0.25.1-amd64.tar.gz
docker load --input flannel-flannel-cni-plugin-v1.4.1-flannel1-amd64.tar.gz
执行成功会有这两个镜像
并且出现下面两个包
将tar镜像压缩包,导入到containerd的k8s.io命名空间中
sudo ctr -n k8s.io images import flannel-flannel-cni-plugin-v1.4.1-flannel1-amd64.tar
sudo ctr -n k8s.io images import flannel-flannel-v0.25.1-amd64.tar
校验是否成功
sudo ctr -n k8s.io i check | grep flannel
修改flannmel.yaml文件
这是修改后的,直接复制就好了
---kind: Namespace
apiVersion: v1
metadata:name: kube-flannel
labels:k8s-app: flannel
pod-security.kubernetes.io/enforce: privileged
---kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:labels:k8s-app: flannel
name: flannel
rules:-apiGroups:-""resources:- pods
verbs:- get
-apiGroups:-""resources:- nodes
verbs:- get
- list
- watch
-apiGroups:-""resources:- nodes/status
verbs:- patch
---kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:labels:k8s-app: flannel
name: flannel
roleRef:apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: flannel
subjects:-kind: ServiceAccount
name: flannel
namespace: kube-flannel
---apiVersion: v1
kind: ServiceAccount
metadata:labels:k8s-app: flannel
name: flannel
namespace: kube-flannel
---kind: ConfigMap
apiVersion: v1
metadata:name: kube-flannel-cfg
namespace: kube-flannel
labels:tier: node
k8s-app: flannel
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",
"EnableNFTables": false,
"Backend": {
"Type": "vxlan"
}
}---apiVersion: apps/v1
kind: DaemonSet
metadata:name: kube-flannel-ds
namespace: kube-flannel
labels:tier: node
app: flannel
k8s-app: flannel
spec:selector:matchLabels:app: flannel
template:metadata:labels:tier: node
app: flannel
spec:affinity:nodeAffinity:requiredDuringSchedulingIgnoredDuringExecution:nodeSelectorTerms:-matchExpressions:-key: kubernetes.io/os
operator: In
values:- linux
hostNetwork:truepriorityClassName: system-node-critical
tolerations:-operator: Exists
effect: NoSchedule
serviceAccountName: flannel
initContainers:-name: install-cni-plugin
image: docker.io/flannel/flannel-cni-plugin:v1.4.1-flannel1
imagePullPolicy: Never
command:- cp
args:--f
- /flannel
- /opt/cni/bin/flannel
volumeMounts:-name: cni-plugin
mountPath: /opt/cni/bin
-name: install-cni
image: docker.io/flannel/flannel:v0.25.1
imagePullPolicy: Never
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: docker.io/flannel/flannel:v0.25.1
imagePullPolicy: Never
command:- /opt/bin/flanneld
args:---ip-masq
---kube-subnet-mgr
resources:requests:cpu:"100m"memory:"50Mi"securityContext:privileged:falsecapabilities:add:["NET_ADMIN","NET_RAW"]env:-name: POD_NAME
valueFrom:fieldRef:fieldPath: metadata.name
-name: POD_NAMESPACE
valueFrom:fieldRef:fieldPath: metadata.namespace
-name: EVENT_QUEUE_DEPTH
value:"5000"volumeMounts:-name: run
mountPath: /run/flannel
-name: flannel-cfg
mountPath: /etc/kube-flannel/
-name: xtables-lock
mountPath: /run/xtables.lock
volumes:-name: run
hostPath:path: /run/flannel
-name: cni-plugin
hostPath:path: /opt/cni/bin
-name: cni
hostPath:path: /etc/cni/net.d
-name: flannel-cfg
configMap:name: kube-flannel-cfg
-name: xtables-lock
hostPath:path: /run/xtables.lock
type: FileOrCreate
截图展示修改后的地方
kubectl apply -f 你的yaml文件
成功
版权归原作者 Long long ago. 所有, 如有侵权,请联系我们删除。