쿠버네티스가 정상적으로 설치 되었으면 이제 컨테이너를 올려야 합니다.
redhat에 있는 쿠버네티스 구성도 입니다.
출처 : https://www.redhat.com/ko/topics/containers/what-is-kubernetes
기본(default) namespace를 사용해도 되지만 pod들의 양이 많아지면 편하게 관리하기 위해서라도 namespace로 구분하는게 좋습니다.
namespace
namespace 확인
kubectl get namespaces
namespace 만들기
kubectl create namespace firstns
생성한 namesapce를 현재 쉘에서 고정으로 사용
kubectl config set-context --current --namespace=firstns
namespace 확인
kubectl config view | grep name
pod yaml 파일 생성(줄을 잘 맞춰야 함)
cat apache.yaml
apiVersion: v1
kind: Pod
metadata:
name: apache
labels:
app: myweb
spec:
containers:
- name: myweb-container
image: httpd:2.4
ports:
- containerPort: 80
pod는 쿠버네티스에서 가장 작은 단위 입니다.
이론적으로 하나의 pod 안에 여러 컨테이너를 넣을수 있기도 하지만 실제로는 하나의 pod에 하나의 컨테이너만 씁니다.
(스케일링, 배포, 복제 등 관리에서 비효율 적이기 때문입니다)
pod
pod 생성
kubectl create -f apache.yaml
확인
kubectl get pods
pods의 namespace 확인하기
kubectl get pods --all-namespaces
service
pod를 생성 했다고 바로 접근 할 수 없습니다. 그래서 service를 생성합니다. 그냥 중계기라고 생각하셔도 무방합니다.
https://kubernetes.io/ko/docs/concepts/services-networking/service/
service yaml 파일 생성합니다.
cat web-service.yaml
apiVersion: v1
kind: Service
metadata:
name: web-service
spec:
ports:
- port: 8001
targetPort: 80
selector:
app: myweb
service 생성 합니다.
kubectl create -f web-service.yaml
확인
kubectl get svc
접근해 봅니다.
curl 10.98.31.162:8001
'CLOUD > CUBE' 카테고리의 다른 글
쿠버네티스(Kubernetes) - Cluster IP, Nodeport (0) | 2021.11.08 |
---|---|
쿠버네티스(Kubernetes) yaml file - replica, deployment (0) | 2021.11.06 |
쿠버네티스 설치(Kubernetes install)하면서 발생한 에러 및 해결방법 (0) | 2021.10.30 |
도커 컴포즈(Docker Compose) 설치(install) 및 실행(up) (0) | 2021.10.25 |
쿠버네티스 설치(Kubernetes install) (0) | 2021.10.24 |