# Istio 설치
curl -L https://istio.io/downloadIstio | ISTIO_VERSION=1.27.0 sh -
# PATH 등록
cd istio-1.27.0/
export PATH="$PATH:/root/istio-1.27.0/bin"
# 설치 확인
istioctl version
위 커맨드에 따라 istioctl을 설치해주세요.
2. ACG 설정
우리가 설치하고 있는 클러스터는 VPC 폐쇄망에 있기 때문에 NAT Gateway를 통해 Istio를 설치할 수 있는데요,
NCP 쪽에서는 ACG (Access Controll Group)을 통해 Inbound와 Outbound의 IP와 포트를 제한할 수 있습니다.
기본 값으로는 istio를 설치할 수 없어 일시적으로 Inbound를 개방한 뒤 다시 닫아주는 작업을 진행할겁니다.
저희가 설정할 클러스터에 적용된 ACG를 확인해주세요.
Server 하위에 있는 ACG 메뉴로 이동해 방금 저희가 찾은 ACG를 찾아 클릭하신 뒤,
ACG 설정을 눌러주세요.
어차피 임시로 열어줄거니 모든 IP와 (0.0.0.0/0) 모든 포트를 (1-65535) 개방해주도록 하겠습니다.
ncloud_access_key_id 와ncloud_secret_access_key 를 확인하려면,
우측 상단 계정을 클릭한 뒤, 계정 관리로 이동해주세요.
다시 패스워드 입력과 2차인증을 해주세요.
(세상에서 제일 귀찮습니다...)
인증키 관리 탭으로 이동하시면 API 인증키 관리 부분이 있는데요,
저처럼 이미 있는 경우엔 해당 키를 사용해주시면 되고, 없으신 경우 신규 API 인증키 생성 버튼을 눌러 생성해주시면됩니다.
다시 커맨드 창의 vi 편집기로 돌아와 작성을 마치신 뒤,
ESC 를 눌러 입력 모드를 종료하고
: (콜론) 을 누르신 뒤 wq 를 입력하시고 엔터를 눌러주세요 (저장)
그러면 정상적으로 configure 파일이 생성됩니다
kubeconfig 생성
이제 특정 클러스터에 정보가 담겨있어 해당 클러스터에 접속할 수 있게 해주는 kubeconfig 파일을 만들어줄겁니다.
콘솔 NKS에서 클러스터를 클릭해보면 상세정보가 나오는데
괄호 안에 있는 UUID를 복사해주세요. (UUID 오른쪽에 있는 복사 버튼을 사용하셔도 됩니다)
# ncloud 디렉토리 이동
cd ~/.ncloud
# kubeconfig 파일 생성
ncp-iam-authenticator create-kubeconfig --region kr --clusterUuid <cluster-uuid> --output kubeconfig.yaml
위 코드블럭의 <cluster-uuid> 부분에 복사하신 uuid를 입력해주세요.
kubectl --kubeconfig ~/.ncloud/kubeconfig.yaml get namespaces
위 커맨드를 입력하면 방금 생성한 클러스터의 네임스페이스가 잘 나오는 것을 확인할 수 있습니다!
(번외) kubectl 설치
혹시나 kubectl이 설치되지 않아 위 커맨드가 정상적으로 작동하지 않는다면 아래대로 따라와주세요.
# kubectl 설치
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
# 실행 권한 부여
chmod +x kubectl
# 시스템 경로에 이동
sudo mv kubectl /usr/local/bin/
# 확인
kubectl version --client
위 커맨드를 순서대로 입력해주시면 됩니다.
이제 클러스터 설치가 완료되었고 kubectl로 해당 클러스터에 접근하여 관리할 수 있게 되었습니다.
여기까지 되었다면 기존에 사용하시던 방식대로 클러스터를 사용하셔도 무방하고,
다음에 이어질 ISTIO 설치와 Global DNS 연동
NCP 내의 CI/CD (source commit - source build - source deploy)까지 함꼐 연동하셔도 좋을 것 같습니다.