728x90
인증 시험 팁 - Kubectl을 사용한 명령형 명령어
- 주로 정의 파일을 사용하는 선언형 방식을 사용할 것이지만,
- 명령형 명령어는 일회성 작업을 빠르게 수행하고 정의 템플릿을 쉽게 생성하는 데 유용할 수 있음.
- 시험 동안 시간을 절약하는 데 큰 도움이 될 수 있음.
유용한 옵션들
- --dry-run: 명령어를 테스트하려면 --dry-run=client 옵션을 사용.
- 리소스가 실제로 생성되지 않고, 명령어가 올바른지와 리소스를 생성할 수 있는지를 알려줌.
- -o yaml: 리소스 정의를 YAML 형식으로 화면에 출력
이 두 가지 옵션을 조합하여 리소스 정의 파일을 빠르게 생성한 후, 필요에 따라 수정하고 리소스를 생성할 수 있음.
POD 생성
1. NGINX Pod 생성
kubectl run nginx --image=nginx
2 POD Manifest YAML file 생성 (-o yaml)
Do not create it [--dry-run]
kubectl run nginx --image=nginx --dry-run=client -o yaml
Deployment 생성
1. Deployment 생성
kubectl create deployment --image=nginx nginx
2. Deployment YAML 파일 생성
Don't create it(--dry-run)
kubectl create deployment --image=nginx nginx --dry-run=client -o yaml
3. 4개의 레플리카를 가진 Deployment 생성
kubectl create deployment nginx --image=nginx --replicas=4
4. kubectl scale 명령어를 사용하여 Deployment 스케일링
kubectl scale deployment nginx --replicas=4
5. YAML 파일을 저장하고 수정하여 Deployment 생성
kubectl create deployment nginx --image=nginx --dry-run=client -o yaml > nginx-deployment.yaml
이후 YAML 파일을 업데이트하여 레플리카 또는 다른 필드를 수정한 후 Deployment를 생성.
Service 생성
1. redis-service 생성 (ClusterIP 타입, 포트 6379)
kubectl expose pod redis --port=6379 --name redis-service --dry-run=client -o yaml
- 자동으로 pod의 라벨을 선택자로 사용.
또는
kubectl create service clusterip redis --tcp=6379:6379 --dry-run=client -o yaml
- pod의 라벨을 선택자로 사용하지 않고 기본적으로 app=redis 선택자를 가정.
2. nginx-service 생성 (NodePort 타입, 포트 80을 30080에 노출)
kubectl expose pod nginx --type=NodePort --port=80 --name=nginx-service --dry-run=client -o yaml
- 자동으로 pod의 라벨을 선택자로 사용하지만 노드 포트를 지정할 수 없음.
- 생성 전에 정의 파일을 생성하고 수동으로 노드 포트를 입력.
또는
kubectl create service nodeport nginx --tcp=80:80 --node-port=30080 --dry-run=client -o yaml
- pod의 라벨을 선택자로 사용하지 않음.
두 명령어 모두 각각의 한계가 있음.
하나는 선택자를 지정할 수 없고,
다른 하나는 노드 포트를 지정할 수 없음.
kubectl expose 명령어를 사용하고,
노드 포트를 지정해야 할 경우 정의 파일을 생성한 후
수동으로 노드 포트를 입력한 후 서비스를 생성하는 것을 추천.
참조
728x90
'자격증 > CKA' 카테고리의 다른 글
[CKA] Udemy 56. Labels and Selectors (0) | 2024.07.09 |
---|---|
[CKA] Udemy 53. Manual Scheduling (0) | 2024.07.05 |
[CKA] Udemy 44. Imperative vs Declarative (0) | 2024.07.04 |
[CKA] Udemy 41. Namespaces (0) | 2024.07.02 |
[CKA] Udemy 38. Services - Load Balancer (0) | 2024.07.01 |