16.8. SDN 플러그인 간 마이그레이션
하나의 SDN 플러그인을 이미 사용하고 있으며 다른 버전으로 전환하려면 다음을 수행하십시오.
-
구성 파일의 모든 마스터와 노드에서
networkPluginName
매개 변수를 변경합니다. 모든 마스터에서 API 및 마스터 서비스를 다시 시작하십시오.
# master-restart api # master-restart controllers
모든 마스터와 노드에서 노드 서비스를 중지합니다.
# systemctl stop atomic-openshift-node.service
OpenShift SDN 플러그인 간에 전환하는 경우 모든 마스터와 노드에서 OpenShift SDN을 다시 시작합니다.
oc delete pod --all -n openshift-sdn
모든 마스터 및 노드에서 노드 서비스를 다시 시작하십시오.
# systemctl restart atomic-openshift-node.service
OpenShift SDN 플러그인에서 타사 플러그인으로 전환하는 경우 OpenShift SDN 특정 아티팩트를 정리합니다.
$ oc delete clusternetwork --all $ oc delete hostsubnets --all $ oc delete netnamespaces --all
또한 ovs-multitenant 로 전환한 후 사용자는 더 이상 서비스 카탈로그를 사용하여 서비스를 프로비저닝할 수 없습니다. openshift-monitoring 에도 동일한 내용이 적용됩니다. 이 문제를 해결하려면 다음 프로젝트를 전역으로 설정합니다.
$ oc adm pod-network make-projects-global kube-service-catalog $ oc adm pod-network make-projects-global openshift-monitoring
이러한 명령이 Ansible 플레이북의 일부로 실행되었기 때문에 클러스터가 ovs-multitenant 를 사용하여 처음 설치되면 이 문제가 나타나지 않습니다.
ovs-subnet에서 ovs- multitenant OpenShift SDN 플러그인으로 전환하면 클러스터의 모든 기존 프로젝트가 완전히 격리됩니다(할당된 고유 VNID). 클러스터 관리자는 관리자 CLI를 사용하여 프로젝트 네트워크를 수정 하도록 선택할 수 있습니다.
다음을 실행하여 VNID를 확인합니다.
$ oc get netnamespace
16.8.1. ovs-multitenant에서 ovs-networkpolicy로 마이그레이션
v1
NetworkPolicy 기능은 OpenShift Container Platform에서만 사용할 수 있습니다. 즉, OpenShift Container Platform에서는 송신 정책 유형, IPBlock 및 podSelector
와 namespaceSelector
를 결합할 수 없습니다.
클러스터와의 통신을 중단할 수 있으므로 기본 OpenShift Container Platform 프로젝트에 NetworkPolicy
기능을 적용하지 마십시오.
SDN 플러그인 간 마이그레이션 섹션에서 위의 일반 플러그인 마이그레이션 단계 외에도 ovs- multitenant 플러그인에서 ovs- networkpolicy 플러그인으로 마이그레이션할 때 한 가지 추가 단계가 있습니다. 모든 네임스페이스에 고유한 NetID
가 있는지 확인해야 합니다. 즉 , 이전에 참여하거나 프로젝트를 전역으로 만든 경우 ovs-networkpolicy 플러그인으로 전환하기 전에 해당 프로젝트를 실행 취소하거나 NetworkPolicy 오브젝트가 올바르게 작동하지 않을 수 있습니다.
도우미 스크립트는 NetID의
수정을 통해 NetworkPolicy 오브젝트를 생성하여 이전에 격리된 네임스페이스를 격리하고 이전에 연결된 네임스페이스 간 연결을 활성화합니다.
다음 단계를 사용하여 ovs- multitenant 플러그인을 계속 실행하는 동안 이 도우미 스크립트를 사용하여 ovs- networkpolicy 플러그인으로 마이그레이션합니다.
스크립트를 다운로드하고 실행 파일 권한을 추가합니다.
$ curl -O https://raw.githubusercontent.com/openshift/origin/release-3.11/contrib/migration/migrate-network-policy.sh $ chmod a+x migrate-network-policy.sh
스크립트를 실행합니다(클러스터 관리자 역할 필요).
$ ./migrate-network-policy.sh
이 스크립트를 실행하면 모든 네임스페이스가 다른 모든 네임스페이스에서 완전히 격리되므로 ovs-networkpolicy 플러그인으로의 마이그레이션을 완료해야 다른 네임스페이스의 Pod 간 연결이 실패합니다.
새로 생성된 네임스페이스에서 기본적으로 동일한 정책도 포함하려는 경우 마이그레이션 스크립트에서 생성한 default-deny 및
정책과 일치하는 기본 NetworkPolicy 오브젝트 를 설정할 수 있습니다.
allow-from-global-
namespaces
스크립트 실패 또는 기타 오류가 있거나 나중에 ovs-multitenant 플러그인으로 되돌리도록 결정한 경우 마이그레이션 되지 않은 스크립트를 사용할 수 있습니다. 이 스크립트는 마이그레이션 스크립트에서 변경한 내용을 실행 취소하고 이전에 가입한 네임스페이스를 다시 결합합니다.