Kubbernetes가 CLI라서 어렵나요?GUI가 있었으면 좋겠어요.

Kubbernetes가 파악하기 어려운 이유 중 하나는 조작이 모두 CLI의 기초라고 생각한다면... 확실히 존재하는 것 같다웹 UI(대시보드) 그래서 AWS 환경에서 설계를 시도하기로 했다.
환경 준비(EKS 클러스터 제작까지)
이번에는 맥(M1 MacBook Air)을 작업 터미널로 사용했다.
  • Homebrew 설치
  • eksct1
  • 설치
  • 대상 AWS 계정의 IAM 인증 정보를 케이스에 설정하는 환경 변수참고 자료
  • 시도eksctl get cluster해보니 결과가 나오면 준비가 완료된다.
    다음 명령을 사용하여 인증용 EKS 클러스터를 구성합니다.
    eksctl create cluster \
    --name お好きなクラスター名を指定 \
    --region ap-northeast-1 \
    --fargate
    
    또한 이번 작업 노드는 EC2가 아닌 Fargate입니다.
    설계에 소요되는 시간은 EC2든 Fargate든 20분 정도입니다.
    계기판 설계
    프로그램은 AWS 공식 자습서를 참조합니다.
    먼저 다음 명령을 사용하여 대시보드를 디버깅합니다.
    그나저나 선언문 내용을 살펴보면 디자인 이미지 2점을 중심으로 서비스와 비밀 등 여러 자원 정의가 담겼다.
    kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.5/aio/deploy/recommended.yaml
    
    자원을 이렇게 많이 만들었는데
    namespace/kubernetes-dashboard created
    serviceaccount/kubernetes-dashboard created
    service/kubernetes-dashboard created
    secret/kubernetes-dashboard-certs created
    secret/kubernetes-dashboard-csrf created
    secret/kubernetes-dashboard-key-holder created
    configmap/kubernetes-dashboard-settings created
    role.rbac.authorization.k8s.io/kubernetes-dashboard created
    clusterrole.rbac.authorization.k8s.io/kubernetes-dashboard created
    rolebinding.rbac.authorization.k8s.io/kubernetes-dashboard created
    clusterrolebinding.rbac.authorization.k8s.io/kubernetes-dashboard created
    deployment.apps/kubernetes-dashboard created
    service/dashboard-metrics-scraper created
    deployment.apps/dashboard-metrics-scraper created
    
    kubectl get pod해봐도default이름공간팟이늘지 않았지만kubectl get namespace계기판용이름공간이 늘었다는 것을알 수 있다.
    지정된 이름 공간으로 들여다보면...
    % kubectl get pod --namespace kubernetes-dashboard
    NAME                                         READY   STATUS    RESTARTS   AGE
    dashboard-metrics-scraper-856586f554-sdsmf   0/1     Pending   0          3m8s
    kubernetes-dashboard-7979bc45d5-h4cjt        0/1     Pending   0          3m8s
    
    Pod는 두 개 이동되지만 Pending입니다.
    가능한가요?노드의 자원이 부족할까 봐 걱정이 되지만 계속 진행하겠습니다.
    액세스 라이센스 추가(eks-admin)
    우선 프로그램에 따라 서비스 계정과 집단 귀속을 작성한다.
    현지에서 다음과 같은 선언을 제작하고 보존한다.
    eks-admin.yaml
    apiVersion: v1
    kind: ServiceAccount
    metadata:
      name: eks-admin
      namespace: kube-system
    ---
    apiVersion: rbac.authorization.k8s.io/v1beta1
    kind: ClusterRoleBinding
    metadata:
      name: eks-admin
    roleRef:
      apiGroup: rbac.authorization.k8s.io
      kind: ClusterRole
      name: cluster-admin
    subjects:
    - kind: ServiceAccount
      name: eks-admin
      namespace: kube-system
    
    상술한 내용을 응용하다.
    kubectl apply -f eks-admin.yaml
    
    대시보드에 연결
    상기 제작된 eks-admin 서비스 계정의 인증 영패를 얻어 계기판에 접근한다.
    우선 인증 영패를 받다.
    kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep eks-admin | awk '{print $1}')
    
    다음에 에이전트를 시작합니다.
    kubectl proxy
    
    다음 링크를 브라우저에서 시작합니다.
    JSON의 텍스트가 반환되었습니다.딱 봐도 503 같은데.
    역시 팟이 안 올라가서 이상하죠?이렇게 생각하면서 사격을 시작했다.

    대시보드가 작동하지 않습니다!추적 시작
    아무튼 일단 Pod 상태를 describe 해 봅시다.
    먼저 Pod 차트를 확인하십시오.
    % kubectl get pod --namespace kubernetes-dashboard
    NAME                                         READY   STATUS    RESTARTS   AGE
    dashboard-metrics-scraper-856586f554-sdsmf   0/1     Pending   0          30m
    kubernetes-dashboard-7979bc45d5-h4cjt        0/1     Pending   0          30m
    
    기본 Pod의 이름을 describe로 복사합니다.
    % kubectl describe pod kubernetes-dashboard-7979bc45d5-h4cjt --namespace kubernetes-dashboard
    Name:           kubernetes-dashboard-7979bc45d5-h4cjt
    Namespace:      kubernetes-dashboard
    
    (中略)
    
    Events:
      Type     Reason            Age                 From               Message
      ----     ------            ----                ----               -------
      Warning  FailedScheduling  35s (x32 over 31m)  default-scheduler  0/2 nodes are available: 2 node(s) had taint {eks.amazonaws.com/compute-type: fargate}, that the pod didn't tolerate.
    
    그렇구나!
    "Fargate에게 줄 Taint가 있어서 참지 못하고 Failed를 보냈어요!"그런 것 같습니다.
    로그인 후 Taint는 Pod 작업 노드를 지정하는 블랙리스트 속성(affinity와 반대로?)을 말합니다.그러면 대시보드 Pod가 Fargate 노드에서 왜 시작되었는지 알 수 없게 설정되었을 가능성이 높습니다.왜 그랬을까.
    어쨌든 EC2로 컬렉션을 재구성하는 것은 쉬운 것 같지만 20분을 더 기다리고 싶지 않아서 다른 방법을 시도해 보고 싶습니다.
    대시보드가 depro를 할 때의 YAML에 대해 전문 검색을 한 결과taint는 인기가 없었지만 toleration 두 군데가 크게 열렸다.
    어느 쪽이든'적절하게 논평해달라'는 진지한 댓글이 달렸다.
    다시 정신을 차리고 먼저 시범의 선언 삭제 대상을 지정한다.
    kubectl delete -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.5/aio/deploy/recommended.yaml
    
    청소가 끝난 뒤 해당 YAML에서 taint 2곳을 삭제한 선언문에서 다시보드를 새롭게 디자인했다.
    kubectl apply -f dashboard.yaml
    
    그리고 Pod의 상태를 확인하고... 시도해 봤자 상황이 변하지 않았어요.
    # Pod名を取得
    % kubectl get pod --namespace kubernetes-dashboard
    NAME                                         READY   STATUS    RESTARTS   AGE
    dashboard-metrics-scraper-74646b48b7-lrq2b   0/1     Pending   0          18s
    kubernetes-dashboard-78dcf65b8f-42rw6        0/1     Pending   0          18s
    
    # Pod詳細を取得
    % kubectl describe pod kubernetes-dashboard-78dcf65b8f-42rw6 --namespace kubernetes-dashboard
    Name:           kubernetes-dashboard-78dcf65b8f-42rw6
    Namespace:      kubernetes-dashboard
    
    (中略)
    
    Events:
      Type     Reason            Age                From               Message
      ----     ------            ----               ----               -------
      Warning  FailedScheduling  49s (x2 over 51s)  default-scheduler  0/2 nodes are available: 2 node(s) had taint {eks.amazonaws.com/compute-type: fargate}, that the pod didn't tolerate.
    
    Dashboard 선언문 이외의 어딘가에 taint를 설정했나요?
    번거롭지만 EC2 실행 모드에서 EKS 클러스터를 재제작하기로 했다.
    재시도:대시보드에 연결
    Fargate를 중지하고 EC2로 새로운 EKS 클러스터를 다시 만듭니다.
    이번에 대시보드 관련 팟이 런닝임을 확인했다.
    % kubectl get pod --namespace kubernetes-dashboard
    NAME                                         READY   STATUS    RESTARTS   AGE
    dashboard-metrics-scraper-856586f554-c48k2   1/1     Running   0          16s
    kubernetes-dashboard-7979bc45d5-gh46h        1/1     Running   0          16s
    
    eks-admin 관련 자원도 디버깅을 마쳤다.
    정보에 따르면 Cluster RoleBinding은 EKS v1의 베타 에디션을 사용한 것 같습니다.22 이후 협박을 받고 지지하지 않을 것이다.이번에는 아직 v1에 도착하지 않았다.21이니까 안전해요.
    그리고 인증 토큰을 받은 후 proxy를 시작하고 대시보드 URL에 접근할 때...

    성공!
    영패를 복사하고 인증한 후...

    대시보드 표시 성공!
    계기판을 쓰다듬다
    Pod를 설계해 보십시오.
    NGINX가 여러 Pod 작업에 대한 인상을 주는 deployment 선언문을 작성하고 디자인합니다.
    kubectl apply -f deployment.yaml
    
    그리고 다시 계기판을 방문하면 디자인 이미지를 잘 반영할 수 있다.

    GUI는 상태를 시각적으로 표시하지만 설정을 변경할 수 있습니다.
    "Triple-nginx"를 디자인한 단추에서 "편집"해 보십시오.

    에서는 YAML을 직접 편집할 수 있는 모드 창을 보여 줍니다.
    여기서 콘텐츠를 업데이트하면 앱리가 다시 달릴 것 같아요.
    그리고 디자인에도'척도'라는 옵션이 있으니 눌러주세요.

    GUI를 통해 복제품 수를 조절할 수 있습니다.
    CLI 명령도 함께 기재되어 있어 이해하기 쉽다.
    또한 Pod에서도 옵션이 제공되므로 살펴보십시오.

    로그 또는 실행 명령이 있습니다.
    일단'실행'을 해볼게요.

    조개껍질로 팟을 연결하는 것 같아.kubectl exec.
    창의 "nginx"드롭다운은Pod에 여러 용기를 포함하는 상황에서 전환할 수 있습니다.
    그리고 '로그' 단추를 하나 더 누르면...

    실행 기능과 마찬가지로 CLI 모드에서 Pod와 유사한 로그 기능이 표시됩니다.
    오른쪽 상단에도 다운로드 버튼이 있어 로그를 쉽게 얻을 수 있다.이거 편해요.
    총결산
    계기판은 편집 조작을 쉽게 할 수 있고 디자인도 간단하다(Fargate에 빠지지 않으면) 비즈니스 환경에서도 사용할 수 있으면 편리하다.
    Dashboard 관련 대상이 얼마나 많은 노드의 자원을 먹는지 확인하고 방문 제공 & 제어의 디자인에 시간이 좀 걸리지만, 주로 이용하는 감시 도구에 따라 이 녀석의 이용을 연구하고 싶습니다.

    좋은 웹페이지 즐겨찾기