--- apiVersion: v1 kind: ServiceAccount metadata: name: cnimultus namespace: kube-system --- kind: ConfigMap apiVersion: v1 metadata: name: cnimultus-cfg namespace: kube-system labels: tier: node app: cnimultus data: cni-conf.json: | { "name": "multus", "type": "multus", "delegates": [ { "name": "weave", "type": "weave-net", "hairpinMode": true, "masterplugin": true }, { "name": "mynet", "type": "bridge", "bridge": "cni0", "isGateway": true, "ipMasq": true, "ipam": { "type": "host-local", "subnet": "10.22.0.0/16", "routes": [ { "dst": "0.0.0.0/0" } ] } } ] } --- apiVersion: extensions/v1beta1 kind: DaemonSet metadata: name: cnimultus-ds namespace: kube-system labels: tier: node app: cnimultus spec: template: metadata: labels: tier: node app: cnimultus spec: hostNetwork: true nodeSelector: beta.kubernetes.io/arch: amd64 tolerations: - key: node-role.kubernetes.io/master operator: Exists effect: NoSchedule serviceAccountName: cnimultus containers: - name: run-cni image: registry:5000/multus-cni:latest command: ['sh', '-c', 'cp /multus/cni-conf.json /etc/cni/net.d/05-multus.conf; cp /root/multus /opt/cni/bin; while true; do sleep 10000; done' ] volumeMounts: - name: cni-bin mountPath: /opt/cni/bin - name: etc-cni mountPath: /etc/cni/net.d - name: cnimultus-cfg mountPath: /multus/ volumes: - name: cni-bin hostPath: path: /opt/cni/bin - name: etc-cni hostPath: path: /etc/cni/net.d - name: cnimultus-cfg configMap: name: cnimultus-cfg