전에 유데미에서 도커와 쿠버네티스 강의를 구매해서 수강하다가 뭔가 잘 와닿는게 없어서 그냥저냥 듣다가 유튜브에서 무료로 강의를 올려주시는 분이 있어서 조금 들어봤는데 강의가 상당히 좋은 것 같아서 직접 실습하면서 공부해보았다.
자동 완성 팁
kubectl get nodes를 타이핑할 때 자동완성이 안 된다.
source <(kubectl completion bash)
echo 'source <(kubectl completion bash)' >>~/.bashrc
source <(kubeadm completion bash)
echo 'source <(kubeadm completion bash)' >>~/.bashrc
위와 같이 작성해주면 자동완성 기능을 사용할 수 있다.
명령어 실습
kubectl get pods

pod 목록을 조회하는 명령어이다.
kubectl get pods -o wide

pod 목록을 자세하게 살펴볼 수 있다.
해당 pod가 실행되고 있는 IP나 호스트명을 확인할 수 있다.
kubectl create deployment <배포이름> --image=<이미지이름>
배포를 할 때 사용하는 명령어이다.
| --image | 파드 생성에 사용할 이미지를 지정 주로 Docker Hub의 이미지를 사용함 |
| --replicas | 실행할 파드 수를 지정 |
| --port | 서비스가 사용할 포트를 지정 |
| --dry-run | 실제로 생성하지는 않고 테스트만 수행함 |
| --labels | 레이블을 추가 |
kubectl create deployment mainui --image=httpd --replicas=3

mainui라는 이름으로 배포를 하고, httpd 서버를 사용하고, 파드를 3개 생성한다.
kubectl describe deployment.apps mainui

배포 리스트 중 apps와 관련된 상세 정보를 조회한다.
kubectl get pod webserver -o yaml

webserver라는 파드의 정보를 yaml 파일로 화면에 출력한다.
kubectl get pod webserver -o json

동일한 내용을 json으로 출력할 수도 있다.
kubectl port-forward webserver 80:80

webserver 파드의 포트를 80포트와 포트포워딩한다.
kubectl run webserver --image=nginx:1.14 --port 80 --dry-run

nginx를 이미지로 80포트를 사용하여 작동할 수 있는지 테스트한다.
kubectl run webserver --image=nginx:1.14 --port 80 --dry-run -o yaml > webserver-pod.yaml


webserver와 관련된 내용들을 yaml로 출력하고, 해당 내용을 webserver-pod.yaml이라는 파일로 저장한다.
kubectl delete pod webserver

webserver 파드를 삭제한다.
kubectl delete deployment.apps mainui

mainui라는 배포를 삭제한다.
kubectl create -f webserver-pod.yaml

webserver-pod.yaml 파일을 이용하여 파드를 생성한다.
나는 그동안 Docker를 이용해서 컨테이너 구성을 하고 있는 줄 알았는데 containerd를 사용하고 있었다. 이 부분에서 좀 헷갈리는 것 같아서 좀 찾아봐야겠다.
'공부 > kubernates' 카테고리의 다른 글
| [kubernates] Kubespray 설치하기 (0) | 2024.11.28 |
|---|---|
| [Linux] VMware로 쿠버네티스 테스트 환경 구축하기 (0) | 2024.08.16 |
| [Kubernates] k8s 알아보고 설치하기 (0) | 2024.08.02 |