Istio 설정
Istio 관리 추가 기능 설정
Istio on IBM Cloud® Kubernetes Service는 Istio의 완벽한 설치, Istio 제어 플레인 컴포넌트의 자동 업데이트 및 라이프사이클 관리, 플랫폼 로깅 및 모니터링 도구와의 통합을 제공합니다.
Istio 추가 기능 설치
커뮤니티 Istio 대신 관리 Istio 추가 기능을 설치할 수 있습니다.
시작하기 전에
- 당신이 가지고 있는지 확인하십시오 작가 또는 관리자 IBM Cloud IAM 서비스 액세스 역할 ~을 위한 IBM Cloud Kubernetes Service.
- 코어가 4개이고 메모리가 16GB 이상인 작업자 노드가 3개 이상 있는 표준 Kubernetes 클러스터(
b3c.4x16
)를 작성하십시오. - 클러스터의 관리 Istio 추가 기능과 동시에 커뮤니티 Istio를 실행할 수 없습니다. 기존 클러스터를 사용하며 이전에 IBM Helm 차트를 사용하거나 다른 방법을 통해 클러스터에 Istio를 설치한 경우에는 해당 Istio 설치를 제거하십시오.
- 클래식 다중 구역 클러스터: IBM Cloud 인프라 계정에 대해 VRF(Virtual Routing and Forwarding) 를 사용으로 설정했는지 확인하십시오. VRF를 사용으로 설정하려면 VRF 사용을
참조하십시오. VRF가 이미 사용으로 설정되었는지 확인하려면
ibmcloud account show
명령을 사용하십시오. VRF를 사용할 수 없거나 사용하지 않으려면 VLAN Spanning을 사용으로 설정하십시오. 이 작업을 수행하려면 다음이 필요합니다. 네트워크 VLAN 스패닝 관리 인프라 권한을 부여하거나 계정 소유자에게 이를 활성화하도록 요청할 수 있습니다. VLAN 스패닝이 이미 활성화되어 있는지 확인하려면ibmcloud ks vlan spanning get --region <region>
명령.
콘솔에서 Istio 추가 기능 설치
-
당신의 클러스터 대시보드 에서 Istio 추가 기능을 설치하려는 클러스터의 이름을 클릭합니다.
-
추가 기능 섹션으로 이동하십시오.
-
관리 Istio 카드에서 설치를 클릭하십시오.
-
설치를 다시 클릭하십시오.
-
관리 Istio 카드에서 추가 기능이 나열되었는지 확인하십시오.
CLI를 사용하여 Istio 추가 기능 설치
계정에 로그인하십시오. If applicable, target the appropriate resource group. 클러스터에 대한 컨텍스트를 설정하십시오.
-
지원되는 Istio 버전을 검토하십시오.
ibmcloud ks addon-versions --addon istio
-
istio
추가 기능을 사용으로 설정하십시오. 일반적으로 사용 가능한 Istio 관리형 추가 기능의 기본 버전, 1.22.1,이(가) 설치되었습니다.ibmcloud ks cluster addon enable istio --cluster <cluster_name_or_ID>
-
관리 Istio 추가 기능에
Addon Ready
상태가 있는지 확인하십시오.ibmcloud ks cluster addon ls --cluster <cluster_name_or_ID>
출력 예
NAME Version Health State Health Status istio 1.22.1 normal Addon Ready
-
추가 기능의 개별 컴포넌트를 체크아웃하여 Istio 서비스와 해당 팟(Pod)이 배치되었는지 확인할 수도 있습니다.
kubectl get svc -n istio-system
kubectl get pods -n istio-system
-
그 다음, Istio 서비스 메시에 앱을 포함할 수 있습니다.
추가 기능 업데이트
IBM Cloud 에 의해 테스트되고 IBM Cloud Kubernetes Service에서 사용하도록 승인된 Istio 추가 기능을 업데이트하십시오.
관리 추가 기능을 사용하여 설치된 Istio 버전을 업데이트하려면 istioctl
을 사용하지 마십시오. Istio 버전의 업데이트를 포함한 관리 Istio 추가 기능을 업데이트하려면 다음 단계만 사용하십시오.
지원되지 않는 버전의 Istio 추가 기능에서 업데이트하려면 Istio 컴포넌트 를 IBM Cloud Kubernetes Service에서 지원되는 최신 패치 버전으로 업데이트하십시오.
Istio 추가 기능의 부 버전 업데이트
IBM Cloud는 IBM Cloud Kubernetes Service에서 지원하는 최신 버전의 Istio에 대한 패치 업데이트를 자동으로 롤아웃하여 모든 Istio 컴포넌트를 최신 상태로 유지합니다. Istio 컴포넌트를 IBM Cloud Kubernetes Service에서 지원하는 Istio의 다음 부 버전으로(예: 버전 1.9에서 1.10으로) 업데이트하려면 추가 기능을 수동으로 업데이트해야 합니다. Istio는 한 번에 한 버전만 수동으로 업데이트할 수 있습니다.
Istio 추가 기능은 한 번에 한 버전만 수동으로 업데이트할 수 있습니다. 두 개 이상의 버전으로 Istio 추가 기능을 업데이트하려는 경우 수동 업데이트 프로세스를 반복하거나 추가 기능을 설치 제거 및 제거한 다음 이후 버전으로 재설치할 수 있습니다.
istio-system
네임스페이스의 Istio 제어 컴포넌트를 최신 부 버전으로 업데이트하면 변경이 중단될 수 있습니다. 부 버전 업데이트 중에 발생하는 다음 변경사항을 검토하십시오.
- 업데이트가 제어 플레인 팟(Pod)으로 롤아웃되면 팟(Pod)이 다시 작성됩니다. 업데이트가 완료될 때까지 Istio 제어 플레인을 완전히 사용할 수 없습니다.
- Istio 데이터 플레인은 업데이트 중에 계속 작동합니다. 하지만 서비스 메시의 앱에 대한 일부 트래픽이 짧은 시간 동안 인터럽트될 수 있습니다.
istio-ingressgateway
로드 밸런서의 외부 IP 주소는 업데이트 중이나 후에 변경되지 않습니다.
관리 Istio 추가 기능을 이전 버전으로 되돌릴 수 없습니다. 이전 부 버전으로 되돌리려면 추가 기능을 설치 제거한 다음 이전 버전을 지정하여 추가 기능을 다시 설치해야 합니다.
-
Istio 추가 기능의 현재 버전을 검토하십시오.
kubectl get iop managed-istio -n ibm-operators -o jsonpath='{.metadata.annotations.version}'
-
사용 가능한 Istio 추가 기능 버전을 검토하십시오.
ibmcloud ks addon-versions
-
각 버전의 변경 사항을 검토하세요. Istio 추가 기능 변경 로그.
-
버전 1.11에서 버전 1.12로 업그레이드 중이고 Istio 컴포넌트가 버전 1.10 이하에서 프로비저닝된 경우:
-
명령을 실행하여 다양한 웹훅 구성의 세부사항을 가져오십시오.
kubectl get mutatingwebhookconfigurations
출력 예
NAME WEBHOOKS AGE istio-sidecar-injector 5 32m
-
출력에서
istio-sidecar-injector
을(를) 찾고 WEBHOOKS 열을 검토하십시오. 5개 이상의 웹훅이 있으면 다음 명령을 실행하여 추가 웹훅을 삭제하십시오.kubectl delete mutatingwebhookconfigurations istio-sidecar-injector && kubectl rollout restart deploy addon-istio-operator -n ibm-operators
출력 예
mutatingwebhookconfiguration.admissionregistration.k8s.io "istio-sidecar-injector" deleted
-
추가 웹훅이 삭제되었는지 확인하십시오. 음소거 웹훅 구성의 세부사항을 가져오고 네 개의
istio-sidecar-injector
웹훅이 있는지 확인하십시오.kubectl get mutatingwebhookconfigurations
출력 예
NAME WEBHOOKS AGE istio-sidecar-injector 4 60s
-
명령을 실행하여 유효성 검증 웹훅 구성의 세부사항을 가져오십시오.
kubectl get validatingwebhookconfigurations
출력 예
NAME WEBHOOKS AGE istio-validator-istio-system 2 66s istiod-istio-system 1 31m
-
출력을 검토하십시오.
istiod-istio-system
웹훅이 나열되면 다음 명령을 실행하여 삭제하십시오.kubectl delete ValidatingWebhookConfiguration istiod-istio-system
출력 예
validatingwebhookconfiguration.admissionregistration.k8s.io "istiod-istio-system" deleted
-
istiod-istio-system
웹훅이 더 이상 나열되지 않는지 확인하십시오.kubectl get validatingwebhookconfigurations
출력 예
NAME WEBHOOKS AGE istio-validator-istio-system 2 2m
-
-
Istio 추가 기능을 업데이트하십시오.
ibmcloud ks cluster addon update istio --version <version> -c <cluster_name_or_ID>
-
계속하기 전에 업데이트가 완료되었는지 확인하십시오.
업데이트 프로세스를 완료하는 데 최대 20분이 걸릴 수 있습니다.
-
Istio 추가 기능의 상태가
normal
이고 상태가Addon Ready
인지 확인하십시오. 상태가updating
인 경우 업데이트가 아직 완료되지 않았습니다.ibmcloud ks cluster addon ls --cluster <cluster_name_or_ID>
-
컨트롤 플레인 구성요소 포드가 다음 위치에 있는지 확인하세요.
istio-system
네임스페이스에는 상태 ~의Running
.kubectl get pods -n istio-system
NAME READY STATUS RESTARTS AGE istio-system istio-egressgateway-6d4667f999-gjh94 1/1 Running 0 61m istio-system istio-egressgateway-6d4667f999-txh56 1/1 Running 0 61m istio-system istio-ingressgateway-7bbf8d885-b9xgp 1/1 Running 0 61m istio-system istio-ingressgateway-7bbf8d885-xhkv6 1/1 Running 0 61m istio-system istiod-5b9b5bfbb7-jvcjz 1/1 Running 0 60m istio-system istiod-5b9b5bfbb7-khcht 1/1 Running 0 60m
-
istioctl
클라이언트 및 사이드카 업데이트
Istio 관리 추가 기능이 업데이트될 때마다 istioctl
클라이언트 및 사용자 앱의 Istio 사이드카를 업데이트하십시오.
예를 들어, IBM Cloud Kubernetes Service를 사용하여 추가 기능의 패치 버전을 자동으로 업데이트하거나 추가 기능의 부 버전을 업데이트할 수 있습니다. 두 경우 모두, 추가 기능의 Istio 버전과 일치하도록 istioctl
클라이언트 및 사용자 앱의 기존 Istio 사이드카를 업데이트하십시오.
-
istioctl
클라이언트 및 Istio 추가 기능 제어 플레인의 버전을 가져오십시오.istioctl version --short=false
출력 예
client version: version.BuildInfo{Version:"1.11.2"} pilot version: version.BuildInfo{Version:1.22.1} pilot version: version.BuildInfo{Version:1.22.1} data plane version: version.ProxyInfo{ID:"istio-egressgateway-77bf75c5c-vp97p.istio-system", IstioVersion:1.22.1} data plane version: version.ProxyInfo{ID:"istio-egressgateway-77bf75c5c-qkhgm.istio-system", IstioVersion:1.22.1} data plane version: version.ProxyInfo{ID:"istio-ingressgateway-6dcb67b64d-dffhq.istio-system", IstioVersion:1.22.1} data plane version: version.ProxyInfo{ID:"httpbin-74fb669cc6-svc8x.default", IstioVersion:1.22.1} data plane version: version.ProxyInfo{ID:"istio-ingressgateway-6dcb67b64d-cs9r9.istio-system", IstioVersion:1.22.1} ...
-
출력에서
client version
(istioctl
)과 Istio 제어 플레인 컴포넌트의 버전(예:pilot version
)을 비교하십시오.client version
및 제어 플레인 컴포넌트 버전이 일치하지 않는 경우:-
제어 플레인 컴포넌트와 동일한 버전의
istioctl
클라이언트를 다운로드하십시오.curl -L https://istio.io/downloadIstio | ISTIO_VERSION=1.22.1 sh -
-
Istio 패키지 디렉토리로 이동하십시오.
cd istio-1.22.1
-
Linux 및 macOS 사용자:
istioctl
클라이언트를PATH
시스템 변수에 추가하십시오.export PATH=$PWD/bin:$PATH
-
-
1단계의 출력에서 각 데이터 플레인 팟(Pod)에 대해
pilot version
을data plane version
과 비교하십시오.pilot version
과data plane version
이 일치하면 추가 업데이트가 필요하지 않습니다.pilot version
및data plane version
이(가) 일치하지 않으면 이전 버전을 실행하는 데이터 플레인 팟(Pod)에 대한 배치를 다시 시작하십시오. 팟 이름과 네임스페이스는 각 항목에data plane version: version.ProxyInfo{ID:"<pod_name>.<namespace>", IstioVersion:"1.8.4"}
(으)로 나열됩니다.
kubectl rollout restart deployment <deployment> -n <namespace>
Istio 설치 사용자 정의
managed-istio-custom
configmap 리소스를 편집하여 Istio 구성 옵션 세트를 사용자 정의할 수 있습니다. 이러한 설정에는 제어 플레인 및 서비스 메시의 모니터링, 로깅 및 네트워킹에 대한 추가 제어가 포함됩니다.
-
해당 컨텐츠 및 인라인 문서를 검토하기 위해
managed-istio-custom
configmap 리소스에 대해 설명하십시오.kubectl describe cm managed-istio-custom -n ibm-operators
-
managed-istio-custom
configmap 리소스를 편집하십시오.kubectl edit cm managed-istio-custom -n ibm-operators
-
data
섹션에서 다음 구성 옵션 중 하나 이상의<key>: "<value>"
쌍을 추가하십시오.istio-components-pilot-requests-cpu
-
- 기본값:
"500m"
- CPU 요청을 구성합니다.
milli
CPUistiod
구성 요소 포드. 이 값을 변경하는 경우 주의하십시오. 이 값을 너무 낮게 설정하면 제어 플레인이 올바르게 작동하지 않을 수 있으며, 너무 높게 설정하면istiod
팟(Pod)이 스케줄되지 않을 수 있습니다.
- 기본값:
istio-global-logging-level
-
- 기본값:
"default:info"
- 제어 플레인 컴포넌트에 대한 로그 범위 및 로그 메시지의 레벨을 정의합니다. 범위는 제어 플레인 컴포넌트 내 기능 영역을 나타내며 각 범위는 특정 로그 정보 레벨을 지원합니다. 카테고리화되지 않은 로그 메시지를 위한
default
로깅 범위는 기본info
레벨에서 제어 플레인의 모든 구성요소에 적용됩니다. - 개별 컴포넌트 범위의 로그 레벨을 지정하려면 쉼표로 구분된 범위 및 레벨 목록을 입력하십시오(예:
"<scope>:<level>,<scope>:<level>"
). 각 제어 플레인 구성요소의 범위 목록과 로그 메시지의 정보 수준은 다음을 참조하세요. Istio 구성요소 로깅 문서. 데이터 플레인의 로그 수준을 변경하려면istioctl proxy-config log <pod> --level <level>
명령.
- 기본값:
istio-global-outboundTrafficPolicy-mode
-
- 기본값:
"ALLOW_ANY"
- 기본적으로 서비스 메시의 모든 아웃바운드 트래픽이 허용됩니다. 서비스 메시에서 서비스 레지스트리에 정의되지 않았거나 서비스 메시 내에
ServiceEntry
가 없는 호스트로 향하는 아웃바운드 트래픽을 차단하려는 경우REGISTRY_ONLY
로 설정합니다.
- 기본값:
istio-egressgateway-public-1-enabled
-
- 기본값:
"true"
- 기본 Istio 송신 게이트웨이를 비활성화하려면 다음으로 설정합니다.
"false"
. 예를 들면, 대신 사용자 정의 Egress 게이트웨이를 작성할 수 있습니다.
- 기본값:
istio-global-proxy-accessLogFile
-
- 기본값:
""
- Envoy 프록시는 액세스 정보를 표준 출력으로 표시합니다. 이러한 로그는 수신 또는 송신 문제를 디버그할 때 유용합니다. Envoy 컨테이너에 대해
kubectl logs
명령을 실행할 때 이 액세스 정보를 보려는 경우"/dev/stdout"
으로 설정합니다.
- 기본값:
istio-ingressgateway-public-1|2|3-enabled
-
- 기본값: 구역 1의
"true"
만 해당합니다. - 앱의 고가용성을 높이려면 공용
istio-ingressgateway
로드 밸런서를 작성할 각 구역에 대해"true"
(으)로 설정하십시오. 기본 Ingress 게이트웨이 대신 사용자 정의 Ingress 게이트웨이를 사용하려는 경우에는"false"
로 설정할 수 있습니다.
- 기본값: 구역 1의
istio-ingressgateway-zone-1|2|3
-
- 기본값:
"<zone>"
- 추가 기능을 설치할 때 및 Istio 패치 업데이트를 적용할 때마다 자동으로 채워지는, 작업자 노드가 배치되는 구역입니다. 이러한 필드는 클러스터의 구역을
istio-ingressgateway-public-1|2|3-enabled
필드에 적용합니다. 이 설정에 나열된 영역이 클러스터 영역과 동기화되지 않은 경우 다음을 실행하여 자동 채우기 작업을 다시 시작할 수 있습니다.kubectl delete pod -n ibm-system -l addon.cleanup=istio
그리고kubectl delete job -n ibm-system -l addon.cleanup=istio
.
- 기본값:
istio-monitoring-telemetry
-
- 기본값:
"true"
- 기본적으로 텔레메트리 메트릭 및 Prometheus 지원이 사용 가능합니다. 텔레메트리 메트릭과 연관된 성능 문제를 제거하고 모니터링을 모두 사용 안함으로 설정하려면
"false"
로 설정하십시오.
- 기본값:
istio-meshConfig-enableTracing
-
- 기본값:
"true"
- 기본적으로, Istio는 100개의 요청마다 1개의 추적 범위를 생성합니다. 추적 범위를 사용하지 않으려면
"false"
로 설정하십시오.
- 기본값:
istio-pilot-traceSampling
-
- 기본값:
"1.0"
- 기본적으로 Istio 는 100개의 요청마다 1개의 추적 범위를 생성합니다.이는 샘플링 비율 1%입니다. 추가 추적 범위를 생성하려면 백분율 값을 늘리십시오.
- 기본값:
istio-components-pilot-hpa-maxReplicas
-
- 기본값:
"5"
- 기본적으로 Istio는 istiod에 대한 기본 HPA(Horizontal Pod Autoscaler) 최대 Pod를 5로 설정합니다. 구성을 업데이트하기 위해 istiod에 증가된 리소스가 필요한 대규모 서비스 메시가 있는 경우가 아니면 이 값을 늘리지 마십시오.
- 기본값:
예를 들어, Configmap은 다음 예제와 같습니다.
apiVersion: v1 data: istio-ingressgateway-zone-1: dal10 <key: value> # such as istio-egressgateway-public-1-enabled: "false" kind: ConfigMap metadata: name: managed-istio-custom namespace: ibm-operators
configmap에 이 테이블의 옵션이 표시되지 않습니까? ConfigMap에 사용자 정의 값이 포함되어 있어 ConfigMap이 시간이 지나면서 릴리스된 옵션으로 업데이트되지 않은 것입니다. 대신 configmap의 사본을 백업한 후 클러스터에서 해당 configmap을 삭제할 수 있습니다. 약 5분 후 클러스터에 새 옵션이 포함된 기본 configmap이 작성됩니다. 이제 이전에 구성된 설정을 백업에서 이 기본 configmap으로 복사하고 새 설정을 구성한 후 변경사항을 적용할 수 있습니다.
-
구성 파일을 저장하고 닫으십시오.
-
istio-global-logging-level
또는istio-global-proxy-accessLogFile
설정을 변경한 경우, 데이터 플레인 팟(Pod)에 변경사항을 적용하려면 해당 팟을 다시 시작해야 합니다.-
istio-system
네임스페이스에 없는 모든 데이터 플레인 팟(Pod)의 목록을 가져오십시오.istioctl version --short=false | grep "data plane version" | grep -v istio-system
출력 예
data plane version: version.ProxyInfo{ID:"test-6f86fc4677-vsbsf.default", IstioVersion:"1.22.1"} data plane version: version.ProxyInfo{ID:"rerun-xfs-f8958bb94-j6n89.default", IstioVersion:"1.22.1"} data plane version: version.ProxyInfo{ID:"test2-5cbc75859c-jh6bx.default", IstioVersion:"1.22.1"} data plane version: version.ProxyInfo{ID:"minio-test-78b5d4597d-hkpvt.default", IstioVersion:"1.22.1"} data plane version: version.ProxyInfo{ID:"sb-887f89d7d-7s8ts.default", IstioVersion:"1.22.1"} data plane version: version.ProxyInfo{ID:"gid-deployment-5dc86db4c4-kdshs.default", IstioVersion:"1.22.1"}
-
각 팟(Pod)을 삭제하여 다시 시작하십시오. 이전 단계의 출력에서는 팟 이름과 네임스페이스가 각 항목에
data plane version: version.ProxyInfo{ID:"<pod_name>.<namespace>", IstioVersion:"1.22.1"}
(으)로 나열됩니다.kubectl delete pod <pod_name> -n <namespace>
-
- 변경하고 싶으신가요? ConfigMap 환경?
- Configmap에 추가한 설정을 변경하려면 패치 스크립트를 사용할 수 있습니다. 예를 들어,
istio-global-proxy-accessLogFile: "/dev/stdout"
설정을 추가했고 나중에 다시""
로 변경하려는 경우kubectl patch cm managed-istio-custom -n ibm-operators --type='json' -p='[{"op": "add", "path": "/data/istio-global-proxy-accessLogFile", "value":""}]'
를 실행할 수 있습니다. - 사용자 정의 설정을 디버깅해야 합니까?
- 로그를 확인하세요.
addon-istio-operator
(Istio 버전 1.10 또는 그 이후) 또는managed-istio-operator
(Istio 버전 1.9 또는 이전) 포드를 실행하여kubectl logs -n ibm-operators -l name=managed-istio-operator
. Istio 오퍼레이터는 사용자에 의해 변경된 모든 사용자 정의 Istio 변경사항을 유효성 검증하고 조정합니다.
Istio 추가 기능을 사용 안함으로 설정하면 managed-istio-custom
configmap이 설치 제거 중에 제거되지 않습니다. Istio 추가 기능을 다시 사용으로 설정하는 경우 사용자 정의된 configmap이 설치 중에 적용됩니다. 이후의 Istio 설치에서 사용자 정의 설정을 다시 사용하지 않으려면 kubectl delete cm -n ibm-operators managed-istio-custom
을(를)
실행하여 Istio 추가 기능을 사용 안함으로 설정한 후에는 configmap을 삭제해야 합니다. Istio 추가 기능을 다시 사용으로 설정하면 기본 configmap이 설치 중에 적용됩니다.
Istio 추가 기능 설치 제거
Istio 작업을 마치면 클러스터에서 Istio 리소스를 정리하고 Istio 추가 기능을 제거할 수 있습니다.
1단계: 제거 전 리소스 저장
istio-system
네임스페이스에서 작성하거나 수정한 모든 리소스가 제거됩니다. 이러한 리소스를 유지하려면 Istio 추가 기능을 제거하기 전에 저장하세요.
-
managed-istio-custom
ConfigMap 을 저장하여 문제점을 해결하거나 나중에 추가 기능을 다시 설치하십시오.kubectl get cm -n ibm-operators managed-istio-custom -o yaml > Customizations.yaml
-
모든 IstioOperator CR (IOP) 을 저장하십시오.
a. IOP 자원을 나열하십시오.
kubectl get iop -A
b. 나열된 각 IOP 자원에 대해 각 자원을 파일에 저장하십시오.
kubectl get iop -n <IOP_namespace> <IOP_name> -o yaml > <IOP_name>.yaml
2단계: Istio 추가 기능 설치 제거
콘솔 또는 CLI에서 추가 기능을 설치 제거하십시오. Istio 1.20 이하의 경우 사용자 정의 Istio 운영자 (IOP) 자원이 자동으로 삭제됩니다.
콘솔에서 Istio 추가 기능 설치 제거
-
당신의 클러스터 대시보드 에서 Istio 추가 기능을 제거하려는 클러스터의 이름을 클릭합니다.
-
추가 기능 섹션으로 이동하십시오.
-
관리 Istio 카드에서 조치 메뉴 아이콘을 클릭하십시오.
-
설치 제거를 클릭하십시오. 이 클러스터에서 관리 Istio 추가 기능이 사용 안함으로 설정되며 이 클러스터의 모든 Istio 리소스가 제거됩니다.
-
관리 Istio 카드에서 설치 제거한 추가 기능이 더 이상 나열되지 않는지 확인하십시오.
CLI에서 Istio 추가 기능 제거
더 이상 사용되지 않는 istio-sample-bookinfo
및 istio-extras
추가 기능을 설치하지 않은 경우에는 1단계 및 2단계를 건너뛰십시오.
istio-sample-bookinfo
추가 기능을 사용 안함으로 설정하십시오.ibmcloud ks cluster addon disable istio-sample-bookinfo --cluster <cluster_name_or_ID>
istio-extras
추가 기능을 사용 안함으로 설정하십시오.ibmcloud ks cluster addon disable istio-extras --cluster <cluster_name_or_ID>
istio
추가 기능을 사용 안함으로 설정하십시오.ibmcloud ks cluster addon disable istio --cluster <cluster_name_or_ID> -f
- 이 클러스터에서 모든 관리 Istio 추가 기능이 사용 안함으로 설정되어 있는지 확인하십시오. 출력에 Istio 추가 기능이 리턴되지 않습니다.
ibmcloud ks cluster addon ls --cluster <cluster_name_or_ID>
3단계: 자원 제거
자원이 저장되고 추가 기능이 사용 안함으로 설정되면 자원을 제거할 수 있습니다.
-
managed-istio-custom
configmap은 설치 제거 중에 제거되지 않습니다. 나중에 Istio 추가 기능을 다시 사용으로 설정하면 configmap에 대한 사용자 정의된 설정이 설치 중에 적용됩니다. 이후 Istio 설치에서 사용자 정의 설정을 다시 사용하지 않으려면 configmap을 삭제해야 합니다.kubectl delete cm -n ibm-operators managed-istio-custom
-
작성한 모든 사용자 정의 Istio 오퍼레이터(IOP) 리소스(예: 사용자 정의 수신 게이트웨이)를 삭제하십시오. 이 명령을 실행하면 Istio 오퍼레이터가 배치 또는 서비스와 같은, IOP 리소스가 작성한 모든 리소스를 자동으로 제거합니다.
kubectl delete IstioOperator <resource_name> -n <namespace>
-
Istio 1.21 이상의 경우,
managed-istio
IOP를 삭제하십시오.kubectl delete iop -n ibm-operators managed-istio
-
다음 단계를 계속하기 전에 10분 동안 기다리십시오.
4단계: Istio 연산자 제거
추가 기능이 완전히 설치 제거되고 나면 Istio 오퍼레이터를 제거할 수 있습니다.
Istio 오퍼레이터 배치, 서비스 계정, 클러스터 역할 바인딩, 클러스터 역할을 삭제하십시오.
kubectl delete deployment -n ibm-operators addon-istio-operator --ignore-not-found=true
kubectl delete serviceaccount -n ibm-operators addon-istio-operator --ignore-not-found=true
kubectl delete clusterrolebinding addon-istio-operator --ignore-not-found=true
kubectl delete clusterrole addon-istio-operator --ignore-not-found=true
클러스터에서 기타 Istio 설치의 설치 제거
이전에 IBM Helm 차트의 사용이나 기타 방법을 통해 Istio를 클러스터에 설치한 경우에는 클러스터에서 관리 Istio 추가 기능을 사용으로 설정하기 전에 해당 Istio 설치를 제거하십시오. Istio가 이미 클러스터에 있는지 확인하려면 kubectl get namespaces
를 실행하여 해당 출력에서 istio-system
네임스페이스를 찾으십시오.
-
IBM Cloud Istio Helm 차트를 사용하여 Istio를 설치한 경우
- Istio Helm 배치를 설치 제거하십시오.
helm del istio --purge
- Helm 2.9 이하를 사용한 경우, 추가 작업 리소스를 삭제하십시오.
kubectl -n istio-system delete job --all
- 설치 제거 프로세스는 최대 10분 정도 소요됩니다. 클러스터에 Istio 관리 추가 기능을 설치하기 전에 우선
kubectl get namespaces
를 실행하고istio-system
네임스페이스가 제거되었는지 확인하십시오.
- Istio Helm 배치를 설치 제거하십시오.
-
Istio를 수동으로 설치했거나 Istio 커뮤니티를 사용한 경우 Helm 차트를 참조하세요. Istio 제거 문서.
-
이전에 클러스터에 BookInfo를 설치한 경우 해당 리소스를 정리하십시오.
- 디렉토리를 Istio 파일 위치로 변경하십시오.
cd <filepath>/istio-1.22.1
- 클러스터에서 모든 BookInfo 서비스, 팟(Pod) 및 배치를 삭제하십시오.
samples/bookinfo/platform/kube/cleanup.sh
- 설치 제거 프로세스는 최대 10분 정도 소요됩니다. 클러스터에 Istio 관리 추가 기능을 설치하기 전에 우선
kubectl get namespaces
를 실행하고istio-system
네임스페이스가 제거되었는지 확인하십시오.
- 디렉토리를 Istio 파일 위치로 변경하십시오.
Istio 추가 기능 문제점 해결
관리 Istio 추가 기능을 사용할 때 발생할 수 있는 일부 공통적인 문제를 해결하려면 관리 추가 기능 문제점 해결을 참조하십시오.
istioctl
CLI 설치
컴퓨터에 istioctl
CLI 클라이언트를 설치하십시오. 자세한 내용은 다음을 참조하세요.istioctl
명령 참조.
- 클러스터에 설치한 Istio의 버전을 확인하십시오.
istioctl version
- 버전을 다운로드하세요.
istioctl
클러스터의 Istio 버전을 컴퓨터와 일치시킵니다.curl -L https://istio.io/downloadIstio | ISTIO_VERSION=1.22.1 sh -
- Istio 패키지 디렉토리로 이동하십시오.
cd istio-1.22.1
- Linux 및 macOS 사용자:
istioctl
클라이언트를PATH
시스템 변수에 추가하십시오.export PATH=$PWD/bin:$PATH
Istio 추가 기능 1.21 에서 커뮤니티 Istio 1.21 로 마이그레이션
관리 Istio 추가 기능 대신 커뮤니티 Istio를 사용하도록 마이그레이션할 수 있습니다.
시작하기 전에
- 1.21이전 버전을 사용 중인 경우, Istio 추가 기능을 버전 1.21 로 업데이트하십시오. 이 버전에서는 추가 기능을 사용 안함으로 설정해도 이전 버전에서와 같이 사용자 정의 자원이 제거되지 않으므로 이 업그레이드가 중요합니다.
- Istio가 더 이상 필요하지 않은 경우 이 단계를 완료하는 대신 커뮤니티 Istio를 설치하지 않고 추가 기능을 설치 제거 할 수 있습니다.
1단계: 콘솔에서 Istio 추가 기능 사용 안함
콘솔이나 CLI에서 추가 기능을 비활성화합니다.
-
당신의 클러스터 대시보드 에서 Istio 추가 기능을 제거하려는 클러스터의 이름을 클릭합니다.
-
추가 기능 섹션으로 이동하십시오.
-
관리 Istio 카드에서 조치 메뉴 아이콘을 클릭하십시오.
-
설치 제거를 클릭하십시오. 관리 Istio 추가 기능은 이 클러스터에서 사용 안함으로 설정됩니다.
-
관리 Istio 카드에서 설치 제거한 추가 기능이 더 이상 나열되지 않는지 확인하십시오.
1단계: CLI에서 Istio 추가 기능 사용 안함
추가 기능을 사용 안함으로 설정하고 추가 Istio 추가 기능이 남아 있지 않은지 확인하십시오.
istio
추가 기능을 사용 안함으로 설정하십시오.ibmcloud ks cluster addon disable istio --cluster <cluster_name_or_ID> -f
- 이 클러스터에서 모든 관리 Istio 추가 기능이 사용 안함으로 설정되어 있는지 확인하십시오. 출력에 Istio 추가 기능이 리턴되지 않습니다.
ibmcloud ks cluster addon ls --cluster <cluster_name_or_ID>
2단계: Istio 연산자 제거
Istio 오퍼레이터 배치, 서비스 계정, 클러스터 역할 바인딩, 클러스터 역할을 삭제하십시오.
다음 명령을 실행하십시오.
kubectl delete deployment -n ibm-operators addon-istio-operator --ignore-not-found=true
kubectl delete serviceaccount -n ibm-operators addon-istio-operator --ignore-not-found=true
kubectl delete clusterrolebinding addon-istio-operator --ignore-not-found=true
kubectl delete clusterrole addon-istio-operator --ignore-not-found=true
3단계: 자원 저장
생성하거나 수정한 리소스를 저장합니다.istio-system
네임스페이스와 모두 Kubernetes 사용자 정의 리소스 정의(CRD)에 의해 자동으로 생성된 리소스입니다.
-
IOP에서 파이널라이저를 삭제하십시오.
managed-istio
IOP 사용 예:kubectl patch -n ibm-operators istiooperator/managed-istio --type json --patch='[ { "op": "remove", "path": "/metadata/finalizers" } ]'
-
managed-istio-custom
ConfigMap 을 저장하여 문제점을 해결하거나 나중에 추가 기능을 다시 설치하십시오.kubectl get cm -n ibm-operators managed-istio-custom -o yaml > Customizations.yaml
-
모든 IstioOperator CR (IOP) 을 저장하십시오.
a. IOP 자원을 나열하십시오.
kubectl get iop -A
b. 나열된 각 IOP 자원에 대해 각 자원을 파일에 저장하십시오.
kubectl get iop -n <IOP_namespace> <IOP_name> -o yaml > <IOP_name>.yaml
-
다시 적용할 준비를 하려면 저장된 YAML 파일에서
status
섹션을 제거하십시오.metadata
섹션에서name
및namespace
를 유지하고 다른 모든 정보는 제거하십시오.결과:
apiVersion: install.istio.io/v1alpha1 kind: IstioOperator metadata: name: NAME namespace: NAMESPACE spec: <spec_info>
-
다음 단계를 계속하기 전에 10분 동안 기다리십시오.
4단계: IOP의 설치 프로그램 변경
사용자 정의 Ingress 게이트웨이의 경우와 같이 모든 Istio 운영자 (IOP) 자원을 삭제하십시오.
-
Istio 운영자에 대해
delete
명령을 실행하여 IOP 자원이 작성한 자원 (예: 배치 또는 서비스) 을 자동으로 제거하십시오.kubectl delete IstioOperator <resource_name> -n <namespace>
-
이전 단계에서 저장한 각 IOP 파일에 대해
upgrade
명령을 실행하십시오.istioctl upgrade -f <filename>.yaml
5단계: 제거 ConfigMap
ConfigMap 이 이전에 저장되었으므로 제거할 수 있습니다.
managed-istio-custom
ConfigMap을 제거하십시오.
kubectl delete cm -n ibm-operators managed-istio-custom
추가 기능 제거가 완료되었으며 필요에 따라 커뮤니티 Istio를 계속 사용하고 업그레이드할 수 있습니다.