파드
서비스
네임스페이스
볼륨
1. 계속 동작하게 하고 싶을 때
...
command: ["/bin/sh", "-c", "sleep 3600"]
2. 사용자가 원하는 명령을 내리고 싶을 때
한번에 처리
... command: ["/bin/sh", "-c", "echo run mutiple-command-v1 && sleep 3600"]
나눠서 처리
... command: ["/bin/sh", "-c", "echo run mutiple-command-v2; sleep 3600"]
여러 줄로 처리
... command: - "/bin/sh" - "-c" - echo run mutiple-command-v3 sleep 3600
명령에 인자(args)를 추가하는 방법
...
command: ["/bin/sh", "-c"]
args:
-
echo run mutiple-command-w-args
echo add commentary
sleep 3600
도커(이미지)필드 이름 | 쿠버네티스에 대응되는 필드 이름 | 설명 |
---|---|---|
Entrypoint | command | 컨테이너에서 실행되는 커맨드 |
Cmd | arg | 커맨드에 전달되는 인자들 |
이미지 Entrypoint | 이미지 Cmd | 컨테이너 command | 컨테이너 args | 실행되는 커맨드 |
---|---|---|---|---|
ep | run cmd | 설정되지 않음 | 설정되지 않음 | ep run cmd |
ep | run cmd | c-ep | 설정되지 않음 | c-ep |
ep | run cmd | 설정되지 않음 | c-args | ep c-args |
ep | run cmd | c-ep | c-args | c-ep c-args |
EX)
apiVersion: v1 kind: Pod metadata: labels: run: po-nginx name: po-nginx spec: containers: - image: nginx name: nginx
version
, kind
, metadata
, spec
는 리소스를 정의할 때 반드시 필요한 요소입니다.
API
apiVersion : apps/v1 설정 kind : Deployment metadata : name에 오브젝트의 이름을 설정 spec : 디플로이먼트의 사용을 기술 replicas : 파드 템플릿을 사용해서 가동할 파드의 수를 지정 selector : matchLabels의 라벨을 통해 실행할 템플릿을 찾는다. template.metadata.labels의 값과 일치하지 않으면 에러 발생 template : metadata: labels: selector에서 지정한 matchLabels의 값과 같은 값을 입력 spec: containers: 컨테이너 스펙을 작성
EX
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: deploy-nginx
name: deploy-nginx
spec:
replicas: 3
selector:
matchLabels:
app: po-nginx
template:
metadata:
labels:
app: po-nginx
spec:
containers:
- name: nginx
image: nginx
label을 체크
해서 원하는 수
의 Pod이 없으면 새로운 Pod
을 생성합니다.정의 | 설명 |
---|---|
spec.selector | label 체크 조건 |
spec.replicas | 원하는 Pod의 개수 |
spec.template | 생성할 Pod의 명세 |
EX)
apiVersion: apps/v1 kind: ReplicaSet metadata: labels: app: rs-nginx name: rs-nginx spec: replicas: 3 selector: matchLabels: app: po-nginx template: metadata: labels: app: po-nginx spec: containers: - image: nginx name: nginx
쿠버네티스에서 Job(잡)은 실행해야 할 작업 집합을 나타냅니다.
curlchk
에 hoon
(존재하지 않음)
restartPolicy
job-completions
job-parallelism
job-activedeadlineseconds
job-ttlsecondsafterfinished
apiVersion: batch/v1 kind: CronJob metadata: name: cj-1m-hist10-curl spec: schedule: "*/1 * * * *" successfulJobsHistoryLimit: 10 jobTemplate: # Template for job spec: # same as before template: spec: containers: - name: net-tools image: sysnet4admin/net-tools command: ["curlchk", "nginx"] restartPolicy: Never
* /10 * * * *
0 2 * * *
successfulJobsHistoryLimit: 10
apiVersion: apps/v1 kind: DaemonSet metadata: labels: app: ds-nginx name: ds-nginx spec: selector: matchLabels: app: po-nginx template: metadata: labels: app: po-nginx spec: containers: - name: nginx image: nginx
kind
는 대소문자 구분해야한다.DaemonSet
는 replicas
가 존재하지 않는다.순서
를 가지고 순서에 맞게 이름을 가집니다.StatefulSet
으로 배포합니다.apiVersion: apps/v1 kind: StatefulSet metadata: name: sts-chk-hn spec: replicas: 3 serviceName: sts-svc-domain #statefulset 에 꼭 필요하다. selector: matchLabels: app: sts template: metadata: labels: app: sts spec: containers: - name: chk-hn image: sysnet4admin/chk-hn