Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- OSI 7 layer
- Redistribute
- Chrony
- vrrp
- crontab
- 스위치
- DHCP
- ACL
- stp
- 헤더
- NAT
- ripng
- tunneling
- 명령어
- ipv6
- 라우터
- eigrp
- 장비
- Etherchannel
- OSPF
- GLBP
- Inter VLAN
- rip
- eigrpv2
- CKA
- ospfv3
- Vlan
Archives
- Today
- Total
Net Eng
[CKA] - Ingress 구성 본문
[선수 작업]
kubectl config set-context k8s --user=kubernetes-admin --cluster=cluster.local
kubectl apply -f - <<EOF
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: appjs
namespace: ingress-nginx
spec:
replicas: 3
selector:
matchLabels:
app: appjs
template:
metadata:
labels:
app: appjs
spec:
containers:
- image: whatwant/node-web:2.0
name: appjs
ports:
- containerPort: 8080
---
apiVersion: v1
kind: Service
metadata:
name: appjs-service
namespace: ingress-nginx
spec:
ports:
- port: 80
targetPort: 8080
selector:
app: appjs
EOF
[문제]
- 작업 클러스터: k8s
- Application Service 운영
- ingress-nginx namespace에 nginx 이미지를 app=nginx 레이블을 가지고 실행하는 nginx pod를 구성하시오.
- 앞서 생성한 nginx pod를 서비스하는 nginx service를 생성하시오.
- 현재 appjs-service Service는 이미 동작 중이다. 별도 구성이 필요 없다.
- Ingress 구성
- app-ingress.yaml 파일을 생성하여 다음 조건의 ingress 서비스를 구성하시오.
- ingress name: app-ingress
- IP:NODE_PORT**/** 접속했을 때 nginx 서비스로 연결
- IP:NODE_PORT**/app** 접속했을 때 appjs-service 서비스로 연결
- Ingress 구성에 다음의 annotations을 포함하시오.
- annotations: kubernetes.io/ingress.class: nginx
- app-ingress.yaml 파일을 생성하여 다음 조건의 ingress 서비스를 구성하시오.
[풀이]
kubectl config use-context k8s
* k8s 클러스터 사용
kubectl run nginx --image=nginx --labels=app=nginx --port=80 -n ingress-nginx
* nginx Pod 생성
kubectl expose pod nginx --port 80 --target-port=80 -n ingress-nginx
* Service 생성
kubectl get svc -n ingress-nginx
kubectl describe svc nginx -n ingress-nginx
* Service 정보 확인
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: app-ingress
namespace: ingress-nginx
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
kubernetes.io/ingress.class: nginx
spec:
ingressClassName: nginx
rules:
- http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: nginx
port:
number: 80
- path: /app
pathType: Prefix
backend:
service:
name: appjs-service
port:
number: 80
* 문제 내용을 바탕으로 ingress의 yaml 파일 작성
kubectl apply -f app-ingress.yaml
* yaml 파일 실행
kubectl get ingress -n ingress-nginx
* Ingress 확인
kubectl describe ingress app-ingress -n ingress-nginx
* 포트 확인
curl node1:31894/
curl node1:31894/app
* 접속 확인

[참고]
인그레스(Ingress)
URI, 호스트네임, 경로 등과 같은 웹 개념을 이해하는 프로토콜-인지형(protocol-aware configuration) 설정 메커니즘을 이용하여 HTTP (혹은 HTTPS) 네트워크 서비스를 사용 가능하게 한다. 인그레스 개념은
kubernetes.io
'Cloud > Kubernetes' 카테고리의 다른 글
[CKA] - Kubernetes Troubleshooting (1) (0) | 2024.01.23 |
---|---|
[CKA] - Kubernetes Upgrade (0) | 2024.01.23 |
[CKA] - Check Resource Information (1) | 2024.01.23 |
[CKA] - Persistent Volume Claim 사용하는 Pod 운영 (0) | 2024.01.22 |
[CKA] - Persistent Volume 생성 (0) | 2024.01.22 |