소프트웨어 아키텍처/Kubernetes34 [Kubernetes] 1-14. 클러스터 정보 확인하기 이번에는 이미 구성된 k8s 클러스터에 대하여 다음의 정보를 확인해본다. 사용 가능(available)한 마스터 노드의 수 사용 가능(available)한 워커 노드의 수 클러스터의 서비스 CIDR 구성된 CNI 플러그인과 해당 플러그인의 구성파일 위치 특정 워커노드에서 구동되는 정적 파드(static pods) 의 접미사(suffix) 확인 1. 사용 가능한 마스터 노드와 워커 노드의 수를 확인하기 위해 Ready 상태인 노드를 확인한다. kubectl get node NAME STATUS ROLES AGE VERSION master1 Ready master 27h v1.23.1 worker1 Ready 27h v1.23.1 worker2 Ready 27h v1.23.1 2-1. 다음으로 클러스터의 서.. 2022. 5. 6. [Kubernetes] 1-13. 파드 내부 컨테이너 간의 볼륨 공유 이번에는 하나의 파드 안에 있는 여러개의 컨테이너들이 서로 볼륨(데이터) 공간을 공유하는 실습을 수행한다. 상세 조건은 다음과 같다. Name : test-multi-container Namespace : test-namespace 파드 내부 개별 Container 별 조건 Container 1 Name : c1 image : nginx:1.19.3 수행 : 구동 시 파드 내 환경 변수 MY_NODE_NAME 에 파드가 구동되는 노드 이름을 저장 Container 2 Name : c2 image : busybox:1.3 수행 : 매 1초마다 date 명령의 결과를 /공유볼륨경로/date.log 에 쓰기 수행 Container 3 Name : c3 image : busybox:1.3 수행 : tail 명령.. 2022. 5. 6. [Kubernetes] 1-12. Deployment 구동해보기 다음의 조건을 만족하는 deployment 를 클러스터에 배포해본다. Namespace : test-namespace Name : test-dp Labels : hello=world (pod에도 필요) Replicas : 3 다음의 2개 컨테이너를 포함 Container1 image : nginx:1.19.3 Container2 image : tomcat:9 Deployment 의 각 파드는 각 노드에 하나만 배포 (노드가 2개 있을 경우, 3개의 파드가 모두 구동되지 않고 2개의 파드만 구동되며, 노드가 추가 될 경우 해당 노드에 3번째 파드가 구동되게 구성) Deployment 가 생성하는 파드가 같은 노드에 2개 이상 배포되는 경우를 방지하기 위하여 다음의 2가지 방법을 사용할 수 있다. PodAn.. 2022. 5. 6. [Kubernetes] 1-11. Daemonset 구동해보기 다음의 조건을 만족하는 daemonset을 클러스터에 배포해본다. Namespace : test-namespace Name : test-ds Labels : hello=world UUID : 423f6a0b-9dj3-kjd8-fj39-e09dc078f862 Resource quota Request CPU : 10 Millicore Memory : 10 Mib Master / Worker 노드 모두 구동 하단과 같이 daemonset yaml 파일을 준비한다. (별도의 샘플이 없을 경우 'kubectl create deployment' 명령어를 사용하여 deployment yaml 파일을 획득한 후에 양식을 변경하는 방법도 가능하다.) apiVersion: apps/v1 kind: DaemonSet met.. 2022. 5. 3. [Kubernetes] 1-10. RBAC 적용해보기 이번에는 새로운 ServiceAccount(이하 SA)과 Role을 만들고 RoleBinding을 통하여 매핑하여 해당 SA 가 제한된 기능만을 수행할 수 있는지를 확인한다. 먼저 Service Account를 생성한다. kubectl -n test-namespace create sa test-sa serviceaccount/test-sa created 이후에 secret 과 configmap 을 생성만 할 수 있는 Role을 생성한다. kubectl -n test-registry create role test-role \ --verb=create \ --resource=secret \ --resource=configmap 위 kubectl create 명령어와 동일하게 하단의 yaml 파일을 apply.. 2022. 5. 3. [Kubernetes] 1-09. Scheduler 역할 확인하기 클러스터의 노드를 확인한 후에 구동되어 있는 스케쥴러를 삭제한다. ### 클러스터 구성 확인 root@localhost:~# kubectl get node NAME STATUS ROLES AGE VERSION master Ready master 26h v1.23.1 worker Ready 26h v1.23.1 ### 마스터 노드 접속 하여 스케쥴러 파드 확인 ssh master root@localhost:~# kubectl -n kube-system get pod | grep schedule kube-scheduler-master 1/1 Running 0 6s ### 스케쥴러 파드의 static pod manifest를 이동하여 파드를 제거 처리 root@localhost:~# cd /etc/kubern.. 2022. 5. 3. 이전 1 2 3 4 5 6 다음