작성일: 2024년 3월 1일
Pod 생성 방법 - A
급하게 Pod만 생성해서 Kubernetes 기능을 확인해야 할 경우가 있다.
이럴 때, 아래와 같이 명령 한번 실행해서 Pod를 deploy할 수 있다.
$ kubectl create deployment nginx --image=nginx
또는 아래와 같이 YAML 형식으로 Pod 배포가 가능하다.
Pod 생성 방법 - B
$ kubectl create namespace andrew
$ kubectl apply -n andrew -f - <<EOF
apiVersion: v1
kind: Pod
metadata:
name: almighty
labels:
app: almighty
spec:
terminationGracePeriodSeconds: 3
containers:
- name: almighty
image: docker.io/andrewloyolajeong/almighty:0.2.4
EOF
[ 참고 ]
docker.io/andrewloyolajeong/almighty 컨테이너 이미지 내부 동작에 대한 설명
- NGINX 서버 구동 (TCP 80 포트를 Listening)
- SSHD 서버 구동 (TCP 22 포트를 Listening)
- Golang으로 구현한 Simple HTTP Server 구동 (TCP 8080 포트를 Listeing)
- Golang으로 구현한 UDP 서버 구동 (UDP 9090, 9091, 9092 포트를 사용)
그런 후에 아래와 같이 Service Resource도 만들 수 있다.
Service 리소스 생성 방법
$ kubectl apply -n andrew -f - <<EOF
apiVersion: v1
kind: Service
metadata:
name: almighty
annotations:
## 아래 nlb 타입은 UDP 패킷을 LB 처리하기 위한 설정이다.
## 만약, UDP 패킷을 처리할 일이 없다면, "nlb" 타입을 지정하지 않아도 된다.
oci.oraclecloud.com/load-balancer-type: "nlb" ## Oracle Cloud를 사용하는 경우 설정
spec:
type: LoadBalancer
externalTrafficPolicy: Local ## Public Cloud를 사용하는 경우 설정
selector:
app: almighty
ports:
- name: myweb
protocol: TCP
port: 8080
targetPort: 8080
- name: yourweb
protocol: TCP
port: 1080
targetPort: 80
- name: myudp
protocol: UDP
port: 9090
targetPort: 9090
EOF
PV 생성
진짜 간단하게 PV, PVC 생성에 관해서 작성하려고 했는데 Private Cloud 환경과 Public Cloud 환경에 따라 생성 방법이 다르고,
Public Cloud Infra를 제공하는 회사마다 Manifest 작성 방법이 다 달라서 이 부분은 아래와 같이 해당 Public Cloud Infra의 Web Docs 주소를 남기는 것으로 마무리하겠다.
가장 많이 사용되는 CSI[Cluster Storage Interface] 몇 가지 사례만 사용법을 익히면 될듯하다.
Oracle Cloud Infra를 사용한다면, 아래 Web Docs를 읽고 예제를 따라하면 잘 동작한다.
https://docs.oracle.com/en-us/iaas/Content/ContEng/Tasks/contengcreatingpersistentvolumeclaim.htm