[K8S 기본 명령어]
kubectl version --short
kubectl get nodes
kubectl get nodes -o wide
kubectl get all -A
=kubectl get pods/svc
kubectl get pods --all-namespaces
[쿠버네티스에서 도커 로그인 시크릿]
kubectl create secret docker-registry [mysecret] --docker-username=[user] --docker-password=[1234] --docker-email=[email]
secret/mysecret created
개인 도커 레지스트리 인증 정보를
Kubernetes Secret으로 저장할 때 사용
[삭제]
kubectl delete secrets [mysecret]
[확인]
kubectl get secrets
[서비스 어카운트에 imagePullSecrets,mysecret 추가]
kubectl patch -n default serviceaccount/default -p '{"imagePullSecrets":[{"name":"mysecret"}]}'
serviceaccount/default patched
POD : 하나 이상의 컨테이너를 구성하는 쿠버네티스 리소스 ( 컨테이너 묶음 )
[컨테이너 이미지 다운로드 및 쿠버네티스 클러스터 동작 확인]
kubectl create deploy(ment) web
--image httpd --replicas 3
kubectl scale deploy [web]
--replicas 3 -- pod 추가
-------------------------------------
kubectl get ***pods*** -o wide
kubectl get ***nodes*** -o wide --watch
kubectl ***describe*** nodes [master]
kubectl ***describe*** pods/deploy [master]
kubectl get pod [ ] -o yaml
kubectl get deploy [ ] -o yaml
kubectl get deploy
kubectl get replicasets
[배포 삭제]
kubectl delete deploy [name] /
kubectl delete pods [name] / 단일 서버
kubectl delete pods --all / 전체 삭제
kubectl delete pods [a] -n [namespace]
kubectl delete namespace []
kubectl scale deployment <deployment-name> --replicas=0
kubectl delete deployment <deployment-name>
Pending -> ContentCreating -> Running
[WEBSERVER]
kubectl run webserver --image nginx --port 80 --replicas 3
방화벽 해제
kubectl get pods -o json/yaml/
kubectl logs [name] -f
[pod forwarding]
kubectl port-forward [] 8080:80 &
kubectk edit deploy [] / --replica 변
* port-forward는 로컬 머신에서만 유효
* 다른 컴퓨터에서는 접근 불가
lsof -i :8080
[--dry-run and -o]
kubectl run web7 --image nginx --port 80 --dry-run=client -o yaml > web7.yml
vi web7.yml
port : 80
--dry-run 옵션은 명령어를 실제로 실행하지 않고 무엇을 할 것인지 미리 보여주는 옵션
주로 배포, 설정 변경, 삭제 등의 작업에서 예상 결과를 확인할 때 사용됨
실제로 자원을 생성하지 않고,
적용 시 어떤 리소스가 만들어질지를 YAML 형식으로 미리 확인 가능.
[yml로 pod 생성]
kubectl create -f web7.yml
kubectk apply -f web7.yml
1. 마스터 노드 방화벽 해제
마스터 노드는 쿠버네티스 API 서버와 등 다양한 컴포넌트가 실행되며, 워커 노드와 통신을 합니다. 마스터에서 중요한 포트들은 6443, 10250 등입니다.
마스터 노드에서 방화벽 해제 예시:
sudo firewall-cmd --zone=public --add-port=6443/tcp --permanent
sudo firewall-cmd --zone=public --add-port=10250/tcp --permanent
sudo firewall-cmd --reload
2. 워커 노드 방화벽 해제
워커 노드는 마스터와 통신하고, 마스터에서 전달하는 명령을 실행합니다. 또한, 마스터와의 통신을 위한 포트인 10250, 30000-32767 등의 포트가 열려 있어야 합니다.
워커 노드에서 방화벽 해제 예시:
sudo firewall-cmd --zone=public --add-port=10250/tcp --permanent
sudo firewall-cmd --zone=public --add-port=30000-32767/tcp --permanent
sudo firewall-cmd --reload
3. 전체적인 포트 해제
쿠버네티스 클러스터에서 필요한 기본적인 포트 목록은 다음과 같습니다:
- 6443: Kubernetes API 서버
- 10250: kubelet
- 10251: kube-scheduler
- 10252: kube-controller-manager
- 30000-32767: NodePort 서비스 (이 범위는 필요에 따라 변경될 수 있음)
[kubectl CREATE / RUN 차이]
🔹 1. kubectl create deploy web --image=nginx
- 의도: Deployment 객체를 생성하여 안정적인 배포와 관리(롤링 업데이트, 복구 등)를 자동으로 처리하게 함.
- 생성되는 리소스:
- Deployment
- 그 안에 자동으로 관리되는 ReplicaSet과 Pod
- 기능:
- Replica 개수 조절 (kubectl scale)
- 롤링 업데이트 (kubectl rollout)
- 롤백 (kubectl rollout undo)
- 애플리케이션의 상태를 유지 관리
✅ 실제 운영에 적합한 방식.
🔹 2. kubectl run web --image=nginx
- 의도: 간단하게 Pod를 하나 생성해서 실행해보는 데 사용됨.
- 생성되는 리소스:
- 기본적으로 Pod 1개만 생성됨
- 기능:
- 자동 복구 ❌
- 롤링 업데이트 ❌
- Replica 관리 ❌
- -restart=Never, -restart=OnFailure 옵션으로 Job처럼도 사용 가능
✅ 테스트용, 일회성 작업용으로 적합.
'IT 엔지니어 > CLOUD' 카테고리의 다른 글
DOCKER NAMESPACE/STATEFULSET (0) | 2025.05.22 |
---|---|
Docker POD (1) | 2025.05.21 |
Docker Kubespray -1 (0) | 2025.05.19 |
K8S -kubespray (0) | 2025.05.19 |
Docker yml (1) | 2025.05.18 |