1.1.3.2 로컬 환경에서 클러스터 연결하기
OKE 클러스터 접속을 위해서는 #1. OCI CLI 설치 및 인증 설정, #2. kubectl 설치 및 kubeconfig 파일 생성의 작업이 필요합니다.
OCI CLI 설치 및 환경 구성
OCI CLI 설치
공식 문서 또는 아래 문서를 참고하여 OCI OCI를 설치합니다.
Oracle Linux 기준 예시
-
설치
bash -c "$(curl -L https://raw.githubusercontent.com/oracle/oci-cli/master/scripts/install/install.sh)"
-
설치 확인
oci --version
OCI CLI Config File설정
아래 문서를 참고하여 Config File을 설정합니다.
연결 확인
-
OCI CLI를 설정한 로컬환경에서 간단한 명령인
oci os ns get
을 실행하여 연결 확인$ oci os ns get { "data": "cnxxxxxxxxgq" }
kubectl CLI 설치 및 환경 구성
kubectl CLI 설치
공식 문서를 참고하여 kubectl OCI를 설치합니다.
Linux 기준 예시
-
설치
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl" sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
kubeconfig 파일 생성하기
-
생성한 OKE 클러스터 상세 페이지에서 Access Cluster를 클릭합니다.
-
Local Access 를 클릭합니다.
-
PUBLIC_ENDPOINT
Kubernetes API 접근을 Public IP로 접근할 때 사용합니다. OKE 클러스터 생성시 Kubernetes API에 Public IP를 부여한 경우에 사용 가능한 방법입니다.
Cloud Shell에서 사용한 것과 동일합니다.
-
PRIVATE_ENDPOINT
Kubernetes API 접근을 Private IP로 접근할 때 사용합니다. PRIVATE_ENDPOINT, 즉 Private IP로 접근을 해야 하므로, 내부 IP로 접근이 가능한 위치에서 수행할 때 사용합니다.
- bastion host는 외부에서 SSH로 접근 가능하게 22 포트 오픈이 필요하며, 내부적으로는 OKE 클러스터의 Kubernetes API 및 Worker Nodes 들에 접근이 가능해야 합니다.
- kubeconfig 파일 생성 및 클러스터에 접속 확인
[opc@bastion-host ~]$ oci ce cluster create-kubeconfig --cluster-id ocid1.cluster.oc1.ap-chuncheon-1.aaaaaaaaq4ltd357todnpr2xqi5lu2orcp26jrdt4lz573ytdc4vz7x3dqla --file $HOME/.kube/config --region ap-chuncheon-1 --token-version 2.0.0 --kube-endpoint PRIVATE_ENDPOINT New config written to the Kubeconfig file /home/opc/.kube/config [opc@bastion-host ~]$ kubectl cluster-info Kubernetes control plane is running at https://10.0.0.4:6443 CoreDNS is running at https://10.0.0.4:6443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'. [opc@bastion-host ~]$
-
kubectl로 접속이 되는 것을 확인했습니다. 이제 kubectl로 일반적인 쿠버네티스를 명령을 수행하여 사용하면 됩니다.
앱 배포해보기
-
가장 흔한 형태인 Public Container Registry인 Docker Hub에서 이미지를 가져와서 OKE 클러스터에 배포를 해봅니다.
kubectl create deployment nginx-docker-hub --image=nginx:latest
-
배포 결과를 확인해보면 정상적으로 배포된 것을 알 수 있습니다.
$ kubectl create deployment nginx-docker-hub --image=nginx:latest deployment.apps/nginx-docker-hub created $ kubectl get all NAME READY STATUS RESTARTS AGE pod/nginx-docker-hub-5bfd857f89-9rh8q 1/1 Running 0 31s NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/kubernetes ClusterIP 10.96.0.1 <none> 443/TCP,12250/TCP 80m NAME READY UP-TO-DATE AVAILABLE AGE deployment.apps/nginx-docker-hub 1/1 1 1 31s NAME DESIRED CURRENT READY AGE replicaset.apps/nginx-docker-hub-5bfd857f89 1 1 1 31s
이 글은 개인으로서, 개인의 시간을 할애하여 작성된 글입니다. 글의 내용에 오류가 있을 수 있으며, 글 속의 의견은 개인적인 의견입니다.