apiVersion: apps/v1
kind: Deployment
metadata:
name: eva-west
labels:
app: eva
release: west
spec:
replicas: 2
selector:
matchLabels:
app: eva
release: west
template:
metadata:
labels:
app: eva
release: west
spec:
containers:
- name: nginx
image: nginx:latest
ports:
- containerPort: 80
- name: redis
image: redis
volumeMounts:
- name: redis-storage
mountPath: /data/redis
volumes:
- name: redis-storage
emptyDir: {}
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: eva-east
labels:
app: eva
release: east
spec:
replicas: 2
selector:
matchLabels:
app: eva
release: east
template:
metadata:
labels:
app: eva
release: east
spec:
containers:
- name: nginx
image: nginx:latest
ports:
- containerPort: 80
- name: redis
image: redis
volumeMounts:
- name: redis-storage
mountPath: /data/redis
volumes:
- name: redis-storage
emptyDir: {}
kubectl apply -f two-replicas-with-label.yaml
kubectl get pod -l app=eva
replicaSet ( east, west ) 확인
apiVersion: v1
kind: Service
metadata:
name: eva
spec:
type: NodePort
selector:
app: eva
release: west
ports:
- name: http
port: 80
kubectl apply -f simple-service.yaml
위에서 설정한 NodePort (외부 에서 들어오는 포트) 가 80번 포트로 연결됨
kubectl cluster-info (master IP 주소 확인)
해당 NodePort 를 열어줬으니 masterIP 를 이용해 해당 포트로 들어가보자 하지만 나는 현재 minikube를 사용중이라 MasterIP를 사용해서 NodePort 를 사용하지 못함 그러므로 minikube service를 사용해 터미널을 따로 또 뚫기를 요청해서 nginx에 접근 필요
우리가 생성한 pod(eva) 에 존재하는 nginx에 접근해보자 그러기 위해서 또 다른 alphine 컨테이너 생성
alphine 컨테이너 띄우기
apk add curl
curl http://eva 수행
kubectl logs -f {Pod ID} nginx
kubectl logs -f eva-west-6668567578-7dp4w nginx