자격증/CKA

[CKA] Udemy 45. 시험 Tips - Imperative Commands with Kubectl

14ben 2024. 7. 4. 00:13
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