본문으로 건너뛰기

Day 3 - Pod 생성 및 서비스 연결

Day 3 - Pod 생성 및 서비스 연결

목차


1. Pod 생성 및 서비스 노출

main

Pod 생성

kubectl run web-nginx-1 --image=nginx:1.29.3-alpine

Service 노출

kubectl expose pod web-nginx-1 --name=web-svc-1 --type=NodePort --port=8080 --target-port=80
옵션설명
--typeNodePort외부 접속 허용
--port8080Service 포트
--target-port80Pod 컨테이너 포트

확인 및 테스트

kubectl get po,svc -o wide
curl http://<CLUSTER-IP>:8080

MySQL Pod

kubectl run mysql-pod --image=mysql:8.0 --env="MYSQL_ROOT_PASSWORD=<PASSWORD>"
kubectl expose pod mysql-pod --name=mysql-svc --type=NodePort --port=3306 --target-port=3306

# MySQL 접속
kubectl exec -it mysql-pod -- mysql -uroot -p

리소스 삭제

kubectl delete pod web-nginx-1 mysql-pod
kubectl delete svc web-svc-1 mysql-svc

2. YAML 파일로 Pod 생성

yaml

dry-run으로 YAML 생성

kubectl run pod-nginx --image=nginx:1.29.3-alpine --dry-run=client -o yaml > pod-nginx.yaml
kubectl apply -f pod-nginx.yaml

Service YAML 생성

kubectl expose pod pod-nginx --name=svc-nginx --type=NodePort --port=80 --target-port=80 --dry-run=client -o yaml > svc-nginx.yaml
kubectl apply -f svc-nginx.yaml

Pod Lifecycle

상태설명
PendingPod 생성 대기 중
Running실행 중
Succeeded정상 종료
Failed비정상 종료
Unknown통신 불가

3. Kubernetes Dashboard 설치

dashboard

Helm 설치

curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3
chmod 700 get_helm.sh && ./get_helm.sh

Dashboard 설치

helm repo add kubernetes-dashboard https://kubernetes.github.io/dashboard/

helm upgrade --install kubernetes-dashboard kubernetes-dashboard/kubernetes-dashboard \
--create-namespace \
--namespace kubernetes-dashboard \
--set kong.admin.tls.enabled=false

NodePort 설정

kubectl -n kubernetes-dashboard edit svc kubernetes-dashboard-kong-proxy
spec:
type: NodePort
ports:
- nodePort: 31002 # 추가

관리자 계정 생성

# ServiceAccount
kubectl create serviceaccount admin-user -n kubernetes-dashboard

# ClusterRoleBinding
kubectl create clusterrolebinding admin-user --clusterrole=cluster-admin --serviceaccount=kubernetes-dashboard:admin-user

# 토큰 생성
kubectl -n kubernetes-dashboard create token admin-user

접속

https://192.168.5.10:31002/

login


최종 결과

result


관련 문서

그래프 뷰

그래프 데이터 로딩 중…
현재: Day 3 - Pod 생성 및 서비스 연결
노드 클릭 → 이동 · 드래그 → 위치 조정