[Kubernetes 시리즈] 제6 편 Ingress controller - nginx 구성 요소 소개
4416 단어 k8snginx클 라 우 드 컴 퓨 팅용기.쿠 베 넷 스
지난 글 에서 우 리 는 helm 을 통 해 traefik 구성 요 소 를 설치 하고 배치 하 는 방법 을 소개 했다. 글 에서 자주 사용 하 는 ingress contrller 는 traefik 뿐만 아니 라 Nginx, HAProxy, Kong 등 도 언급 했다. 이 글 에서 우 리 는 Nginx - ingress 를 설치 하 는 방법 을 소개 했다. 서로 다른 구성 요소 의 사용 경험 을 쌓 은 후에 야 우 리 는 그 우열 을 잘 비교 할 수 있다.최상의 실천 을 이루다.
2. nginx - ingress 구성 요소 의 설치 배치
2.1 helm 을 통 해 nginx - ingress 찾기
# step1: helm nginx-ingress
> helm search nginx-ingress
> helm inspect stable/nginx-ingress
2.2 미 러 다운로드 및 업로드
일부 기업 은 서버 에 외부 네트워크 접근 전략 과 방화벽 이 없 기 때문에 외국 Docker 미 러 를 가 져 올 수 없 기 때문에 필요 한 미 러 를 미리 준비 하고 기업 의 개인 미 러 창고 에 업로드 해 야 합 니 다.
# step2:
> docker pull quay.io/kubernetes-ingress-controller/nginx-ingress-controller:0.25.1
> docker tag quay.io/kubernetes-ingress-controller/nginx-ingress-controller:0.25.1 registry.hankercloud.com/ingress-controller/nginx-ingress-controller:0.25.1
> docker push registry.hankercloud.com/ingress-controller/nginx-ingress-controller:0.25.1
>
> docker pull k8s.gcr.io/defaultbackend-amd64:1.5
> docker tag k8s.gcr.io/defaultbackend-amd64:1.5 registry.hankercloud.com/google_containers/defaultbackend-amd64:1.5
> docker push registry.hankercloud.com/google_containers/defaultbackend-amd64:1.5
2.3 구성 요소 배치
지난 블 로그 에서 저 희 는
Deployment
모델 로 배 치 된 traefik 구성 요 소 를 사용 합 니 다. 이번 에는 DaemonSet
모델 로 nginx - ingress 구성 요 소 를 배치 합 니 다.# step3:
> helm install stable/nginx-ingress --name nginx-ingress --namespace=kube-system \
--set fullnameOverride=nginx-ingress \
--set controller.kind=DaemonSet \
--set controller.daemonset.useHostPort=true \
--set controller.metrics.enabled=true \
--set controller.image.repository=registry.hankercloud.com/ingress-controller/nginx-ingress-controller \
--set defaultBackend.image.repository=registry.hankercloud.com/google_containers/defaultbackend-amd64
# step4:
> helm list
> kubectl get all -n kube-system
> kubectl logs $POD_NAME -n kube-system
2.4 부하 균형 설정 및 도 메 인 이름 분석 처리
이번에 저 희 는 DaemonSet 을 사용 하여 nginx - ingress 구성 요 소 를 배치 하고 호스트 의 80 과 443 인 터 페 이 스 를 사용 하여 http 와 https 요청 을 각각 받 았 습 니 다. 저 희 는 해당 도 메 인 이름 을 nginx - ingress Pod 가 있 는 호스트 IP 로 분석 한 후에 도 메 인 이름 을 통 해 해당 도 메 인 이름 에 접근 할 수 있 습 니 다.
그러나 상기 설정 방식 은 높 은 사용 이 불가능 합 니 다. nginx - ingress 의 Pod 인 스 턴 스 가 고장 나 거나 호스트 가 고장 이 났 을 때 해당 도 메 인 이름 에 접근 할 수 없 기 때문에 공유 클 라 우 드 에서 부하 균형 장 치 를 구 매 하고 해당 하 는 백 엔 드 서버 목록 을 설정 하여 높 은 사용 가능 한 목적 을 실현 하 는 것 을 권장 합 니 다.
2.5 설치 디 버 깅
앞에서 우 리 는 helm 을 통 해 wordpress 응용 프로그램 을 배 치 했 습 니 다. 본 고 는 이 응용 프로그램 을 통 해 도 메 인 이름 을 방문 하고 이 컴퓨터 콘 솔 에 입력
> curl -i http://10.0.0.182 -H 'Host: blog.hankercloud.com'
합 니 다. 정상 적 인 반환 이 있 는 것 을 보면 배치 가 성공 적 이라는 것 을 설명 합 니 다.3. 기업 장면 및 해결 방안
3.1 내외 망 의 격 리 를 어떻게 하 는가
# nginx-ingress :
spec:
template:
spec:
containers:
- args:
- /nginx-ingress-controller
- --default-backend-service=kube-system/nginx-ingress-default-backend
- --election-id=ingress-controller-leader
- --ingress-class=nginx
- --configmap=kube-system/nginx-ingress-controller
# nginx-ingress :
spec:
template:
spec:
containers:
- args:
- /nginx-ingress-controller
- --default-backend-service=kube-system/nginx-ingress-external-default-backend
- --election-id=ingress-controller-leader
- --ingress-class=nginx-external
- --configmap=kube-system/nginx-ingress-external-controller
이들 의 주요 차이 점 은 매개 변수
--ingress-class
가 설정 한 값 이 다르다 는 것 이다.metadata:
name: www
annotations:
kubernetes.io/ingress.class: "nginx-external"
kubectl exec ${POD_NAME} -n kube-system cat /etc/nginx/nginx.conf
설정 파일 에 외부 도 메 인 이름 이 포함 되 어 있 는 지 확인 하 며 로 컬 에서 테스트 검증 https://kubernetes.github.io/ingress-nginx/deploy/
https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[K8s] Kubernetes Pod를 다시 시작하는 방법이 경우 빠르고 쉽게 다시 시작할 수 있는 방법이 필요할 수 있습니다. 따라서 단일 포드를 다시 시작하는 간단한 방법이 없습니다. 이 문서에서 다룰 몇 가지 사용 가능한 옵션이 있습니다. ReplicaSet에서 유지...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.