Windows에서 Docker Desktop을 사용하여 로컬 Kubernetes 클러스터 구성

This article is focused on Windows, but a similar experience is expected on Docker Desktop for Macs.



따라서 Kubernetes를 사용해 보고 싶지만 아직 클러스터가 없습니다. 좋은 소식은 Docker Desktop에 솔루션이 있다는 것입니다.

Docker Desktophere을 다운로드한 후 installation instructions을 따르면 Docker가 설치 및 구성되어 있어야 합니다.

그런 다음 Docker Desktop 애플리케이션을 열고 앱 화면의 오른쪽 모서리에 있는 작은 톱니바퀴(일명 설정)를 클릭하면 아래 이미지와 유사한 것을 찾을 수 있습니다. 이제 "Kubernetes 사용"옵션을 클릭한 다음 "적용 및 다시 시작"을 클릭하기만 하면 배포를 테스트할 수 있는 실행 가능한 단일 노드 클러스터가 있어야 합니다.



테스트 주기 사이에 "Kubernetes 클러스터 재설정"옵션을 사용하여 환경이 새 테스트를 새로 시작할 수 있도록 하는 것이 좋습니다.

이제 Docker Desktop의 일부로 이미 설치된 kubectl(Kubernetes CLI)을 사용하여 명령 프롬프트에서 클러스터에 액세스해 보십시오. 아래 줄과 비슷한 내용이 표시되어야 합니다.
kubectl describe nodes
Name:               docker-desktop
Roles:              master
Labels:             beta.kubernetes.io/arch=amd64
                    beta.kubernetes.io/os=linux
                    kubernetes.io/arch=amd64
                    kubernetes.io/hostname=docker-desktop
                    kubernetes.io/os=linux
                    node-role.kubernetes.io/master=
Annotations:        kubeadm.alpha.kubernetes.io/cri-socket: /var/run/dockershim.sock
                    node.alpha.kubernetes.io/ttl: 0
                    volumes.kubernetes.io/controller-managed-attach-detach: true
CreationTimestamp:  Wed, 24 Feb 2021 22:57:16 +0100
Taints:             <none>
Unschedulable:      false
Lease:
  HolderIdentity:  docker-desktop
  AcquireTime:     <unset>
  RenewTime:       Wed, 24 Feb 2021 23:00:06 +0100
Conditions:
  Type             Status  LastHeartbeatTime                 LastTransitionTime                Reason                       Message
  ----             ------  -----------------                 ------------------                ------                       -------
  MemoryPressure   False   Wed, 24 Feb 2021 22:59:47 +0100   Wed, 24 Feb 2021 22:57:13 +0100   KubeletHasSufficientMemory   kubelet has sufficient memory available
  DiskPressure     False   Wed, 24 Feb 2021 22:59:47 +0100   Wed, 24 Feb 2021 22:57:13 +0100   KubeletHasNoDiskPressure     kubelet has no disk pressure
  PIDPressure      False   Wed, 24 Feb 2021 22:59:47 +0100   Wed, 24 Feb 2021 22:57:13 +0100   KubeletHasSufficientPID      kubelet has sufficient PID available
  Ready            True    Wed, 24 Feb 2021 22:59:47 +0100   Wed, 24 Feb 2021 22:57:47 +0100   KubeletReady                 kubelet is posting ready status
Addresses:
  InternalIP:  192.168.65.3
  Hostname:    docker-desktop
Capacity:
  cpu:                16
  ephemeral-storage:  263174212Ki
  hugepages-2Mi:      0
  memory:             13020552Ki
  pods:               110
Allocatable:
  cpu:                16
  ephemeral-storage:  242541353378
  hugepages-2Mi:      0
  memory:             12918152Ki
  pods:               110
System Info:
  Machine ID:                 2d9be7ee-9db8-4724-8b48-c3017de7c8f7
  System UUID:                2d9be7ee-9db8-4724-8b48-c3017de7c8f7
  Boot ID:                    ffa2e5e8-8525-43fa-9a11-136d213cd56d
  Kernel Version:             5.4.72-microsoft-standard-WSL2
  OS Image:                   Docker Desktop
  Operating System:           linux
  Architecture:               amd64
  Container Runtime Version:  docker://20.10.2
  Kubelet Version:            v1.19.3
  Kube-Proxy Version:         v1.19.3
