728x90
쿠버네티스 클러스터와 관련된 정보를 가져오거나 명령어의 기능을 설명
쿠버네티스 클러스터에 대한 정보를 확인
- 현재 작동 중인 쿠버네티스 클러스터에 대한 정보를 표시합니다. 이는 API 서버와 다른 구성 요소의 엔드포인트를 확인하는 데 사용됩니다.
sudo kubectl cluster-info
$ sudo kubectl cluster-info
Kubernetes control plane is running at https://192.168.49.2:8443
CoreDNS is running at https://192.168.49.2:8443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.
등록된 노드 이름과 상태를 확인
- 현재 클러스터에 등록된 노드를 표시합니다. 각 노드의 이름과 상태를 확인할 수 있습니다.
sudo kubectl get nodes
$ sudo kubectl get nodes
NAME STATUS ROLES AGE VERSION
minikube Ready control-plane 118m v1.28.3
클러스터에서 발생한 이벤트를 표시
- 현재 클러스터에서 발생한 이벤트를 표시합니다. 이벤트는 클러스터의 상태 변경 사항이나 중요한 경고에 관한 정보를 제공합니다.
sudo kubectl get events
클러스터 및 사용자 인증 정보를 확인
- 현재 사용되는 kubeconfig 파일의 내용을 표시합니다. 이는 클러스터 및 사용자 인증 정보를 관리하는 데 사용됩니다.
sudo kubectl config view
$ sudo kubectl config view
apiVersion: v1
clusters:
- cluster:
certificate-authority: /root/.minikube/ca.crt
extensions:
- extension:
last-update: Fri, 02 Feb 2024 13:27:48 KST
provider: minikube.sigs.k8s.io
version: v1.32.0
name: cluster_info
server: https://192.168.49.2:8443
name: minikube
contexts:
- context:
cluster: minikube
extensions:
- extension:
last-update: Fri, 02 Feb 2024 13:27:48 KST
provider: minikube.sigs.k8s.io
version: v1.32.0
name: context_info
namespace: default
user: minikube
name: minikube
current-context: minikube
kind: Config
preferences: {}
users:
- name: minikube
user:
client-certificate: /root/.minikube/profiles/minikube/client.crt
client-key: /root/.minikube/profiles/minikube/client.key
디플로이먼트 생성
- 지정된 이미지를 사용하여 "hello-world"이라는 이름의 새로운 디플로이먼트를 생성합니다. 이 디플로이먼트는 샘플 웹 애플리케이션을 배포합니다.
sudo kubectl create deployment hello-world --image=gcr.io/google-samples/hello-app:1.0
$ sudo kubectl create deployment hello-world --image=gcr.io/google-samples/hello-app:1.0
deployment.apps/hello-world created
서비스 생성
- "hello-world" 디플로이먼트를 외부에 노출시키는 서비스를 생성합니다. 이 서비스는 NodePort 유형으로 생성되며, 포트 8080으로 내부 파드와 외부로 연결됩니다.
sudo kubectl expose deployment hello-world --type=NodePort --port=8080
$ sudo kubectl expose deployment hello-world --type=NodePort --port=8080
service/hello-world exposed
파드 실행
- "webserver"라는 이름으로 Nginx(nginx:latest) 이미지를 사용하여 파드를 실행합니다. 이 파드는 포트 80에서 Nginx를 실행합니다.
sudo kubectl run webserver --image=nginx:latest --port 80
$ sudo kubectl run webserver --image=nginx:latest --port 80
pod/webserver created
파드 상태 확인
- 현재 클러스터에서 실행 중인 파드를 표시합니다. 파드의 상태, IP 주소, 노드 등의 세부 정보를 포함하여 넓은 출력 형식으로 표시됩니다.
sudo kubectl get pods -o wide
$ sudo kubectl get pods -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
hello-world-7879445f4-dhwwf 1/1 Running 0 2m30s 10.244.0.13 minikube <none> <none>
webserver 1/1 Running 0 21s 10.244.0.14 minikube <none> <none>
디플로이먼트 확인
- 현재 클러스터에서 실행 중인 디플로이먼트를 표시합니다. 각 디플로이먼트의 이름, 준비 상태, 업데이트 상태 등의 정보를 확인할 수 있습니다.
sudo kubectl get deployment
$ sudo kubectl get deployment
NAME READY UP-TO-DATE AVAILABLE AGE
hello-world 1/1 1 1 2m58s
서비스 확인
- 현재 클러스터에서 실행 중인 서비스를 표시합니다. 각 서비스의 이름, 유형, 클러스터 IP, 노출된 포트 등의 정보를 확인할 수 있습니다.
sudo kubectl get services
$ sudo kubectl get services
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
hello-world NodePort 10.103.30.179 <none> 8080:32077/TCP 2m38s
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 133m
curl 명령어로 웹 페이지 확인
curl http://$(minikube ip):32077
$ curl http://$(minikube ip):32077
Hello, world!
Version: 1.0.0
Hostname: hello-world-7879445f4-dhwwf
대시보드 enable
sudo minikube addons enable dashboard
sudo minikube dashboard
kubectl을 사용하여 클러스터 내의 API 서버에 로컬 포트 포워딩을 설정
kubectl proxy --address='0.0.0.0' --disable-filter=true
$ sudo minikube dashboard
* Verifying dashboard health ...
* Launching proxy ...
* Verifying proxy health ...
http://127.0.0.1:45703/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/
포트 포워딩을 백그라운드로 실행
kubectl proxy --address='0.0.0.0' --disable-filter=true &
$ W0202 16:02:25.730597 190199 proxy.go:177] Request filter disabled, your proxy is vulnerable to XSRF attacks, please be cautious
Starting to serve on [::]:8001
웹 브라우저를 통해 대시보드에 접속
http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/#/workloads?namespace=default
728x90
'리눅스' 카테고리의 다른 글
[스크립트] SSH 공개 키를 복사하는 스크립트 (0) | 2024.02.05 |
---|---|
Minikube 클러스터에 Helm을 설치하는 방법 (0) | 2024.02.02 |
우분투에서 Minikube를 사용하여 싱글 노드 쿠버네티스 클러스터를 구성하고 삭제하는 방법 (0) | 2024.02.02 |
Docker Swarm 서비스를 확인하고 Docker Swarm 모드를 비활성화하는 방법 (0) | 2024.02.02 |
우분투에서 로케일 및 문자셋을 변경하는 방법 (0) | 2024.01.31 |