쿠베르네트스 배우기 - 제1부분: 도론

이 글은 쿠베르네트스 시리즈의 첫 부분이다.이 책은 일련의 강좌가 아니라 쿠베르네트의 편곡 관련 개념과 도구를 배우는 과정에서의 정기 일지이다.

장치


내가 그것을 관리하는 것이 아니라 Kubernetes를 어떻게 사용하는지 배우려고 할 때, 나는 구글 클라우드 플랫폼에 Kubernetes 그룹을 만들고 거기에서 일을 시작했다.따라서, 이 시리즈에서, 나는 Kubernetes 그룹의 설치와 설정을 토론하지 않을 것이다.GCP Kubernetes 클러스터를 사용하는 방법에 대한 자세한 내용을 보려면 here을 클릭하십시오.

첫째: 개념


한 가지는 항상 내가 새로운 기술이나 도구를 더 잘 이해하고 배우는 데 도움을 줄 수 있다. 그것은 바로 도구나 기술의 용도, 그 용도, 그리고 개념을 정확하게 이해하는 것이다.
기본 개념을 이해할 수 있도록 하는 것은 배운 도구/기술에 대한 지식을 향상시키는 데 큰 도움이 된다.
그럼 쿠베르네트스가 무엇인지 알아보는 것부터 시작하자.

쿠베르네트스


Kubernetes는 하나의 노드를 뛰어넘어 용기화 프로그램을 관리할 수 있는 편집 도구입니다.그것들을 신속하게 운행하는 메커니즘을 제공할 뿐만 아니라, 그것들에 대한 접근을 어떻게 갱신하고 배치하며 제공하는지도 제공한다.

Pod: 쿠베르네트스 우주의 원자



pod는 Kubernetes 그룹에서 가장 작은 단원으로 같은 격리 실행 환경에서 실행되는 프로그램 용기와 볼륨의 집합을 표시합니다.동일한 Pod의 각 컨테이너는 동일한 IP 주소, 네임스페이스 및 스토리지를 공유합니다.
비록 나는pod를 용기의 집합이라고 묘사하지만, 가장 흔히 볼 수 있는 모델은 모든pod에 용기가 있다는 것이다.만약 네가 심사숙고한 후에 행동할 필요가 있다면, 여러 용기를 같은 용기에 넣고 자신에게 물어봐라

Will these containers work properly if they land on different machines?


만약 답이'아니야'라면, 너는 확실히 이 용기들을 같은 콩꼬투리에 넣어야 한다. 그렇지 않으면 이렇게 하지 마라.

쿠베트: 기초


진일보한 토론을 하기 전에kubectl(Kubernetes 명령행 도구)의 일부 기본 기능을 살펴보자.

버전 및 상태


kubectl 및 Kubernetes가 제대로 작동하는지 확인하려면 다음을 실행할 수 있습니다.
kubectl version
Kubernetes 클러스터와 클라이언트 버전이 나열된 아래 그림을 보실 수 있습니다.

또한 다음과 같은 방법으로 Kubernetes 클러스터 주요 구성 요소의 상태를 확인할 수 있습니다.
kubectl get componentstatuses
이와 유사한 출력을 제공합니다.

노트


Kubernetes 클러스터를 구성하고 작업 계획을 통과할 수 있는 노드에 대한 정보를 얻으려면 다음 명령을 실행합니다.
kubectl get nodes
다음 그림에서 보듯이, 이 명령은 집단의 각 노드에 대한 기본 정보를 포함하는 목록을 제공합니다.앞서 말씀드린 바와 같이 제 집단은 구글 클라우드 플랫폼에 위치하기 때문에 귀하의 설정(로컬 집단 또는 다른 클라우드 공급자의 집단)에 따라 출력이 약간 다를 수 있습니다.

콩꼬투리


