Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- aws
- AI
- IntelliJ
- Elasticsearch
- kotlin spring
- 기록으로 실력을 쌓자
- 공부
- 정보처리기사 실기 기출문제
- CKA
- APM
- 정보처리기사 실기
- MySQL
- Java
- 티스토리챌린지
- 코틀린 코루틴의 정석
- minikube
- PETERICA
- 정보처리기사실기 기출문제
- Kubernetes
- kotlin querydsl
- kotlin coroutine
- Pinpoint
- CKA 기출문제
- Spring
- Linux
- AWS EKS
- mysql 튜닝
- 오블완
- CloudWatch
- kotlin
Archives
- Today
- Total
피터의 개발이야기
[kubernetes] kubectl yaml 파일 생성, 쿠버네티스 yaml 작성 본문
반응형
ㅁ 들어가며
쿠버네티스의 pod, deployment를 생성하기 위해 template를 작성하야 한다. kubectl로 쉽게 샘플 yaml파일 만드는 방법을 정리하였다.
## 목차 ##
dry-run 옵션 사용
생성된 Pod 정보에서 샘플 얻기
kubernetes 공식문서에서 샘플 얻기
ㅁ dry-run 옵션 사용
ㅇ dry-run 옵션은 실제 구동하는 것이 아니라 테스트를 위한 옵션이다.
ㅇ --dry-run=client 요청 시 client에 요청을 보내면 kubectl client가 해석을 하여 yaml 파일을 생성해 준다.
$ k run nginx-pod --image=nginx:alpine --dry-run=server -o yaml
apiVersion: v1
kind: Pod
metadata:
creationTimestamp: "2024-01-17T04:18:30Z"
labels:
run: nginx-pod
name: nginx-pod
namespace: default
uid: 789ec33f-afbb-4b60-96a5-b327666743c5
spec:
containers:
- image: nginx:alpine
imagePullPolicy: IfNotPresent
name: nginx-pod
resources: {}
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
volumeMounts:
- mountPath: /var/run/secrets/kubernetes.io/serviceaccount
name: kube-api-access-zt4pt
readOnly: true
dnsPolicy: ClusterFirst
enableServiceLinks: true
preemptionPolicy: PreemptLowerPriority
priority: 0
restartPolicy: Always
schedulerName: default-scheduler
securityContext: {}
serviceAccount: default
serviceAccountName: default
terminationGracePeriodSeconds: 30
tolerations:
- effect: NoExecute
key: node.kubernetes.io/not-ready
operator: Exists
tolerationSeconds: 300
- effect: NoExecute
key: node.kubernetes.io/unreachable
operator: Exists
tolerationSeconds: 300
volumes:
- name: kube-api-access-zt4pt
projected:
defaultMode: 420
sources:
- serviceAccountToken:
expirationSeconds: 3607
path: token
- configMap:
items:
- key: ca.crt
path: ca.crt
name: kube-root-ca.crt
- downwardAPI:
items:
- fieldRef:
apiVersion: v1
fieldPath: metadata.namespace
path: namespace
status:
phase: Pending
qosClass: BestEffort
ㅇ --dry-run= server은 controlplane의 api-server에게 요청을 하여 샘플 yaml 파일을 받는다.
ㅇ 다른 메타정보가 포함되어 있어서 샘플 yaml로 사용하기는 부적합하다.
$ kubectl create deployment webapp --image=kodekloud/webapp-color --replicas=3 --dry-run=client -o yaml
apiVersion: apps/v1
kind: Deployment
metadata:
creationTimestamp: null
labels:
app: webapp
name: webapp
spec:
replicas: 3
selector:
matchLabels:
app: webapp
strategy: {}
template:
metadata:
creationTimestamp: null
labels:
app: webapp
spec:
containers:
- image: kodekloud/webapp-color
name: webapp-color
resources: {}
status: {}
ㅇ deployment 샘플 yaml을 얻을 때에는 create 명령어를 이용한다.
ㅇ run의 다양한 옵션을 추가하여 샘플 yaml를 얻을 수 있다.
ㅁ 생성된 Pod 정보에서 샘플 얻기
# 이미 pod가 존재하는 경우
$ k get po nginx-pod
NAME READY STATUS RESTARTS AGE
nginx-pod 1/1 Running 0 84s
# 출력 옵션 yaml 사용
$ k get po nginx-pod -o yaml
apiVersion: v1
kind: Pod
metadata:
annotations:
kubectl.kubernetes.io/last-applied-configuration: |
{"apiVersion":"v1","kind":"Pod","metadata":{"annotations":{},"creationTimestamp":null,"labels":{"run":"nginx-pod"},"name":"nginx-pod","namespace":"default"},"spec":{"containers":[{"image":"nginx:alpine","name":"nginx-pod","resources":{}}],"dnsPolicy":"ClusterFirst","restartPolicy":"Always"},"status":{}}
creationTimestamp: "2024-01-17T04:23:03Z"
labels:
run: nginx-pod
name: nginx-pod
namespace: default
resourceVersion: "1054"
uid: 3e0fd779-1424-4595-9d15-505464d5c984
spec:
containers:
- image: nginx:alpine
~~~~~~~~~~~~~~₩
ㅇ 이미 생성된 Pod로부터 샘플 yaml을 얻을 수 있다.
ㅇ 기존에 생성되어 있어서 metadata가 존재하지만, 비슷한 Pod를 생성할 경우 필요없는 정보만 삭제하여 재사용을 할 수 있어서 작업이 편리한 방법이다.
ㅁ kubernetes 공식문서에서 샘플 얻기
ㅇ 쿠버네티스 공식 문서에서 원하는 Object를 검색한다.
ㅇ 샘플 yaml정보를 쉽게 찾을 수 있다.
ㅇ 오른쪽 상단의 복사버튼을 클릭한다.
ㅇ 샘플 yaml 텍스트가 복사된다.
ㅇ 필요한 곳에 붙여서 사용하기 편하다.
ㅁ 함께 보면 좋은 사이트
반응형
'Kubernetes > 기초공부' 카테고리의 다른 글
[kubernetes] 스케줄링 명령어 연습문제 (0) | 2024.01.17 |
---|---|
[kubernetes] kubectl object 생성 실습문제 (0) | 2024.01.17 |
[kubernetes] Service 기본 명령어 (0) | 2024.01.16 |
[kubernetes] NameSpace 기본 명령어 (0) | 2024.01.15 |
[kubernetes] Deployments 기본 명령어 (1) | 2024.01.15 |
Comments