Non-terminated Pods:          (9 in total)
  Namespace                   Name                                      CPU Requests  CPU Limits  Memory Requests  Memory Limits  AGE
  ---------                   ----                                      ------------  ----------  ---------------  -------------  ---
  kube-system                 coredns-f9fd979d6-d4z9r                   100m (0%)     0 (0%)      70Mi (0%)        170Mi (1%)     2m42s
  kube-system                 coredns-f9fd979d6-w5spm                   100m (0%)     0 (0%)      70Mi (0%)        170Mi (1%)     2m42s
  kube-system                 etcd-docker-desktop                       0 (0%)        0 (0%)      0 (0%)           0 (0%)         110s
  kube-system                 kube-apiserver-docker-desktop             250m (1%)     0 (0%)      0 (0%)           0 (0%)         100s
  kube-system                 kube-controller-manager-docker-desktop    200m (1%)     0 (0%)      0 (0%)           0 (0%)         86s
  kube-system                 kube-proxy-6hj7l                          0 (0%)        0 (0%)      0 (0%)           0 (0%)         2m42s
  kube-system                 kube-scheduler-docker-desktop             100m (0%)     0 (0%)      0 (0%)           0 (0%)         98s
  kube-system                 storage-provisioner                       0 (0%)        0 (0%)      0 (0%)           0 (0%)         86s
  kube-system                 vpnkit-controller                         0 (0%)        0 (0%)      0 (0%)           0 (0%)         86s
Allocated resources:
  (Total limits may be over 100 percent, i.e., overcommitted.)
  Resource           Requests    Limits
  --------           --------    ------
  cpu                750m (4%)   0 (0%)
  memory             140Mi (1%)  340Mi (2%)
  ephemeral-storage  0 (0%)      0 (0%)
  hugepages-2Mi      0 (0%)      0 (0%)
Events:
  Type    Reason                   Age                    From        Message
  ----    ------                   ----                   ----        -------
  Normal  NodeHasSufficientMemory  2m56s (x8 over 2m56s)  kubelet     Node docker-desktop status is now: NodeHasSufficientMemory
  Normal  NodeHasNoDiskPressure    2m56s (x8 over 2m56s)  kubelet     Node docker-desktop status is now: NodeHasNoDiskPressure
  Normal  NodeHasSufficientPID     2m56s (x7 over 2m56s)  kubelet     Node docker-desktop status is now: NodeHasSufficientPID
  Normal  Starting                 2m41s                  kube-proxy  Starting kube-proxy.

kubectl get pods -o wide --all-namespaces
NAMESPACE     NAME                                     READY   STATUS    RESTARTS   AGE     IP             NODE             NOMINATED NODE   READINESS GATES
kube-system   coredns-f9fd979d6-d4z9r                  1/1     Running   0          4m16s   10.1.0.2       docker-desktop   <none>           <none>
kube-system   coredns-f9fd979d6-w5spm                  1/1     Running   0          4m16s   10.1.0.3       docker-desktop   <none>           <none>
kube-system   etcd-docker-desktop                      1/1     Running   0          3m24s   192.168.65.3   docker-desktop   <none>           <none>
kube-system   kube-apiserver-docker-desktop            1/1     Running   0          3m14s   192.168.65.3   docker-desktop   <none>           <none>
kube-system   kube-controller-manager-docker-desktop   1/1     Running   0          3m      192.168.65.3   docker-desktop   <none>           <none>
kube-system   kube-proxy-6hj7l                         1/1     Running   0          4m16s   192.168.65.3   docker-desktop   <none>           <none>
kube-system   kube-scheduler-docker-desktop            1/1     Running   0          3m12s   192.168.65.3   docker-desktop   <none>           <none>
kube-system   storage-provisioner                      1/1     Running   0          3m      10.1.0.4       docker-desktop   <none>           <none>
kube-system   vpnkit-controller                        1/1     Running   0          3m      10.1.0.5       docker-desktop   <none>           <none>


또는 this 자습서를 사용하여 Minikube를 사용하여 로컬 컴퓨터에 클러스터를 설정할 수도 있습니다.

최신 정보는 항상 Kubernetesofficial documentation를 확인하십시오.

마지막으로 컨테이너 여정에 도움이 될 수 있는 Docker 및 Kubernetes에 대한 몇 가지 교육이 있습니다.

도커

쿠버네티스

쿠버네티스 서비스

Kubernetes 포드 및 컨테이너 - 네트워킹

동영상은 Techworld에서 Nana와 함께 더 흥미로운 내용을 확인합니다.

좋은 웹페이지 즐겨찾기