본문으로 바로가기 본문 바로가기
WIKI 기술 지식 베이스

OpenShift 4에서 Calico 업그레이드하기

원문 보기 위키 갱신

이 문서는 OpenShift 4에 설치된 Calico를 최신 버전으로 업그레이드하는 절차를 다뤄요. 새 릴리스의 매니페스트를 다시 적용하는 방식으로 진행됩니다. 업그레이드 후 진행 상황을 모니터링하는 방법과 자동 호스트 엔드포인트로 마이그레이션하는 방법도 함께 소개해요.

출처: 문서

본문

Calico 업그레이드에 대하여

시작하기 전에 각 릴리스의 주요 변경 사항을 담은 업그레이드 노트를 검토하세요.

이 페이지는 이전 두 개의 Calico 릴리스에서 v3.33으로 업그레이드하는 내용을 다뤄요.

OpenShift 4의 기존 Calico 클러스터에 적용됩니다.

OpenShift 4에서 Calico 업그레이드하기

업데이트된 매니페스트를 적용하세요.

oc apply --server-side --force-conflicts -f https://raw.githubusercontent.com/projectcalico/calico/v3.33.0/manifests/tigera-operator-ocp-upgrade.yaml

선택 사항: flow logs API와 Calico Whisker(버전 3.30에서 도입)를 활성화하려면 Goldmane와 Whisker 커스텀 리소스를 적용하세요.

kubectl apply -f - <<EOF
apiVersion: operator.tigera.io/v1
kind: Goldmane
metadata:
  name: default
---
apiVersion: operator.tigera.io/v1
kind: Whisker
metadata:
  name: default
EOF

이제 다음 명령으로 업그레이드 진행 상황을 모니터링할 수 있어요:

watch oc get tigerastatus

자동 호스트 엔드포인트로 마이그레이션하기

경고:

자동 호스트 엔드포인트에는 allow-all 프로파일이 붙어 있어 네트워크 정책이 없을 때 모든 트래픽을 허용해요. 예상치 못한 동작과 데이터 노출을 초래할 수 있습니다.

기존의 전체 인터페이스(all-interfaces) 호스트 엔드포인트를 Calico가 관리하는 자동 호스트 엔드포인트로 마이그레이션하려면:

  1. 기존 전체 인터페이스 호스트 엔드포인트에 붙은 라벨을 해당 OpenShift 노드에 추가하세요. Calico는 노드에서 라벨을 동기화하는 방식으로 자동 호스트 엔드포인트의 라벨을 관리해요. 기존 전체 인터페이스 호스트 엔드포인트의 라벨은 각각 해당 노드에 추가되어야 합니다. 예를 들어 node1의 기존 전체 인터페이스 호스트 엔드포인트에 environment: dev 라벨이 있다면 같은 라벨을 그 노드에 추가해야 해요:

    oc label node node1 environment=dev
    
  2. 자동 호스트 엔드포인트 활성화 방법 가이드를 따라 자동 호스트 엔드포인트를 활성화합니다. 자동 호스트 엔드포인트는 네트워크 정책이 없을 때 모든 트래픽을 허용하는 프로파일이 붙은 상태로 생성된다는 점에 유의하세요.

    calicoctl patch kubecontrollersconfiguration default --patch ={"spec": {"controllers": {"node": {"hostEndpoint": {"autoCreate": "Enabled"}}}}}
    
  3. 기존 전체 인터페이스 호스트 엔드포인트를 삭제하세요. Calico가 관리하는 호스트 엔드포인트와 다른 것들을 여러 방법으로 구분할 수 있어요. 첫째, 자동 호스트 엔드포인트에는 projectcalico.org/created-by: calico-kube-controllers 라벨이 있습니다. 둘째, 자동 호스트 엔드포인트의 이름에는 -auto-hep 접미사가 붙어요.

    calicoctl delete hostendpoint <old_hostendpoint_name>
    

더 알아보기 (Learn more)

자동 호스트 엔드포인트는 기본적으로 모든 트래픽을 허용하는 프로파일이 붙는다는 점을 꼭 기억하세요. 마이그레이션 전에 노드 라벨을 정리해두면 정책 전환이 매끄러워집니다.