이제 콩꼬투리를 빠르게 보여드리기 위해 다음과 같은 방법으로 콩꼬투리를 만듭니다.
kubectl run kubernetes-hello-world --image=paulbouwer/hello-kubernetes:1.9 --port=8080
주의해 주십시오. kubectl run은 일을 하는 이상적인 방식이 아닙니다. 그러나 이 예를 위해서 우리는 이렇게 합시다.다음 글에서 우리는 자원을 정의하는 정확한 방식 (성명식 방식) 을 탐색할 것이다.이와 유사한 출력이 표시되어야 합니다.

지금 만약 당신이 달리기를 한다면:
kubectl get pods
다음 출력을 얻을 것입니다. kubectl run 명령으로 만든pod를 볼 수 있습니다.

다음과 같이 describelogs 등의 추가 명령을 사용하여 자세한 내용을 확인할 수도 있습니다.
kubectl describe pods kubernetes-hello-world
kubectl logs kubernetes-hello-world
첫 번째는 다음과 같이 지정된 pod에 대한 자세한 설명을 제공합니다.
Name:         kubernetes-hello-world
Namespace:    default
Priority:     0
Node:         gke-kuar-cluster-default-pool-41051aa0-hs4q/10.138.15.194
Start Time:   Thu, 11 Mar 2021 17:44:41 +0000
Labels:       run=kubernetes-hello-world
Annotations:  <none>
Status:       Running
IP:           10.96.14.3
IPs:
  IP:  10.96.14.3
Containers:
  kubernetes-hello-world:
    Container ID:   docker://db09b9c745c03f3e757f1f386f5df8e04e48faaace587cfa72ed1f3e6a751300
    Image:          paulbouwer/hello-kubernetes:1.9
    Image ID:       docker-pullable://paulbouwer/hello-kubernetes@sha256:be6b5ba3abdca6e01689e0d1d27b41410fb5bf5793da407108a89ef355f362f0
    Port:           8080/TCP
    Host Port:      0/TCP
    State:          Running
      Started:      Thu, 11 Mar 2021 17:44:50 +0000
    Ready:          True
    Restart Count:  0
    Environment:    <none>
    Mounts:
      /var/run/secrets/kubernetes.io/serviceaccount from default-token-dzc9f (ro)
Conditions:
  Type              Status
  Initialized       True 
  Ready             True 
  ContainersReady   True 
  PodScheduled      True 
Volumes:
  default-token-dzc9f:
    Type:        Secret (a volume populated by a Secret)
    SecretName:  default-token-dzc9f
    Optional:    false
QoS Class:       BestEffort
Node-Selectors:  <none>
Tolerations:     node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
                 node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
Events:
  Type    Reason     Age   From               Message
  ----    ------     ----  ----               -------
  Normal  Scheduled  23m   default-scheduler  Successfully assigned default/kubernetes-hello-world to gke-kuar-cluster-default-pool-41051aa0-hs4q
  Normal  Pulling    23m   kubelet            Pulling image "paulbouwer/hello-kubernetes:1.9"
  Normal  Pulled     23m   kubelet            Successfully pulled image "paulbouwer/hello-kubernetes:1.9"
  Normal  Created    23m   kubelet            Created container kubernetes-hello-world
  Normal  Started    23m   kubelet            Started container kubernetes-hello-world
두 번째 옵션은 실행 중인 용기와 관련된 로그를 제공합니다.이러한 디버그와 검사 방법은 Kubernetes의 모든 사용 가능한 자원 (POD, 배치, 서비스 등) 에서 사용할 수 있습니다.
로그를 제외하고 디버그 응용 프로그램의 마지막 방법은 exec의 실행 용기를 검사하고 상호작용하는 것입니다.
kubectl exec -it kubernetes-hello-world -- sh
다음 그림에서 이러한 상호 작용의 예를 볼 수 있습니다.

마지막으로 생성된pod를 삭제하려면 다음을 실행하십시오.

만약 네가 나의 설명을 좋아한다면, 너는 나를 따라와도 된다. 나는 앞으로 몇 주 동안 버전 시리즈의 아래 부분을 출판할 것이다.
클릭하여 다음 부분으로 들어갑니다.

좋은 웹페이지 즐겨찾기