/var/log/messages
yaml 파일로 컨테이너 배포하기 본문
YAML의 기본 구조:
간단하고 읽기 쉬움: YAML은 "YAML Ain't Markup Language"의 약자로, JSON과 유사한 구조를 가지면서도 더 간단하고 읽기 쉬운 형식을 제공합니다.
키-값 쌍: YAML 파일은 키-값 쌍으로 구성되며, 이러한 키-값 쌍은 데이터의 구조와 관계를 나타냅니다.
들여쓰기: YAML에서는 데이터의 계층 구조를 표현하기 위해 들여쓰기를 사용합니다.
쿠버네티스와 컨테이너 설정:
리소스 정의: 쿠버네티스에서는 Pod, Service, Deployment와 같은 리소스를 정의하기 위해 YAML 파일을 사용합니다.
컨테이너 설정: YAML 파일 내의 spec.containers 섹션은 컨테이너의 이름, 사용할 이미지, 포트, 환경 변수 등 컨테이너와 관련된 설정을 포함합니다.
apiVersion: v1
kind: Pod
metadata:
name: mypod
labels:
app: myapp
spec:
containers:
- name: mycontainer
image: myimage:latest
ports:
- containerPort: 80
이 예제에서는 간단한 Pod를 정의하고 있으며, 이 Pod에는 하나의 컨테이너가 포함되어 있습니다.
apiVersion: 쿠버네티스 API의 버전을 나타냅니다.
kind: 생성하려는 쿠버네티스 객체의 종류를 나타냅니다. 여기서는 Pod입니다.
metadata: 객체에 대한 메타데이터를 제공합니다. 여기서는 이름과 레이블을 지정합니다.
spec: 객체의 원하는 상태를 정의합니다. 여기서는 컨테이너의 이름, 이미지, 그리고 포트를 지정합니다.
컨테이너 정의:
name: 컨테이너의 이름을 지정합니다.
image: 사용할 컨테이너 이미지를 지정합니다.
ports: 컨테이너에서 열려 있는 네트워크 포트를 지정합니다.
YAML 파일로 컨테이너 배포:
kubectl apply -f [yaml-file].yaml 명령어를 사용하여 쿠버네티스 클러스터에 YAML 파일을 적용하고, 해당 설정에 따라 컨테이너를 배포할 수 있습니다.
nginx를 기반으로 동작하는 컨테이너를 정의해보겠습니다.
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
spec:
replicas: 2
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:latest
이 파일을 kubectl apply -f <파일-이름>.yaml 을 사용하면 배포가 됩니다.
pod의 상태 확인은 get과 describe로 할 수 있는데, get은 간단하게 확인하고 describe는 자세하게 확인할 수 있습니다.
get으로 확인하기:
NAME READY STATUS RESTARTS AGE
nginx-deployment-6799fc88d8-2lfbv 1/1 Running 0 1m
nginx-deployment-6799fc88d8-vgz7d 1/1 Running 0 1m
describe로 확인하기(축약):
Name: nginx-deployment-6799fc88d8-2lfbv
Namespace: default
Priority: 0
Node: k8s-node/10.128.0.4
Start Time: Mon, 04 Oct 2021 11:00:00 +0000
Labels: app=nginx
pod-template-hash=6799fc88d8
...
Containers:
nginx:
Container ID: docker://d3f07b8d716e
Image: nginx:latest
...
'Rancher' 카테고리의 다른 글
Rancher 2.7v 접속해보기 (0) | 2023.06.19 |
---|---|
SLES 15SP4에서 docker 기반 Rancher(랜처) 2.7v 설치하기 (0) | 2023.06.05 |
컨테이너와 쿠버네티스 소개: 도커와 오케스트레이션 (0) | 2023.05.31 |
클라우드와 온 프라미스 환경에서의 DevOps와 컨테이너 (0) | 2023.05.21 |
컨테이너 vs 가상화 (0) | 2023.05.15 |