종류가 있는 개발 클러스터

Minikube 훌륭하지만 리소스 집약적입니다. 많은 사용자 정의 옵션이 있습니다. 머신을 실행하기 위해 VM과 Docker 컨테이너 중에서 선택하고 다양한 컨테이너 런타임 등을 선택할 수 있습니다.
장점
  • 여러 버전의 kubernetes를 실행할 수 있음
  • 모든 기능을 갖춘 Kubernetes
  • 권한 부여 오버헤드 없이 로컬 레지스트리 지원
  • 많은 문서 및 자습서

  • 단점
  • 리소스가 많음(약 1시간 만에 배터리 소모)
  • 수많은 옵션을 기반으로 사용자 정의하려면 파고들어야 합니다.


  • Kind 도커 컨테이너 내에서 kubernetes를 실행합니다. kubernetes 팀조차도 Kind를 사용하여 kubernetes 자체를 테스트합니다.

    장점
  • 경량 클러스터
  • 초고속 클러스터 생성(< 1분)
  • docker-shim 대신 containerd 사용
  • 충분한 사용자 정의 지원


  • 종류 설정
    Install kind cli

    구성
    아래 구성은 수신이 활성화된 단일 마스터, 2개의 작업자 노드 클러스터를 생성하는 데 사용됩니다. 또한 포트 80 , 44330000 (localhost에 투명하게 매핑됨)를 노출합니다.

    참고: 30000는 NodePort에 사용할 수 있습니다(아래 링크 확인).

    cat ${HOME}/kind-config.yaml
    # three node (two workers) cluster config
    kind: Cluster
    apiVersion: kind.x-k8s.io/v1alpha4
    nodes:
    - role: control-plane
      kubeadmConfigPatches:
      - |
        kind: InitConfiguration
        nodeRegistration:
          kubeletExtraArgs:
            node-labels: "ingress-ready=true"
      extraPortMappings:
      - containerPort: 30000
        hostPort: 30000
        listenAddress: "0.0.0.0"
        protocol: TCP
      - containerPort: 80
        hostPort: 80
        protocol: TCP
      - containerPort: 443
        hostPort: 443
        protocol: TCP
    - role: worker
    - role: worker
    


    클러스터 생성

    ❯ kind create cluster --name macbook --config ${HOME}/kind-config.yaml
    Creating cluster "macbook" ...
     ✓ Ensuring node image (kindest/node:v1.21.1) 🖼
     ✓ Preparing nodes 📦 📦 📦
     ✓ Writing configuration 📜
     ✓ Starting control-plane 🕹️
     ✓ Installing CNI 🔌
     ✓ Installing StorageClass 💾
     ✓ Joining worker nodes 🚜
    Set kubectl context to "kind-macbook"
    You can now use your cluster with:
    
    kubectl cluster-info --context kind-macbook
    
    Thanks for using kind! 😊
    
    ❯ kubectl get nodes
    NAME                    STATUS   ROLES                  AGE   VERSION
    macbook-control-plane   Ready    control-plane,master   11d   v1.21.1
    macbook-worker          Ready    <none>                 11d   v1.21.1
    macbook-worker2         Ready    <none>                 11d   v1.21.1
    


    포드 생성

    ❯ kubectl run nginx --image=nginx --port=80 --restart=Never
    pod/nginx created
    
    ❯ kubectl get pods
    NAME    READY   STATUS    RESTARTS   AGE   LABELS
    nginx   1/1     Running   0          63s   run=nginx
    


    포드를 서비스로 노출

    ❯ kubectl expose pod/nginx --port=80
    service/nginx exposed
    ❯ kubectl get svc
    NAME         TYPE        CLUSTER-IP    EXTERNAL-IP   PORT(S)   AGE
    kubernetes   ClusterIP   10.96.0.1     <none>        443/TCP   11d
    nginx        ClusterIP   10.96.54.47   <none>        80/TCP    3s
    ❯ kubectl port-forward svc/nginx 8080:80
    Forwarding from 127.0.0.1:8080 -> 80
    Forwarding from [::1]:8080 -> 80
    ...
    


    작동 확인
    열기http://localhost:8080/ . nginx에 오신 것을 환영합니다 페이지가 표시되어야 합니다.

    클러스터 삭제

    ❯ kind delete cluster --name=macbook
    Deleting cluster "macbook" ...
    
    



    더 많은 것을 시도하십시오 ...
  • Ingress
  • LoadBalancer
  • NodePort
  • 좋은 웹페이지 즐겨찾기