Kubernetes-Kubectl 명령

KubectlKubernetes 클러스터를 제어합니다. 설정이 완료되면 모든 컴퓨터의 워크 스테이션에서 실행되는 Kubernetes의 핵심 구성 요소 중 하나입니다. 클러스터의 노드를 관리하는 기능이 있습니다.

Kubectl명령은 Kubernetes 개체 및 클러스터와 상호 작용하고 관리하는 데 사용됩니다. 이 장에서는 kubectl을 통해 Kubernetes에서 사용되는 몇 가지 명령에 대해 설명합니다.

kubectl annotate − 리소스에 대한 주석을 업데이트합니다.

$kubectl annotate [--overwrite] (-f FILENAME | TYPE NAME) KEY_1=VAL_1 ...
KEY_N = VAL_N [--resource-version = version]

예를 들면

kubectl annotate pods tomcat description = 'my frontend'

kubectl api-versions − 클러스터에서 지원되는 API 버전을 출력합니다.

$ kubectl api-version;

kubectl apply − 파일 또는 표준 입력으로 리소스를 설정하는 기능이 있습니다.

$ kubectl apply –f <filename>

kubectl attach − 실행중인 컨테이너에 물건을 부착합니다.

$ kubectl attach <pod> –c <container>
$ kubectl attach 123456-7890 -c tomcat-conatiner

kubectl autoscale − Deployment, replica set, Replication Controller 등 정의 된 pod를 자동 확장하는 데 사용됩니다.

$ kubectl autoscale (-f FILENAME | TYPE NAME | TYPE/NAME) [--min = MINPODS] --
max = MAXPODS [--cpu-percent = CPU] [flags]
$ kubectl autoscale deployment foo --min = 2 --max = 10

kubectl cluster-info − 클러스터 정보를 표시합니다.

$ kubectl cluster-info

kubectl cluster-info dump − 디버깅 및 진단을 위해 클러스터 관련 정보를 덤프합니다.

$ kubectl cluster-info dump
$ kubectl cluster-info dump --output-directory = /path/to/cluster-state

kubectl config − kubeconfig 파일을 수정합니다.

$ kubectl config <SUBCOMMAD>
$ kubectl config –-kubeconfig <String of File name>

kubectl config current-context − 현재 컨텍스트를 표시합니다.

$ kubectl config current-context
#deploys the current context

kubectl config delete-cluster − kubeconfig에서 지정된 클러스터를 삭제합니다.

$ kubectl config delete-cluster <Cluster Name>

kubectl config delete-context − kubeconfig에서 지정된 컨텍스트를 삭제합니다.

$ kubectl config delete-context <Context Name>

kubectl config get-clusters − kubeconfig에 정의 된 클러스터를 표시합니다.

$ kubectl config get-cluster
$ kubectl config get-cluster <Cluser Name>

kubectl config get-contexts − 하나 또는 여러 컨텍스트를 설명합니다.

$ kubectl config get-context <Context Name>

kubectl config set-cluster − Kubernetes에서 클러스터 항목을 설정합니다.

$ kubectl config set-cluster NAME [--server = server] [--certificateauthority =
path/to/certificate/authority] [--insecure-skip-tls-verify = true]

kubectl config set-context − kubernetes 진입 점에서 컨텍스트 항목을 설정합니다.

$ kubectl config set-context NAME [--cluster = cluster_nickname] [--
user = user_nickname] [--namespace = namespace]
$ kubectl config set-context prod –user = vipin-mishra

kubectl config set-credentials − kubeconfig에서 사용자 항목을 설정합니다.

$ kubectl config set-credentials cluster-admin --username = vipin --
password = uXFGweU9l35qcif

kubectl config set − kubeconfig 파일에 개별 값을 설정합니다.

$ kubectl config set PROPERTY_NAME PROPERTY_VALUE

kubectl config unset − kubectl에서 특정 구성 요소를 설정 해제합니다.

$ kubectl config unset PROPERTY_NAME PROPERTY_VALUE

kubectl config use-context − kubectl 파일에 현재 컨텍스트를 설정합니다.

$ kubectl config use-context <Context Name>

kubectl config view

$ kubectl config view
$ kubectl config view –o jsonpath='{.users[?(@.name == "e2e")].user.password}'

kubectl cp − 컨테이너간에 파일과 디렉토리를 복사합니다.

$ kubectl cp <Files from source> <Files to Destinatiion>
$ kubectl cp /tmp/foo <some-pod>:/tmp/bar -c <specific-container>

kubectl create− 또는 stdin의 파일 이름으로 리소스를 생성합니다. 이를 위해 JSON 또는 YAML 형식이 허용됩니다.

$ kubectl create –f <File Name>
$ cat <file name> | kubectl create –f -

같은 방식으로, 우리는 create 함께 명령 kubectl.

  • deployment
  • namespace
  • quota
  • 비밀 도커 레지스트리
  • secret
  • 비밀 일반
  • 비밀 TLS
  • serviceaccount
  • 서비스 clusterip
  • 서비스로드 밸런서
  • 서비스 노드 포트

kubectl delete − 파일 이름, stdin, 리소스 및 이름별로 리소스를 삭제합니다.

$ kubectl delete –f ([-f FILENAME] | TYPE [(NAME | -l label | --all)])

kubectl describe− kubernetes의 특정 리소스를 설명합니다. 리소스 또는 리소스 그룹의 세부 정보를 표시합니다.

$ kubectl describe <type> <type name>
$ kubectl describe pod tomcat

kubectl drain− 유지 보수 목적으로 노드를 드레인하는 데 사용됩니다. 유지 관리를 위해 노드를 준비합니다. 이렇게하면 노드를 사용할 수없는 것으로 표시하므로 생성 될 새 컨테이너가 할당되지 않습니다.

