ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • kubectl 본격적으로 사용하기 전 친해 지기
    Kubernetes/kubectl 시작 2023. 6. 8. 10:34

    설치 목차에서 kubeadm, kubectl, kubelet  설치를 성공적으로 마쳤다면, 잘 동작하는지 확인 할 수 있다. -> 전체적으로 쿠버네티스가 어떤것이며, 실제 명령어를 입력하며 친해지는 과정임~! 

    가장 좋은 방법은 kubectl --help 이런식으로 --help 명령어를 잘 이용하면 좋음! (나만의 팁)

    각각 설치는 했지만, 명령어들의 각각 어떤 의미 및 기본 구조를 가지고 있는지가 중요! 

    1.  kubectl 이 무엇인가? 

    : 쿠버네티스에게 내가 원하는 것을 요청하는 것

    즉 클러스터에 명령을 내리는 CLI(command line interface) 

    예를 들어, "쿠버네티스야 지금 몇개의 노드가 있니~? " 라고 물어볼 때, kubectl get nodes 를 입력하면, 현재(namespace 를 제외한 - 나중에 나오는 부분) -> running 중인 node들을 볼 수 있음.

     

     

    2. docker에도 문법이 있듯이, kubernetes도 문법이 있다! 여기에 꼭 익숙해지도록 하자

    -> 기본 구조!!!! 이것만 잘 기억한다면, 뒤에 옵션을 붙이는 것은 그렇게 힘들지 않음!

    kubectl [command] [type] [name] [flag]

    • command : 자원에 실행할 명령(create, get, delete, edit)
    • type : 자원의 타입(node, pod, service)
    • name :  자원의 이름(웹서버, 소문자, 숫자로 가능 -> 즉 의미가 이해 가능한 것으로)
    • flags: 부가적으로 설정할 옵션(-o wide, --help) 예를 들어,  "쿠버네티스야, webserver 파드를 자세하게 보여줘 " 라고 명령하고 싶을 때, kubectl get pod webserver -o wide 

     

    3. pod를 만들고 자세히 보기 - 예시, 기본 구조를 가지고 있음

    • kubectl run webserver --image:nginx --port 80
    • 위 명령어는 nginx 이미지를 포트 80에 배정하여 만든것 
    • pod 확인 방법 : kubectl get pods (파드가 잘 만들어 있는지? webserver 라는 파드가 running 이면서 목록에 있다면 성공)
    • webserver pod 를 자세히 보고 싶다면? -> kubectl describe pods webserver
    • 현재 작동하는 pods을 자세히 보고 싶다면 ? -> kubectl get pods -o wide
    • pod 생성 방법에서 run 대신 create  도 가능함! 이때의 경우는 1. create delpoyment 여러개 만들때 2. deploy를 사용하면 여러개 동시 진행 가능함 ! 

     

    4. 싱글 컨테이너지만, 컨테이너 내부 속으로 들어가고 싶을 때!

    명령어 : kubectl exec [pod] webserver -it -- /bin/bash 

    -> bin 아래 bash 로 사용하고 싶음을 표현 

    -> 수정이 필요한 부분 수정 한 뒤, exit 로 나오면 적용됨 

    -> 필자는  docker와 엄청 친하지는 않지만, 어느 정도 알고있던 exec 명령어들 덕분에 좀 더 익숙한데 도움이 되었음! 

     

    5. 로그 확인법 

    kubectl logs webserver 

    logs 뒤에 pod 이름을 적어줌 ! 

     

    6. port forwarding 

    kubectl port-forward webserver 80:80

    -> 변경하고 난 뒤 , 복사 된 master 가서 확인 가능 

    -> ip 주소를 통해서도 알 수 있음 

    # 위 4번에서 컨테이너 내부에서  index.html 변경 내용이 curl localhost:80 에 접속했을 때, 보인다면

    포트 포워딩이 성공적! 

     

    7. 여러개를 다루는 deployment.app을 수정할 때

    -> kubectl edit deployment.apps 

     

    여기 까지는 쿠버네티스랑 대면대면한 사이에서 벗어나기 위함이었고,

    다음 부터는 본격적으로 node가 무엇인지, pod 가 무엇인지? 에 대해 정리해보도록! 

     

     

     

Designed by Tistory.