일반적으로 사용하는 helm의 stable repo가 업데이트를 중단했고,
k8s는 빠르게 업데이트 되는 중이다.
stable/nginx-ingress는 사용하기엔 너무 옛날 버전이라서,
k8s에서 따로 배포하는 ingress-nginx repo를 사용해 ingress-controller를 설정해 보았다.
nginx pod와 service 생성
# mynginx.yaml
apiVersion: v1
kind: Pod
metadata:
labels:
run: mynginx
name: mynginx
spec:
containers:
- image: nginx:1.16
name: mynginx
resources: {}
restartPolicy: Always
---
apiVersion: v1
kind: Service
metadata:
name: nginxsvc
spec:
ports:
- port: 80
protocol: TCP
targetPort: 80
selector:
run: mynginx
Service의 Type은 ClusterIP로 설정한다.
kubectl apply -f mynginx.yaml
helm repo 추가
helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
Ingress namespace 생성
kubectl create ns ingress-nginx
helm repo update & search
helm repo update
helm search repo ingress-nginx
helm install ingress-nginx
helm install ingress-nginx ingress-nginx/ingress-nginx -n ingress-nginx
kubectl get pod -n ingress-nginx
kubectl get svc -n ingress-nginx
ingress가 구동되었다.
ingress-controller 생성
# mynginx-ingress.yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/rewrite-target: /
name: mynginx-ingress
spec:
rules:
# - host: -> domain이 없는 경우 생략 가능
- http:
paths:
- path: /nginx
pathType: Prefix
backend:
service:
name: nginxsvc
port:
number: 80
kubectl apply -f mynginx-ingress.yaml
kubectl get ing
추가사항
Error from server (InternalError): error when creating "aomd-ingress.yaml": Internal error occurred: failed calling webhook "validate.nginx.ingress.kubernetes.io": failed to call webhook: Post "https://ingress-nginx-controller-admission.ingress-nginx.svc:443/networking/v1/ingresses?timeout=10s": context deadline exceeded
ingress controller 가 제대로 생성되지 않고, 위와 같은 에러가 발생한다면
동작에 직접적인 영향을 미치지 않는 webhook을 제거하면 된다.
kubectl delete validatingwebhookconfiguration ingress-nginx-admission
연결 확인
참조
'DevOps > Kubernetes' 카테고리의 다른 글
Kubeadm 으로 K8s 설치하기 with 자동화 스크립트 (3) | 2022.06.10 |
---|---|
[kubernetes] ubuntu에 kubeadm으로 K8s 설치하기 (cgroup, coredns 해결) (0) | 2022.04.05 |
[Kubernetes] No Ingressclass resource with name nginx found 문제 해결하기 (Helm stable repo) (0) | 2022.03.31 |
[kubernetes] #10 쿠버네티스 영속성 데이터와 볼륨 (0) | 2022.03.14 |
[kubernetes] #9 쿠버네티스 Ingress 란? (0) | 2022.03.09 |