Developet/Kubernetes

kubectl use rule

KSerin 2021. 11. 7. 14:09
728x90

출처 : https://kubernetes.io/ko/docs/reference/kubectl/conventions/

 

재사용 가능한 스크립트에서 kubectl 사용

스크립트의 안정적인 출력을 위해서

  • -o name-o json-o yaml-o go-template 혹은 -o jsonpath 같은 머신 지향(machine-oriented) 출력 양식 하나를 요청한다.
  • 예를 들어 jobs.v1.batch/myjob 같이 전체 버전을 사용한다. 이를 통해 kubectl 시간이 지남에 따라 변경될 있는 기본 버전을 사용하지 않도록 한다.
  • 문맥, 설정 또는 기타 암묵적 상태에 의존하지 않는다.

모범 사례

kubectl run

kubectl run으로 infrastructure as code 충족시키기 위해서

  • 버전이 명시된 태그로 이미지를 태그하고 태그를 새로운 버전으로 이동하지 않는다. 예를 들어:latest 아닌 :v1234v1.2.3r03062016-1-4 사용한다(자세한 정보는 구성 모범 사례 참고한다).
  • 많은 파라미터가 적용된 이미지를 위한 스크립트를 작성한다.
  • 필요하지만 kubectl run 플래그를 통해 표현할 없는 기능은 구성 파일을 소스 코드 버전 관리 시스템에 넣어서 전환한다.

--dry-run 플래그를 사용하여 실제로 제출하지 않고 클러스터로 보낼 오브젝트를 미리 있다.

참고: 모든 kubectl run 생성기(generator) 이상 사용 없다. 생성기 목록  사용 방법은 쿠버네티스 v1.17 문서를 참고한다.

생성기

kubectl create --dry-run -o yaml라는 kubectl 커맨드를 통해 다음과 같은 리소스를 생성할 있다.

  • clusterrole: 클러스터롤(ClusterRole) 생성한다.
  • clusterrolebinding: 특정 클러스터롤에 대한 클러스터롤바인딩(ClusterRoleBinding) 생성한다.
  • configmap: 로컬 파일, 디렉토리 또는 문자 그대로의 값으로 컨피그맵(ConfigMap) 생성한다.
  • cronjob: 지정된 이름으로 크론잡(CronJob) 생성한다.
  • deployment: 지정된 이름으로 디플로이먼트(Deployment) 생성한다.
  • job: 지정된 이름으로 (Job) 생성한다.
  • namespace: 지정된 이름으로 네임스페이스(Namespace) 생성한다.
  • poddisruptionbudget: 지정된 이름으로 PodDisruptionBudget 생성한다.
  • priorityclass: 지정된 이름으로 프라이어리티클래스(PriorityClass) 생성한다.
  • quota: 지정된 이름으로 쿼터(Quota) 생성한다.
  • role: 단일 규칙으로 (Role) 생성한다.
  • rolebinding: 특정 또는 클러스터롤에 대한 롤바인딩(RoleBinding) 생성한다.
  • secret: 지정된 하위 커맨드를 사용하여 시크릿(Secret) 생성한다.
  • service: 지정된 하위 커맨드를 사용하여 서비스(Service) 생성한다.
  • serviceaccount: 지정된 이름으로 서비스어카운트(ServiceAccount) 생성한다.

kubectl apply

  • kubectl apply 사용해서 리소스를 생성하거나 업데이트 있다. kubectl apply 사용하여 리소스를 업데이트하는 방법에 대한 자세한 정보는 Kubectl 참고한다.

 

728x90

'Developet > Kubernetes' 카테고리의 다른 글

How to Install a MariaDB pod on kubernetes  (0) 2022.01.12
How to Install a Kubernetes Cluster on CentOS 8(쿠버네티스 설치)  (0) 2021.12.01
kubectl for docker user  (0) 2021.11.07
kubectl command  (0) 2021.11.07
kubectl Cheat Sheet  (0) 2021.11.06