쿠버네티스를 시작하면 당황스러운게 yaml파일인데 기본 틀은 생성을 하거나 yaml을 작성하지 않고 기본적인 설정은 command으로 실행을 할 수 있습니다.
기본적인 command를 알려드리도록 할게요. kubectl get ,desribe, log, exec등은 다음 기회에 하고
CKA에 필요한 기본적인 생성에 필요한 것들부터 오늘은 시작합니다.
pod 생성
#kubectl run --image=nginx nginx
// 파드를 생성하기 이미지 nginx 파드명 nginx
//kubectl get po 로 확인해봅니다
추가적인 옵션은
-n [namespace] : 네임스페이스 지정
-command [명령어] : 컨테이너에 명령어 실행
-env [환경변수] : 컨테이너에 환경변수 설정
-ㅣ [라벨] : 라벨 지정
확인
kubectl get po
Deployment
#kubectl create deploy --image nginx nginx
// 디플로이먼트는 create 명령어로 생성할 수 있으며 pod 이 외에 오브젝트(pv,pvc,role,clusterrole,ns,sa등)들은 create를 통해 생성됩니다. kubectl create -h 로 확인
추가적인 옵션
-n [namespace] : 네임스페이스 지정
-command [명령어] : 컨테이너에 명령어 실행
-env [환경변수] : 컨테이너에 환경변수 설정
-ㅣ [라벨] : 라벨 지정
--replica [number]
pod와 동일합니다. 짜피 디플로이가 생성되지만 결국엔 파드로 떨어지기 때문에 같다고 볼 수 있습니다. 다른 점은 replica값을 받는다는 것인데 해당 값에 따라 pod의 수를 유지시켜줍니다.
*파드는 edit가 되지 않습니다. 만약 수정이 필요하면
#kubectl get po [pod_name] -o yaml > pod.yaml
위 처럼 yaml로 저장 후 수정하여 apply를 해주시면 됩니다.
하지만 디플로이먼트는 파드를 수정하지 않고 deployment를 edit해주면 되기 때문에 파드수정과 다릅니다. 수정 후엔 이전 파드들은 삭제되고 수정된 파드들로 수정됍니다.
*추가적인 파드를 생성하는 오프젝트중에 replicaset, statefulset 등은 Deployment의 yaml값에 kind부분만 원하시는 이름으로 수정해주시면 생성가능하니 걱정안하셔도 됩니다.
**만약 생성은 필요없고 yaml파일이 필요하다 할 때, 요구사항에 맞는 알맞는 옵션이 있습니다.
옵션
--dry-run=client -o yaml
run,create명령어 뒤에 해당 옵션을 넣어주게되면 생성은 되지않지만 yaml로 보여지되어 파일로 떨어지게하면 편합니다.
'클라우드 > Kubernetes' 카테고리의 다른 글
[kubernetes] 모니터링 메트릭 서버 (0) | 2021.02.05 |
---|---|
[kubernetes] crio systemd 문제 (1) | 2021.02.05 |
[kubernetes] 쿠버네티스 트러블슈팅( 워커노드 오류 시 확인) (3) | 2020.12.10 |
[kubernetes] 쿠버네티스 트러블슈팅( 마스터, 컨트롤 플레인 오류 시 확인) (0) | 2020.12.10 |
쿠버네티스 ) Jsonpath / CLI로 정보출력하기 (0) | 2020.06.24 |