"쿠버네티스 Container"의 두 판 사이의 차이

 
(사용자 2명의 중간 판 18개는 보이지 않습니다)
1번째 줄: 1번째 줄:
{{다른뜻|컨테이너 (인스턴스)}}
==개요==
==개요==
;k8s Container
;k8s Container
;쿠버네티스 Container
;쿠버네티스 Container
* Pod 내부의 구성요소
* Pod 내부의 구성요소
* k8s에서 직접 작업할 수 없는 단위
* k8s에서 직접 작업(생성/삭제)할 수 없는 단위
:즉, Pod 없이 Container만 생성할 수는 없다.
:즉, Pod 없이 Container만 생성할 수는 없다.


[[File:module_03_nodes.svg|500px]]
[[File:module_03_pods.svg|700px]]


==yaml 예시==
==yaml 예시==
===예시1: Pod===
===예시1: Pod===
<source lang='yaml'>
<syntaxhighlight lang='yaml'>
apiVersion: v1
apiVersion: v1
kind: Pod
kind: Pod
22번째 줄: 23번째 줄:
     image: busybox
     image: busybox
     command: ['sh', '-c', 'echo Hello Kubernetes! && sleep 3600']
     command: ['sh', '-c', 'echo Hello Kubernetes! && sleep 3600']
</source>
</syntaxhighlight>
:→ 컨테이너를 1개 가진 Pod 예시이다.
:→ 컨테이너를 1개 가진 Pod 예시이다.
:→ spec.containers 아래에 컨테이너를 명세한다.
:→ spec.containers 아래에 컨테이너를 명세한다.
28번째 줄: 29번째 줄:


===예시2: Pod===
===예시2: Pod===
<source lang='yaml'>
<syntaxhighlight lang='yaml'>
apiVersion: v1
apiVersion: v1
kind: Pod
kind: Pod
40번째 줄: 41번째 줄:
     - name: MYSQL_ROOT_PASSWORD
     - name: MYSQL_ROOT_PASSWORD
       value: "password"
       value: "password"
     resources:
     resyntaxhighlights:
       requests:
       requests:
         memory: "64Mi"
         memory: "64Mi"
49번째 줄: 50번째 줄:
   - name: wp
   - name: wp
     image: wordpress
     image: wordpress
     resources:
     resyntaxhighlights:
       requests:
       requests:
         memory: "64Mi"
         memory: "64Mi"
56번째 줄: 57번째 줄:
         memory: "128Mi"
         memory: "128Mi"
         cpu: "500m"
         cpu: "500m"
</source>
</syntaxhighlight>
:→ 컨테이너를 2개 가진 Pod 예시이다.
:→ 컨테이너를 2개 가진 Pod 예시이다.
:→ spec.containers 아래에 컨테이너를 명세한다.
:→ spec.containers 아래에 컨테이너를 명세한다.
63번째 줄: 64번째 줄:
===예시3: Deployment===
===예시3: Deployment===
{{소스헤더|nginx-deployment.yaml}}
{{소스헤더|nginx-deployment.yaml}}
<source lang='yaml'>
<syntaxhighlight lang='yaml'>
apiVersion: apps/v1
apiVersion: apps/v1
kind: Deployment
kind: Deployment
85번째 줄: 86번째 줄:
         ports:
         ports:
         - containerPort: 80
         - containerPort: 80
</source>
</syntaxhighlight>
:→ 컨테이너를 1개 가진 Deployment의 예시이다.
:→ 컨테이너를 1개 가진 Deployment의 예시이다.
:→ spec.template.spec.containers 아래에 컨테이너를 명세한다.
:→ spec.template.spec.containers 아래에 컨테이너를 명세한다.


==같이 보기==
==같이 보기==
* [[k8s Pod]]
{{z컬럼3|
* [[컨테이너]]
* [[k8s 파드]]
* [[k8s 워크로드]]
* [[k8s 앱 컨테이너]]
* [[k8s 초기화 컨테이너]]
* [[k8s Container STATE]]
* [[k8s 컨테이너 리소스]]
* [[k8s 컨테이너 프로브]]
* [[쿠버네티스 Container Resource Quota]]
* [[컨테이너 (인스턴스)]]
* [[Docker 컨테이너]]
}}


==참고==
==참고==
* https://kubernetes.io/docs/concepts/containers/
* https://kubernetes.io/docs/concepts/containers/


[[분류: Kubernetes]]
[[분류:K8s Pod]]
[[분류:컨테이너]]

2024년 6월 8일 (토) 14:00 기준 최신판

  다른 뜻에 대해서는 컨테이너 (인스턴스) 문서를 참조하십시오.

1 개요[ | ]

k8s Container
쿠버네티스 Container
  • Pod 내부의 구성요소
  • k8s에서 직접 작업(생성/삭제)할 수 없는 단위
즉, Pod 없이 Container만 생성할 수는 없다.

Module 03 pods.svg

2 yaml 예시[ | ]

2.1 예시1: Pod[ | ]

apiVersion: v1
kind: Pod
metadata:
  name: myapp-pod
  labels:
    app: myapp
spec:
  containers:
  - name: myapp-container
    image: busybox
    command: ['sh', '-c', 'echo Hello Kubernetes! && sleep 3600']
→ 컨테이너를 1개 가진 Pod 예시이다.
→ spec.containers 아래에 컨테이너를 명세한다.
DockerfileCMD처럼, command를 지정할 수 있다.

2.2 예시2: Pod[ | ]

apiVersion: v1
kind: Pod
metadata:
  name: frontend
spec:
  containers:
  - name: db
    image: mysql
    env:
    - name: MYSQL_ROOT_PASSWORD
      value: "password"
    resyntaxhighlights:
      requests:
        memory: "64Mi"
        cpu: "250m"
      limits:
        memory: "128Mi"
        cpu: "500m"
  - name: wp
    image: wordpress
    resyntaxhighlights:
      requests:
        memory: "64Mi"
        cpu: "250m"
      limits:
        memory: "128Mi"
        cpu: "500m"
→ 컨테이너를 2개 가진 Pod 예시이다.
→ spec.containers 아래에 컨테이너를 명세한다.
→ 환경변수, 사용량 제한 등을 적용할 수 있다.

2.3 예시3: Deployment[ | ]

nginx-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
  labels:
    app: nginx
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.7.9
        ports:
        - containerPort: 80
→ 컨테이너를 1개 가진 Deployment의 예시이다.
→ spec.template.spec.containers 아래에 컨테이너를 명세한다.

3 같이 보기[ | ]

4 참고[ | ]

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}