Kubernetes Quick References
- Quick References
- Port Forward for Testing - {:.} Port 확인 - {:.} Pods으로 접속 - {:.} Deployment로 접속 - {:.} ReplicaSet 으로 접속 - {:.} Service로 접속
- EKSCtl

Quick References
Version Check
Server 그리고 client version 둘다 확인 할 수 있습니다.
$ kubectl version
Context
context 정보는 다음과 같이 얻습니다.
$ kubectl config get-contexts
anderson-context anderson-cluster anderson.jo
* minikube minikube minikube
다른 context로 변경은 다음과 같이 합니다.
$ kubectl config use-context anderson-context
Switched to context "anderson-context".
Cluster Information
$ kubectl cluster-info
Kubernetes master is running at https://172.17.0.16:8443
KubeDNS is running at https://172.17.0.16:8443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
위의 명령어에서 master 그리고 Kubernetes DNS서비스 돌아가는 것을 확인 할 수 있습니다.
- Kubernetes master: master
- KubeDNS: DNS
- kubernetes-dashboard: dashboard - UI에서 applications을 확인 가능
All Nodes Information
applications을 host시킬 수 있는 모든 nodes 정보를 보여줍니다.
$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
minikube Ready master 12m v1.13.3
Namespace
namespace 정보는 다음과 같이 얻습니다.
$ kubectl get namespaces
NAME STATUS AGE
default Active 8d
kube-node-lease Active 8d
kube-public Active 8d
kube-system Active 8d
tutorial-ns Active 2s
Namespace 생성은 다음과 같이 합니다 .
$ kubectl create namespace tutorial-ns
namespace/tutorial-ns created
Pods
$ kubectl get pod -n tutorial-ns
NAME READY STATUS RESTARTS AGE
tutorial-server-deploy-6b5748b65c-9wpbk 0/1 Pending 0 33s
정확하게 app을 지정해서 볼 수 도 있습니다.
$ kubectl get pod -n tutorial-ns -l app=ml-app
Pod에 대한 정보는 다음의 명령어로 알 수 있습니다.
$ kubectl describe pod tutorial-server-deploy-6b5748b65c-9wpbk -n tutorial-ns
Deploy
$ kubectl apply -f deploy.yaml
Port Forward for Testing
Port 확인
Port를 확인합니다.
$ kubectl get pods tutorial-server-deploy-6b4b98486-k4srw -n tutorial-ns
NAME READY STATUS RESTARTS AGE
tutorial-server-deploy-6b4b98486-k4srw 1/1 Running 0 59m
$ kubectl get pods tutorial-server-deploy-6b4b98486-k4srw -n tutorial-ns'
80
port-forward 를 사용해서 local port를 pod에 있는 port로 연결을 시킵니다.
resource name을 지정할수 있는데 deployment, service , pod 등을 선택할 수 있습니다.
5000:80 에서 앞쪽 포트가 localhost에서 사용할 포트이고, 80이 pod의 접속 포트 입니다.
Pods으로 접속
먼저 Pods 정보를 확인하고 ready인지 확인합니다.
$ kubectl get pods -n alpha -l app=ml-app
NAME READY STATUS RESTARTS AGE
tutorial-server-deploy-6b4b98486-k4srw 1/1 Running 0 56m
Pods으로 접속
$ kubectl port-forward tutorial-server-deploy-6b4b98486-k4srw -n tutorial-ns 5000:80
Forwarding from 127.0.0.1:5000 -> 80
Forwarding from [::1]:5000 -> 80
pods/ 를 추가해도 됨
$ kubectl port-forward pods/tutorial-server-deploy-6b4b98486-k4srw -n tutorial-ns 5000:80
Forwarding from 127.0.0.1:5000 -> 80
Forwarding from [::1]:5000 -> 80
Deployment로 접속
Deployments 상태도 확인을 합니다.
$ kubectl get deployment -n tutorial-ns -l app=ml-app
NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE
tutorial-server-deploy 1 1 1 1 7h
deployment/ 를 붙여서 접속
$ kubectl port-forward deployment/tutorial-server-deploy -n tutorial-ns 5000:80
Forwarding from 127.0.0.1:5000 -> 80
Forwarding from [::1]:5000 -> 80
Handling connection for 5000
ReplicaSet 으로 접속
ReplicaSet도 상태를 확인합니다.
$ kubectl get rs -n tutorial-ns -l app=ml-app
NAME DESIRED CURRENT READY AGE
tutorial-server-deploy-6cd9bdc5d4 1 1 1 1h
ReplicaSet으로 접속합니다.
$ kubectl port-forward rs/tutorial-server-deploy-6cd9bdc5d4 -n tutorial-ns 5000:80
Forwarding from 127.0.0.1:5000 -> 80
Forwarding from [::1]:5000 -> 80
Handling connection for 5000
Service로 접속
서비스를 확인합니다.
$ kubectl get svc -n tutorial-ns -l app=ml-app
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
tutorial-server-svc NodePort 10.231.46.95 <none> 80:30021/TCP 3d
서비스로 접속을 합니다.
$ kubectl port-forward svc/tutorial-server-svc -n tutorial-ns 5000:80
Forwarding from 127.0.0.1:5000 -> 80
Forwarding from [::1]:5000 -> 80
Handling connection for 5000
EKSCtl
Node Group
Node Group에 대한 정보
# node group 의 리스트
$ eksctl get nodegroup --cluster <클러스터 이름>
# 특정 노드의 정보
$ eksctl get nodegroup <노드그룹 이름> --cluster <클러스터 이름> -o yaml
- AutoScalingGroupName: eksctl-ml-cluster-nodegroup-ml-group-v120-NodeGroup-1234567890ABC
Cluster: ml-cluster
DesiredCapacity: 11
InstanceType: t3a.medium
MaxSize: 20
MinSize: 3
Name: node-group-name
NodeInstanceRoleARN: arn:aws:iam::123456789012:role/eksctl-ml-cluster-nodegroup-ml-gr-NodeInstanceRole-1234567890ABC
Status: UPDATE_COMPLETE
Version: 1.21.5