NAVER Cloud

NKS (Ncloud Kubernetes Service) 에 istio 설치하기

한크크 2021. 8. 12. 13:49

istio 를 설치할 수 있는 방법은 여러가지가 있는데, 이번에는 istioctl 을 활용해서 설치해보았다. 

1. 먼저 istioctl 을 istioctl 명령을 수행할 서버에 설치한다.

 istioctl manifest generate --set profile=default > kctl2-default.yaml

(나는 kubectl 이 설치된 서버에 함께 설치했다.)

mkdir /istio
cd /istio
curl -L https://git.io/getLatestIstio | sh -
cd istio-*
sudo mv -v bin/istioctl /usr/local/bin/

최신 버전으로 설치할때는 getLatestIstio 를 사용하면 되지만, 특정 버전을 설치하고 싶으면 아래 링크로 가서 원하는 버전을 다운받아 설치하면 된다. 

https://github.com/istio/istio/tags

 

2. istio 설치

네이버클라우드에서 제공하는 managed kubernetes cluster를 사용중이고, kubeconfig 파일에 istio를 설치할 kubernetes cluster 정보가 들어있다. 

istioctl install 명령어를 통해 설치하면 자동으로 istio-system이라는 namespace를 만들고 istio-ingressgateway 와 istiod 를 배포한다. 

istioctl install --kubeconfig /root/kubecfg/kconfig-01.yaml 

kubectl -n istio-system get deploy
NAME                   READY   UP-TO-DATE   AVAILABLE   AGE
istio-ingressgateway   1/1     1            1           90s
istiod                 1/1     1            1           110s

istio-ingressgateway 가 배포될 때 네이버클라우드의 NPLB (Network Proxy LB)도 함께 생성되고 istio-ingressgateway와 자동으로 연결된다. 

default 로 생성되는 LB가 NPLB 인데, NLB 와 같이 다른 종류의 LB를 사용하고 싶을 때는 istio ingressgateway 를 nlb 설정하는 내용의 istio-ingress-nlb-overrid.yaml 파일을 생성한 후 아래와 같이 내용을 넣어준 후 설치한다. 

vi istio-ingress-nlb-override.yaml

apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
spec:
  components:
    ingressGateways:
      - name: istio-ingressgateway
        enabled: true
        k8s:
          serviceAnnotations:
            service.beta.kubernetes.io/ncloud-load-balancer-layer-type: "nlb"

수정된 manifest 파일로 배포하면, NLB와 연결된 istio-ingressgateway 가 생성된다. 

istioctl install --kubeconfig /root/kubecfg/kconfig-02.yaml -f istio-ingress-nlb-override.yaml

설치한 istio 를 istioctl 로 삭제할 때는 이렇게!

istioctl x uninstall --purge --kubeconfig /root/kubecfg/kconfig-01.yaml
반응형