티스토리 뷰
1. ingress 리소스에서 사용할 host를 서버의 /etc/hosts에 정의하기
2. loadbalancer 타입으로 만들고 externalip지정하기
미리 준비할 것
- 베어메탈/etc/hosts에 ingress에서 사용할 host정의하기
- nginx ingress controller 설치하고, ingressClassName 해결하기
- nginx ingress controller의 네임스페이스와 실제 ingress를 만들 네임스페이스 달라도 상관 없다
- 왜냐하면 ingressClassName에서 default로 연결했기 때문
- 싱글 namespace만 특정하고 싶다면 nginx ingress controller의 deploy에 arg로 설정(공홈 & 구글링 참조)
필요한 파일
1 | deployment.yaml | |
2 | service.yaml | 베어메탈이어도 loadBalancer타입으로 만들어서 externalIP를 지정해주기 |
3 | ingress.yaml | 연결하고자하는 서비스의 네임스페이스를 지정하기 (추가 서비스를 연결한다면 그건 headless service이용) |
ingress.yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: AAAAAAAAAAAAAA-deploy
namespace: AAAAAAAAAAAAAA-ns
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- host: AAAAAAAAAAAAAA.kr
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: AAAAAAAAAAAAAA-service
port:
number: 3000
service.yaml
apiVersion: v1
kind: Service
metadata:
name: AAAAAAAAAAAA-service
namespace: AAAAAAAAAAAA-ns
spec:
externalTrafficPolicy: Local
type: LoadBalancer
externalIPs:
- AAAAAAAAAAA-serverIP
ports:
- port: 80
targetPort: 80
protocol: TCP
name: http
- port: 443 #필수아님
targetPort: 443
protocol: TCP
name: https
selector:
app: AAAAAAAAAAAA
deployment.yaml
원하는대로
'CLOUD > Kubernetes' 카테고리의 다른 글
[Kubernetes] secret을 만들어서 ingress에 openssl tls적용 (crt, key) (0) | 2021.11.01 |
---|---|
[쿠버네티스] Ingress 에서 HTTPS 적용하기 (cert-manager, let's encrypt) (0) | 2021.11.01 |
ingressClassName 기본으로 지정하기 (0) | 2021.10.28 |
쿠버네티스 포트포워딩 (0) | 2021.10.26 |
[Argocd 계정 추가] argocd 회원가입하기 (0) | 2021.10.25 |