Kubernetes에 Asp.Net WebApi 및 MySql 데이터베이스 컨테이너 배포(1부) - 설정

8031 단어 csharpmysqldocker
이 기사는 containerizing an Aspnet.core API and MySQL database with docker-compose에 대한 이전 기사의 후속 기사입니다. 이 기사에서는 Web API를 Kubernetes에 배포하여 한 단계 더 나아갈 것입니다.

간결함을 위해 이 프로세스를 두 부분으로 나누었습니다.
  • 1부. Docker Desktop을 사용하여 Kubernetes 및 Kubernetes 대시보드 설정.
  • 파트 2. .

  • 이 자습서에서는 Docker 및 Kubernetes의 기본 원칙에 대해 알고 있다고 가정합니다. 그렇지 않은 경우 및에서 내 이전 기사를 확인할 수 있습니다. 또는 이 멋진 비디오를 확인하십시오. 진행하면서 몇 가지 용어를 설명하려고 합니다.

    Docker Desktop을 사용하여 로컬 Kubernetes 설정


  • Docker를 설치합니다. here .
  • Docker 아이콘을 클릭하고 아래와 같이 기본 설정 창으로 이동합니다. Kubernetes 아이콘을 클릭합니다.

  • Kubernetes 사용 옵션을 선택한 다음 아래와 같이 적용 및 다시 시작 버튼을 누르십시오.


  • 다소 시간이 걸릴 수 있습니다.
  • Docker Desktop과 Kubernetes가 모두 실행 중이어야 합니다.
    이제 다음 항목이 있습니다.
  • 독립 실행형 Kubernetes 서버 및 클라이언트입니다.

  • 설치 확인


  • 노드는 Kubernetes 시스템에 컴퓨팅 성능을 제공합니다. 이 경우 노드는 컴퓨터 시스템입니다.
  • 클러스터는 자체적으로 컴퓨팅 리소스를 공유하는 노드 모음입니다. 로컬 Kubernetes 서버는 단일 노드 클러스터이며 구성할 수 없습니다.
  • 포드-Kubernetes는 배포를 포드라는 상위 수준 구조로 패키징합니다. 포드는 기본적으로 컨테이너 모음입니다.

  • 터미널에서 다음 명령을 실행하여 Kubernetes 설치를 확인하십시오.

    $ kubectl version
    Client Version: version.Info{Major:"1", Minor:"19", GitVersion:"v1.19.3", GitCommit:"1e11e4a2108024935ecfcb2912226cedeafd99df", GitTreeState:"clean", BuildDate:"2020-10-14T12:50:19Z", GoVersion:"go1.15.2", Compiler:"gc", Platform:"darwin/amd64"}
    Server Version: version.Info{Major:"1", Minor:"19", GitVersion:"v1.19.3", GitCommit:"1e11e4a2108024935ecfcb2912226cedeafd99df", GitTreeState:"clean", BuildDate:"2020-10-14T12:41:49Z", GoVersion:"go1.15.2", Compiler:"gc", Platform:"linux/amd64"}
    


    클러스터 정보 확인



    자동으로 Kubernetes 마스터가 되는 하나의 클러스터가 있습니다.

     $ kubectl cluster-info
    
    Kubernetes master is running at https://kubernetes.docker.internal:6443
    KubeDNS is running at https://kubernetes.docker.internal:6443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
    


    클러스터의 노드 확인




    $  kubectl get nodes
    NAME             STATUS   ROLES    AGE   VERSION
    docker-desktop   Ready    master   30m   v1.19.3
    


    Kubernetes 대시보드 설치



    Kubernetes 대시보드는 Kubernetes 시스템의 시각적 표현을 제공합니다.
    이 명령을 실행하여 설치하십시오.

    $ kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.1.0/aio/deploy/recommended.yaml
    
    namespace/kubernetes-dashboard created
    serviceaccount/kubernetes-dashboard created
    service/kubernetes-dashboard created
    secret/kubernetes-dashboard-certs created
    


    대시보드 애플리케이션은 Kube-system 네임스페이스에 Pod로 배포됩니다. 다음 명령을 통해 해당 네임스페이스에 있는 모든 Pod 목록을 가져올 수 있습니다.

    $  kubectl get pods --namespace=kube-system
    NAME                                     READY   STATUS    RESTARTS   AGE
    coredns-f9fd979d6-9f7mb                  1/1     Running   0          36m
    coredns-f9fd979d6-bxlkw                  1/1     Running   0          36m
    etcd-docker-desktop                      1/1     Running   0          35m
    kube-apiserver-docker-desktop            1/1     Running   0          35m
    kube-controller-manager-docker-desktop   1/1     Running   0          35m
    kube-proxy-g8mwq                         1/1     Running   0          36m
    kube-scheduler-docker-desktop            1/1     Running   0          35m
    storage-provisioner                      1/1     Running   0          35m
    vpnkit-controller                        1/1     Running   0          35m
    


    다음을 사용하여 대시보드 서버 시작

    $ kubectl proxy
    
    Starting to serve on 127.0.0.1:8001
    


    대시보드를 열고 다음으로 이동합니다.
    http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/#/login

    503 오류가 발생하면 약 5분 정도 기다렸다가 새로고침하세요.

    대시보드에 대한 인증 페이지가 표시되어야 합니다.


    클러스터 관리자 서비스 계정 만들기



    모든 리소스에 액세스할 수 있는 클러스터 관리자 역할로 서비스 계정을 만들 수 있습니다.
  • 서비스 계정 생성 및 호출(cluster-admin-dashboard-sa)

  • $ kubectl create serviceaccount cluster-admin-dashboard-sa
    
    
    serviceaccount/cluster-admin-dashboard-sa created
    

  • 서비스 계정을 클러스터 관리자로서 클러스터 역할에 바인딩합니다.

  • $ kubectl create clusterrolebinding cluster-admin-dashboard-sa \
      --clusterrole=cluster-admin \
      --serviceaccount=default:cluster-admin-dashboard-sa
    
    clusterrolebinding.rbac.authorization.k8s.io/cluster-admin-dashboard-sa created
    

    (cluster-admin-dashboard-sa)는 이제 Kubernetes에서 cluster-admin 권한을 가집니다.
  • cluster-admin-dashboard-sa 자격 증명으로 토큰을 생성합니다.
  • 토큰 생성을 위한 암호를 얻으려면 이 명령을 실행하십시오.

  • $ kubectl get secret | grep cluster-admin-dashboard-sa
    
    cluster-admin-dashboard-sa-token-k95tz   kubernetes.io/service-account-token   3      9d
    

  • 전달자 토큰 받기

  • cli에서 생성된 자체 토큰을 사용하는 것을 잊지 마십시오.

    $ kubectl describe secret cluster-admin-dashboard-sa-token-k95tz
    
    
    Name:         cluster-admin-dashboard-sa-token-k75tz
    Namespace:    default
    Labels:       <none>
    Annotations:  kubernetes.io/service-account.name: cluster-admin-dashboard-sa
                  kubernetes.io/service-account.uid: 7055ee38-1bc6-4fe9-ac3d-075040cc4f3f
    
    Type:  kubernetes.io/service-account-token
    
    Data
    ====
    ca.crt:     1025 bytes
    namespace:  7 bytes
    token:      eyJhbGciOiJSUzI1NiIsImtpZCI6IlQwY0prajRPYUttSzdEYU45RmUwQ3JEdG16VS1TbVZVRDRpS0lQLWZDU2cifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJkZWZhdWx0Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZWNyZXQubmFtZSI6ImNsdXN0ZXItYWRtaW4tZGFzaGJvYXJkLXNhLXRva2VuLWs3NXR6Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQubmFtZSI6ImNsdXN0ZXItYWRtaW4tZGFzaGJvYXJkLXNhIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQudWlkIjoiNzA1NWVlMzgtMWJjNi00ZmU5LWFjM2QtMDc1MDQwY2M0ZjNmIiwic3ViIjoic3lzdGVtOnNlcnZpY2VhY2NvdW50OmRlZmF1bHQ6Y2x1c3Rlci1hZG1pbi1kYXNoYm9hcmQtc2EifQ.tS3fscFJAzzUuObtwq59A9PtADpeEyuJk1KnfAfWfFTmBMS5J9lcVv6wQfU1GY3a4pza062BLef8AG619zYIC4diY5yzXt1n5qjcXwdMGe_pCu-uDx-AWKRgWe744Jc7UF2mdJoavzy0ttIZN6eEiQVvCtK6bTiNe9GQIGsFwBm8H1JlW9TuZ8nFWrWgezkOb9FjgdamkLM8B8h302NiI--Coj3KL_eTPUvELJ0orZ7weaLmoqjHB7QgJyFXDzBZjqkiKdJu9I5vpPoRCwymPC9iujF42LrYUaPp-MuC3l6SCWgRDcvMPG1m1F1XA1uAHJn3UITPzMlCLCqbbuHMMA
    
    


  • 토큰을 사용하여 대시보드에 로그인합니다.

  • 당신은 이것을보아야합니다.



    Kubernetes를 성공적으로 설정하고 로컬 시스템에서 Kubernetes 대시보드를 구성한 것을 축하합니다. 이 기사의 2부에서는 Asp.Net Web Api 및 MySQL 컨테이너를 Kubernetes에 배포할 것입니다. 확인 해봐

    좋은 웹페이지 즐겨찾기