1. Pod Scheduling : NodeSelector
$ kubectl label nodes <노드 이름><레이블 키>=<레이블 값>
# node Label 설정 예시
$ kubectl label nodes node1.example.com gpu=true
# Label에 gpu가 있는 node들을 조회
$ kubectl get nodes -L gpu
※ 문제1: Pod Scheduling
-
다음의 조건으로 pod를 생성하세요
- Name: eshop-store
- Image: nginx
- Node selector: disktype=ssd
- 어느 node에서 disktype이 ssd인지 확인(k8s-worker1에 존재)

- pod 이름이 eshop-store이고 Image가 nginx인 yaml 파일 생성 및 vi 에디터 실행

- vi 에디터에서 yaml 파일 수정(Node selector 추가)

- 수정한 yaml 파일 apply

- eshop-store인 pod 확인(k8s-worker1에 존재하는 것을 확인)

2. ConfigMap
$ kubectl create configmap NAME [--from-file=source][--from-literal=key1=value1]
※ 문제2: ConfigMap으로 환경변수 전달
(참고 URL : https://kubernetes.io/docs/tasks/configure-pod-container/configure-pod-configmap/#define-container-environment-variables-using-configmap-data)
- 작업 클러스터 확인

- ConfigMap 생성 후 ConfigMap 생성 확인

- eshop-configmap라는 이름의 nginx 컨테이너 생성 yaml 파일을 생성

- ConfigMap 참조하여 yaml 파일 수정 및 등록

- yaml 파일 apply 후 pod 생성 확인

- 이름이 eshop-configmap인 pod의 콘솔로 접속하여 환경변수 할당 된 부분 확인

3. Kubernetes Secret
-
Secret : 컨테이너가 사용하는 password, auth token, ssh key와 같은 중요한 정보를
저장하고 민감한 구성정보를 base64로 인코딩해서 한 곳에 모아서 처리
-
민감하지 않은 일반 설정파일 configMap을 사용하고 민감한 데이터는 secret을 사용
-
Secret 생성 예시
$ kubectl create secret generic <Secret 이름> \
--from-literal=PASSWORD=<PASSWORD 입력> \
--from-literal=SCORE=<SCORE 값>
※ 문제3: Create a Kubernetes secret
(참고 URL : https://kubernetes.io/docs/concepts/configuration/secret/#using-secrets)
-
작업 클러스터 : k8s
- Secret Name : super-secret
- Password: bob
-
Create a pod named pod-secrets-via-file, using the redis Image, which mounts a secret named super-secret at /secrets.
-
Create a second pod named pod-secrets-via-env, using the redis Image, which exports password as CONFIDENTIAL
- 작업 클러스터 확인

- secret 생성 후 확인

- 이름이 pod-secrets-via-file인 yaml 파일 생성 및 vi 편집 실행

- volumeMounts와 volumes 옵션 추가하여 이름이 pod-secrets-via-file인 yaml 파일 수정 및 저장

- 이름이 pod-secrets-via-file인 yaml 파일 apply 후 확인

- 이름이 pod-secrets-via-file인 Pod 접속 및 Password가 잘 Mount 되었는지 확인

- 이름이 pod-secrets-via-env인 yaml 파일 생성 및 vi 편집 실행

- 만들었던 secret에 참조한 값을 추가하여 이름이 pod-secret-via-env인 yaml 파일 수정 및 저장

- 이름이 pod-secret-via-env인 yaml 파일 apply 후 확인

- 이름이 pod-secrets-via-env인 Pod 접속 후 환경설정 조회하여 확인
