쿠버네티스 교육

25. Kube 교육 - 중간 점검

Jerry_이정훈 2021. 6. 16. 10:37
728x90

Q.1 원격 클러스터 관리 

172.16.236.33 서버에 접속하셔서 Root 계정으로 변경 후 /root/.kube/config 파일을 자신의 $HOME/.kube/config 파일로 복사하여 테스트 환경의 API-Server와 통신을 가능하도록 합니다.
(기존 k3s api-server와 통신을 하기 위해 신규 config 파일의 이름을 변경합니다.)

 

Q2. Namespace  생성 

테스트 환경의 K8s와 API-Server 통신이 완료되면 테스트 환경의 클러스터 자신의 이니셜로 네임스페이스를 생성합니다.

 

Output 2. 

 

Q3. Deployment 배포

자신의 이니셜로 네임스페이스를 완성하셨으면 Create 명령어를 사용하셔서 자신의 이니셜 네임스페이스에 nginx 1.20 버전의 이미지를 사용한 nginx-1-20 이름의 Deployments를 배포합니다. 단 replicas는 1로 생성합니다.

 

Output 3.

 

Q4. PV POD 연결 

현재 생성 하신 Nginx의 Access log는 stdout으로 설정 되어 있습니다. /etc/nginx/Nginx.conf 파일을  local로 copy 하셔서 설정 값을 /log/access.log 로 저장합니다. 

단, storageclass 의 openebs-hostpath를 사용하시고 volumemount를 /log 파일로 합니다.

 

Output 4. 

 

Q5. Service - NodePort 생성

Nginx service를 생성합니다. svc type은 NodePort를 사용하고 80번의 Port를 nodePort  31000 으로 설정합니다. 설정 후 외부에서 nginx 접속을 합니다.

 

Output 5.

 

Q6.  Label 및 Selector 활용

nginx-hello Deployments를 생성합니다. 이미지는 nginxdemos/hello을 사용합니다. 

label을 설정을 해서 (e.g app=test) Nginx-1-20과 nginx-hello하나의 서비스로 접근이 가능하도록 설정합니다. 하나의 서비스는 app-svc 라는 이름으로 하고 80 port (nginx) 는 30080 nodePort를 사용합니다.

 

Output 6.

 

 

Q7. ConfigMap 이용

Tomcat Deployments 를 하나 생성합니다. 이미지는 bitnami/tomcat을 사용합니다. Tomcat svc도 하나 생성합니다. Port 8080에 targetPort 8080으로 설정을 합니다.

기존 Nginx nodePort 30080으로 접속 하면 Nginx 기본 페이지가 접속됩니다. 이제 Nginx config 설정을 변경해서 30080번으로 접속 시 tomcat pod로 연동이 되어야 합니다. 

(참고사항 /etc/nginx/conf.d/default.conf 파일에서 location 내에 proxy_pass 설정을 합니다. 설정시 IP 가 아닌 svc 타입으로 설정 합니다) 

 

Output 7.



Q8. Node Affinity 설정

마지막 테스트 입니다.  Affinity 설정을 사용하셔서 Nginx가 같은 노드에 실행되지 않도록 합니다. 해당 노드는 3개로 구성되어 있으니  Replicas=4로 설정하여 각 노드에 하나씩 배포가 되고 마지막 하나의 Nginx Pod는 Pending상태로 컨테이너가 생성되지 않아야 합니다.

 

Output  8.

 

반응형