NetworkAttachmentDefinition
하나의 config 사용하기
apiVersion: k8s.cni.cncf.io/v1
kind: NetworkAttachmentDefinition
metadata:
name: macvlan-conf-1
spec:
config: |
{
"cniVersion": "0.3.0",
"type": "macvlan",
"master": "eth1",
"mode": "bridge",
"ipam": {
"type": "host-local",
"ranges": [
[
{
"subnet": "10.10.0.0/16",
"rangeStart": "10.10.1.20",
"rangeEnd": "10.10.3.50",
"gateway": "10.10.0.254"
}
]
]
}
}
Node별 config 사용하기
apiVersion: k8s.cni.cncf.io/v1
kind: NetworkAttachmentDefinition
metadata:
name: macvlan-conf-2
/etc/cni/multus/net.d/macvlan2
{
"cniVersion": "0.3.0",
"type": "macvlan",
"name": "macvlan-conf-2",
"master": "eth1",
"mode": "bridge",
"ipam": {
"type": "host-local",
"ranges": [
[
{
"subnet": "11.10.0.0/16",
"rangeStart": "11.10.1.20",
"rangeEnd": "11.10.3.50"
}
]
]
}
}
NetworkAttachmentDefinition
에 .spec.config
를 선언하지 않으면 .metadata.name
과 일치하는 name
을 가진 설정 파일을 찾아서 사용합니다.
Pod annotation으로 네트워크 할당하기
apiVersion: v1
kind: Pod
metadata:
annotations:
k8s.v1.cni.cncf.io/networks: <networks>
<networks>
<network>[,<network>]
<network>
=[<namespace>]<networkAttachmentDefinitionName>[@<ifName>]
- JSON 형식으로 선언할 수도 있습니다.
[ { "<field>": <value> } ]
<field>
name
namespace
interface