Cohe
쿠버네티스 기초: 설정, 명령어, 그리고 오브젝트 생성 가이드 본문
728x90
반응형
어제것 잘 되었는지 알아보는 명령어들
vagrant ssh m-k8s
: ssh로 들어감- 이거 안되면
vagrant up
해보세요
- 이거 안되면
sudo kubectl get nodes
sudo kubectl get pods --all-namespaces
⇒ 나는 완전히 꼬여서 다시 지웠음
Docker Desktop 에서 미니쿠베를 다운 받는다
- 저기 빨간 네모가 저 초록색이 되어야 한다
- 여기 들어가는거 어디냐고 자꾸 묻는데.. docker settings로 들어가면 바로 있음.. 상단 우측의 setting 아이콘이 있다
- 쿠바네티스 기능을 다 가져올 수 있다
- 위의 확인 명령어를 cmd에서 다시 해보자
kubectl get nodes
kubectl get pods --all-namespaces
xshell
에서 작업 → 나는 cmd
에서 작업 (이후 모든 작업을 cmd에서 하기 때문에 따로 적지 않음)
kubectl create -f C:\HashiCorp\_Book_k8sInfra-main\ch3\3.1.6\nginx-pod.yaml
- 파드?를 만든다??
get pod
- 파드를 get을 통해 있는지 확인해본다..
- docker image 를 통해 nginx 가 있음을 볼 수 있다.
kubectl delete pod nginx-pod
: 삭제kubectl run nginx-pod --image=nginx
이걸로도 만들 수 있다- 이건 파드 1개만 설정 가능
- create를 사용하는 이유?
- deployment 는 파드들을 관리해주는 상위의 설정값들인데, run은 안만들어준다
- 때문에 run으로 했다면 파드들을 관리해주는 상위의 deployment 만들어줘야한다. (책 109page)
kubectl create deployment dpy-nginx --image=nginx
: 이를 통해 만들 수 있다
⇒ 이렇게 나오면 잘된 것이다.
레플리카셋으로 파드 수 관리하기
kubectl scale deployment dpy-nginx --replicas=3
: 파드 3개를 만들거다- deploy로 만들어서 파드를 집어넣을 수 있다
kubectl create deployment dpy-nginx2 --replicas=3 --image=nginx
: nginx로 만드는 deployment를 여러개를 만들 수 있다- nginx의 파드들은 아래 빨간 네모들
- 다 지운다
kubectl delete deployment dpy-nginx
kubectl delete deployment dpy-nginx2
- 그 pod들은 다 오브젝트들이다~!
Spec을 사용해서 오브젝트를 만들어보자
3.2.4/echo-hname.yaml 파일을 확인하자
apiVersion: apps/v1 # API 버전
kind: Deployment # 오브젝트 종류
metadata:
name: echo-hname # deployment 이름
labels:
app: nginx
spec:
replicas: 3 # 몇 개의 피드를 생성할 결정
selector:
matchLabels:
app: nginx
template: # 탬풀랏 지정 labels를 통해서 템플릿을 불러올 수 있음
metadata:
labels:
app: nginx
spec:
containers:
- name: echo-hname
image: sysnet4admin/echo-hname
kubectl api-versions
: 갖고 있는 api들의 버전의 확인이 가능하다.kubectl create -f C:\HashiCorp\_Book_k8sInfra-main\ch3\3.2.4\echo-hname.yaml
: deplyment object를 만든다- 나는 경로까지 야무지게 썼다 ⇒ 잘 됨!!!
pod를 만들자!
C:\HashiCorp\_Book_k8sInfra-main\ch3\3.2.4\nginx-pod.yaml
: 여기에 있어용~
apiVersion: v1 # api 버전
kind: Pod # 오브젝트 종류
metadata: # 메타데이터
name: nginx-pod # 오브젝트 이름
spec:
containers:
- name: container-name
image: nginx
kubectl apply
: ⇒ 내가 yaml 파일을 바꾸고 나서 이를 적용하고 싶을 때 쓰는 명령어
kubectl create deployment output —image=nignx -o yaml > output.yaml
: 해당 명령어는 yaml 파일이 어려운 친구들을 위해 자동으로 만들어주는 명령어다- json 방식도 가능한데, 이유는 api이기 때문이다
- json 객체 타입으로 전환되어서 보인다.
apiVersion: apps/v1
kind: Deployment
metadata:
creationTimestamp: "2024-08-13T06:44:09Z"
generation: 1
labels:
app: output
name: output
namespace: default
resourceVersion: "25682"
uid: 7e752eea-8a46-4241-aa5c-e734d46c04b2
spec:
progressDeadlineSeconds: 600
replicas: 1
revisionHistoryLimit: 10
selector:
matchLabels:
app: output
strategy:
rollingUpdate:
maxSurge: 25%
maxUnavailable: 25%
type: RollingUpdate
template:
metadata:
creationTimestamp: null
labels:
app: output
spec:
containers:
- image: nignx
imagePullPolicy: Always
name: nignx
resources: {}
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
dnsPolicy: ClusterFirst
restartPolicy: Always
schedulerName: default-scheduler
securityContext: {}
terminationGracePeriodSeconds: 30
status: {}
- 이렇게 만들어진다~!
- kubectl exec 명령어 사용:
-
는 pod와 실행할 명령어를 구분하기 위해 사용합니다.- 이 구분자를 사용하지 않아도 되지만, 사용하지 않는 방식은 deprecated(권장되지 않음) 되었습니다.
kubectl exec -it nginx-pod -- /bin/bash
- 배시 명령어 예시:
- 이와 같은 방식으로 컨테이너 내에서 복잡한 배시 명령어를 실행할 수 있습니다.
i=1; while true; do sleep 1; echo $((i++)) `curl --silent 10.1.0.166 | grep title` ; done
- 쿠버네티스의 특징:
- 리소스 삭제는 가능하지만 복잡한 편
- 쿠버네티스의 주요 장점 중 하나는 사용자가 원하는 환경을 일관성 있게 유지할 수 있다
728x90
반응형
'배포 배우기' 카테고리의 다른 글
쿠버네티스 설치 방법 (0) | 2024.08.13 |
---|---|
Docker 2 (0) | 2024.08.11 |
Docker (1) | 2024.08.08 |
CI/CD 배포 (0) | 2024.08.05 |
리눅스 쉘 명령어2 (0) | 2024.07.30 |