CRD-Backed IPAM

CRD-Backed IPAM

Cilium의 CRD-backed IPAM을 활성화하고 CiliumNode 커스텀 리소스로 IP를 할당하는 방법을 안내하는 튜토리얼이에요.

출처: CRD-Backed IPAM

본문

이 문서는 CRD-backed IPAM을 활성화하는 방법을 안내하는 빠른 튜토리얼이에요. 이 튜토리얼의 목적은 컴포넌트가 어떻게 구성되고 리소스가 서로 어떻게 상호작용하는지 보여줘서, 사용자가 스스로 자동화하거나 확장할 수 있게 하는 것이에요.

자세한 내용은 CRD-Backed 섹션을 참고하세요.

CRD IPAM 모드 활성화 (Enable CRD IPAM mode)

  1. 사용 가능한 가이드 중 하나로 Kubernetes용 Cilium을 설정하세요.

  2. --ipam=crd 옵션으로 Cilium을 실행하거나 cilium-config ConfigMap에서 ipam: crd를 설정하세요.

  3. Cilium을 재시작하세요. Cilium은 CRD가 아직 없으면 자동으로 등록해요.

    msg="Waiting for initial IP to become available in 'k8s1' custom resource" subsys=ipam
    
  4. CRD가 등록됐는지 검증하세요:

    $ kubectl get crds
    NAME                              CREATED AT
    [...]
    ciliumnodes.cilium.io             2019-06-08T12:26:41Z
    

CiliumNode CR 생성 (Create a CiliumNode CR)

  1. 다음 커스텀 리소스를 가져와 Cilium agent에서 IP를 사용 가능하게 만드세요.

    apiVersion: "cilium.io/v2"
    kind: CiliumNode
    metadata:
      name: "k8s1"
    spec:
      ipam:
        pool:
          192.168.1.1: {}
          192.168.1.2: {}
          192.168.1.3: {}
          192.168.1.4: {}
    
  2. Cilium이 올바르게 시작했는지 검증하세요:

    $ cilium-dbg status --all-addresses
    KVStore:                Ok   etcd: 1/1 connected, has-quorum=true: https://192.168.60.11:2379 - 3.3.12 (Leader)
    [...]
    IPAM:                   IPv4: 2/4 allocated,
    Allocated addresses:
      192.168.1.1 (router)
      192.168.1.3 (health)
    
  3. status.IPAM.used 섹션을 검증하세요:

    $ kubectl get cn k8s1 -o yaml
    apiVersion: cilium.io/v2
    kind: CiliumNode
    metadata:
      name: k8s1
      [...]
    spec:
      ipam:
        pool:
          192.168.1.1: {}
          192.168.1.2: {}
          192.168.1.3: {}
          192.168.1.4: {}
    status:
      ipam:
        used:
          192.168.1.1:
            owner: router
          192.168.1.3:
            owner: health
    

Note 현재는 단일 IP 주소만 허용돼요. CIDR은 지원되지 않아요.

더 알아보기 (Learn more)