$ kubectl drain tomcat –force

kubectl edit− 서버의 리소스를 종료하는 데 사용됩니다. 이를 통해 명령 줄 도구를 통해받을 수있는 리소스를 직접 편집 할 수 있습니다.

$ kubectl edit <Resource/Name | File Name)
Ex.
$ kubectl edit rc/tomcat

kubectl exec − 이것은 컨테이너에서 명령을 실행하는 데 도움이됩니다.

$ kubectl exec POD <-c CONTAINER > -- COMMAND < args...>
$ kubectl exec tomcat 123-5-456 date

kubectl expose− 포드, 복제 컨트롤러 및 서비스와 같은 Kubernetes 객체를 새로운 Kubernetes 서비스로 노출하는 데 사용됩니다. 실행중인 컨테이너를 통해 또는yaml 파일.

$ kubectl expose (-f FILENAME | TYPE NAME) [--port=port] [--protocol = TCP|UDP]
[--target-port = number-or-name] [--name = name] [--external-ip = external-ip-ofservice]
[--type = type]
$ kubectl expose rc tomcat –-port=80 –target-port = 30000
$ kubectl expose –f tomcat.yaml –port = 80 –target-port =

kubectl get −이 명령은 Kubernetes 리소스에 대한 클러스터의 데이터를 가져올 수 있습니다.

$ kubectl get [(-o|--output=)json|yaml|wide|custom-columns=...|custom-columnsfile=...|
go-template=...|go-template-file=...|jsonpath=...|jsonpath-file=...]
(TYPE [NAME | -l label] | TYPE/NAME ...) [flags]

예를 들면

$ kubectl get pod <pod name>
$ kubectl get service <Service name>

kubectl logs− 그들은 포드에서 컨테이너의 통나무를 얻는 데 사용됩니다. 로그를 인쇄하면 포드에서 컨테이너 이름을 정의 할 수 있습니다. POD에 컨테이너가 하나만있는 경우 이름을 정의 할 필요가 없습니다.

$ kubectl logs [-f] [-p] POD [-c CONTAINER]
Example
$ kubectl logs tomcat.
$ kubectl logs –p –c tomcat.8

kubectl port-forward − 하나 이상의 로컬 포트를 포드로 전달하는 데 사용됩니다.

$ kubectl port-forward POD [LOCAL_PORT:]REMOTE_PORT
[...[LOCAL_PORT_N:]REMOTE_PORT_N]
$ kubectl port-forward tomcat 3000 4000
$ kubectl port-forward tomcat 3000:5000

kubectl replace − 파일 이름으로 리소스를 대체하거나 stdin.

$ kubectl replace -f FILENAME
$ kubectl replace –f tomcat.yml
$ cat tomcat.yml | kubectl replace –f -

kubectl rolling-update− 복제 컨트롤러에서 롤링 업데이트를 수행합니다. 한 번에 POD를 업데이트하여 지정된 복제 컨트롤러를 새 복제 컨트롤러로 교체합니다.

$ kubectl rolling-update OLD_CONTROLLER_NAME ([NEW_CONTROLLER_NAME] --
image = NEW_CONTAINER_IMAGE | -f NEW_CONTROLLER_SPEC)
$ kubectl rolling-update frontend-v1 –f freontend-v2.yaml

kubectl rollout − 배포 롤아웃을 관리 할 수 ​​있습니다.

$ Kubectl rollout <Sub Command>
$ kubectl rollout undo deployment/tomcat

위와 별도로 다음과 같은 롤아웃을 사용하여 여러 작업을 수행 할 수 있습니다.

  • 출시 내역
  • 출시 일시 중지
  • 출시 재개
  • 출시 상태
  • 롤아웃 실행 취소

kubectl run − Run 명령에는 Kubernetes 클러스터에서 이미지를 실행하는 기능이 있습니다.

$ kubectl run NAME --image = image [--env = "key = value"] [--port = port] [--
replicas = replicas] [--dry-run = bool] [--overrides = inline-json] [--command] --
[COMMAND] [args...]
$ kubectl run tomcat --image = tomcat:7.0
$ kubectl run tomcat –-image = tomcat:7.0 –port = 5000

kubectl scale − Kubernetes 배포, ReplicaSet, 복제 컨트롤러 또는 작업의 크기를 확장합니다.

$ kubectl scale [--resource-version = version] [--current-replicas = count] --
replicas = COUNT (-f FILENAME | TYPE NAME )
$ kubectl scale –-replica = 3 rs/tomcat
$ kubectl scale –replica = 3 tomcat.yaml

kubectl set image − 포드 템플릿의 이미지를 업데이트합니다.

$ kubectl set image (-f FILENAME | TYPE NAME)
CONTAINER_NAME_1 = CONTAINER_IMAGE_1 ... CONTAINER_NAME_N = CONTAINER_IMAGE_N
$ kubectl set image deployment/tomcat busybox = busybox ngnix = ngnix:1.9.1
$ kubectl set image deployments, rc tomcat = tomcat6.0 --all

kubectl set resources− 자원의 내용을 설정하는데 사용됩니다. 포드 템플릿을 사용하여 개체에 대한 리소스 / 제한을 업데이트합니다.

$ kubectl set resources (-f FILENAME | TYPE NAME) ([--limits = LIMITS & --
requests = REQUESTS]
$ kubectl set resources deployment tomcat -c = tomcat --
limits = cpu = 200m,memory = 512Mi

kubectl top node− CPU / 메모리 / 스토리지 사용량을 표시합니다. top 명령을 사용하면 노드의 리소스 소비를 볼 수 있습니다.

$ kubectl top node [node Name]

포드에서도 동일한 명령을 사용할 수 있습니다.