2023.08.27 - [인프라/Kubernetes] - Kubernetes 실습 및 서비스 구축
다시 로컬로 돌아와서 현재 상태
여기서 인그레스 컨트롤러를 적용하여 사용자가 지정한 규칙에 따라 적절한 마이크로 서비스로 라우팅 해줄 예정입니다.
사용 중인 노드 포트 서비스 종료
root@DESKTOP-Q4VBHGG:/home/yellownyou# kubectl delete service node-port
service "node-port" deleted
root@DESKTOP-Q4VBHGG:/home/yellownyou# kubectl delete service node-port2
service "node-port2" deleted
인그레스 컨트롤러 관련 리소스 설치
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.1.1/deploy/static/provider/cloud/deploy.yaml
서비스 1,서비스2 각각 클러스터 ip 생성
kind-clusterip-service1.yaml
apiVersion: v1
kind: Service
metadata:
name: cluster-ip-service1
spec:
ports:
- name: web-server-port1
port: 7000
targetPort: 8080
selector:
app: my-web-server1
type: ClusterIP
kind-clusterip-service2.yaml
apiVersion: v1
kind: Service
metadata:
name: cluster-ip-service2
spec:
ports:
- name: web-server-port2
port: 7001
targetPort: 8080
selector:
app: my-web-server2
type: ClusterIP
kubectl apply -f kind-clusterip-service1.yaml
kubectl apply -f kind-clusterip-service2.yaml
인그레스 yaml 파일 작성
kind-ingress.yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: ingress
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /$1
spec:
ingressClassName: nginx
rules:
- http:
paths:
- path: /(.*)
pathType: Prefix
backend:
service:
name: cluster-ip-service1
port:
number: 8080
- path: /service2/(.*)
pathType: Prefix
backend:
service:
name: cluster-ip-service2
port:
number: 8080
annotactions:
nginx.ingress.kubernetes.io/rewrite-target: /
이걸 사용하면 경로를 /service2 부분을 빼고 연결 해 줍니다.
root@DESKTOP-Q4VBHGG:/home/yellownyou# kubectl apply -f kind-ingress.yaml
root@DESKTOP-Q4VBHGG:/home/yellownyou# kubectl get service --all-namespaces
NAMESPACE NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
default cluster-ip-service1 ClusterIP 10.96.254.222 <none> 7000/TCP 7m7s
default cluster-ip-service2 ClusterIP 10.96.173.147 <none> 7001/TCP 7m4s
default kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 3d19h
default nfs-service ClusterIP 10.96.192.4 <none> 2049/TCP,111/UDP 3d19h
ingress-nginx ingress-nginx-controller LoadBalancer 10.96.75.97 <pending> 80:30990/TCP,443:32256/TCP 12m
ingress-nginx ingress-nginx-controller-admission ClusterIP 10.96.94.133 <none> 443/TCP 12m
kube-system kube-dns ClusterIP 10.96.0.10 <none> 53/UDP,53/TCP,9153/TCP 3d19h
kube-system metrics-server ClusterIP 10.96.117.28 <none> 443/TCP 39m
테스트
정상적으로 작동 하는 것을 볼 수 있습니다.
관련 코드는
https://github.com/Sihyun3/LearningKubernetes
에서 확인 할 수 있습니다.
'인프라 > Kubernetes' 카테고리의 다른 글
AWS EKS 생성 (0) | 2023.09.12 |
---|---|
Jenkins를 통한 Kubernetes rolling update (0) | 2023.09.03 |
Kubernetes Pods Auto Scalling (0) | 2023.09.03 |
Kubernetes 퍼시스턴트 볼륨 (0) | 2023.08.31 |
Kubernetes 디플로이먼트 정의 및 노드 포트 서비스 연동 (0) | 2023.08.28 |