--- 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": "flannel-networks", "type": "multus", "delegates": [ { "type": "flannel", "name": "flannel.2", "subnetFile": "/run/flannel/subnet2.env", "dataDir": "/var/lib/cni/flannel/2", "delegate": { "bridge": "kbr1", "isDefaultGateway": false } }, { "type": "flannel", "name": "flannel.1", "subnetFile": "/run/flannel/subnet.env", "dataDir": "/var/lib/cni/flannel", "masterplugin": true, "delegate": { "bridge": "kbr0", "isDefaultGateway": true } } ] } net-conf.json: | { "Network": "10.1.0.0/16", "Backend": { "Type": "udp", "Port": 8285 } } --- kind: ConfigMap apiVersion: v1 metadata: name: kube-flannel2-cfg namespace: kube-system labels: tier: node app: flannel2 data: net-conf.json: | { "Network": "10.3.0.0/16", "Backend": { "Type": "udp", "Port": 8286 } } --- apiVersion: extensions/v1beta1 kind: DaemonSet metadata: name: kube-flannel-ds namespace: kube-system labels: tier: node app: flannel spec: template: metadata: labels: tier: node app: flannel spec: hostNetwork: true nodeSelector: beta.kubernetes.io/arch: arm64 tolerations: - key: node-role.kubernetes.io/master operator: Exists effect: NoSchedule serviceAccountName: flannel containers: - name: kube-flannel image: quay.io/coreos/flannel:v0.8.0-arm64 command: [ "/opt/bin/flanneld", "--ip-masq", "--kube-subnet-mgr" ] securityContext: privileged: true env: - name: POD_NAME valueFrom: fieldRef: fieldPath: metadata.name - name: POD_NAMESPACE valueFrom: fieldRef: fieldPath: metadata.namespace volumeMounts: - name: run mountPath: /run - name: flannel-cfg mountPath: /etc/kube-flannel/ - name: kube-flannel2 image: quay.io/coreos/flannel:v0.8.0-arm64 command: [ "/opt/bin/flanneld", "--ip-masq", "--kube-subnet-mgr", "--subnet-file=/run/flannel/subnet2.env" ] securityContext: privileged: true env: - name: POD_NAME valueFrom: fieldRef: fieldPath: metadata.name - name: POD_NAMESPACE valueFrom: fieldRef: fieldPath: metadata.namespace volumeMounts: - name: run mountPath: /run - name: flannel-cfg2 mountPath: /etc/kube-flannel/ - name: install-cni image: quay.io/coreos/flannel:v0.8.0-arm64 command: [ "/bin/sh", "-c", "set -e -x; cp -f /etc/kube-flannel/cni-conf.json /etc/cni/net.d/10-2flannels.conf; while true; do sleep 3600; done" ] volumeMounts: - name: cni mountPath: /etc/cni/net.d - name: flannel-cfg mountPath: /etc/kube-flannel/ volumes: - name: run hostPath: path: /run - name: cni hostPath: path: /etc/cni/net.d - name: flannel-cfg configMap: name: kube-flannel-cfg - name: flannel-cfg2 configMap: name: kube-flannel2-cfg