NetworkAttachmentDefinition
Network 설정하기
apiVersion: k8s.cni.cncf.io/v1
kind: NetworkAttachmentDefinition
metadata:
name: ipoib
spec:
config: |
{
"cniVersion": "0.3.1",
"name": "ipoib",
"type": "ipoib",
"master": "ib0",
"ipam": {
"type": "whereabouts",
"range": "172.16.0.0/16"
}
}
Node별 Network 설정하기
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> } ]
name: <networkAttachmentDefinitionName>
namespace: <namespace>
interface: <ifName>
: Pod 내부에서 사용할 인터페이스 이름입니다.