AWS ALB 및 nginx-ingress-controller를 사용한 Kubectl exec/port-forward
3187 단어 kubernetesalbnginxaws
kubectl exec -it app -- bash
Error from server (BadRequest): Upgrade request required
exec 및 port forward는 SPDY 프로토콜을 사용하고 있으며 ALB는 이를 지원하지 않습니다.
HTTPS 요청은 사용자에서 ALB로 이동한 다음 ALB에서 SSL이 종료되고 요청은 Rancher 서비스로 전달된 후 Nginx 컨트롤러 서비스로 전달됩니다.
그 후에 다음을 수행해야 합니다.
1- Nginx 수신 컨트롤러 설치
Kubernetes v1.19+ 버전 4.x.x 사용
Kubernetes v1.16+ 버전 3.x.x 사용
helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
helm repo update
helm upgrade --install nginx ingress-nginx/ingress-nginx --namespace cattle-system --set controller.service.type=NodePort --set controller.service.targetPorts.https=http --set-string controller.config.use-forwarded-headers="true" --version 3.12.0
2- Rancher Ingress 편집
kubectl edit ingress -n cattle-system rancher
다음을 사용하여 사양 내부의 호스트 및 이름을 변경합니다.
spec:
rules:
- host: '*.example.com'
http:
paths:
- backend:
service:
name: nginx-ingress-nginx-controller
port:
number: 80
pathType: ImplementationSpecific
3- 다음을 사용하여 새 인그레스를 만듭니다.
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
annotations:
name: rancher-exec
namespace: cattle-system
spec:
rules:
- host: 'rancher.example.com'
http:
paths:
- backend:
service:
name: rancher
port:
number: 80
pathType: ImplementationSpecific
kubectl exec 및 port-forward 테스트
kubectl create deployment nginx2 --image nginx:alpine
kubectl expose deployment nginx2 --port=80
kubectl exec -it nginx2-XXXXX -- sh
kubectl port-forward service/nginx2 --address 0.0.0.0 80:80
*Kubernetes v1.19+를 사용 중인 경우 *
nginx 버전 4.x.x를 설치해야 합니다.
helm upgrade --install nginx ingress-nginx/ingress-nginx --namespace cattle-system --set controller.service.type=NodePort --set controller.service.targetPorts.https=http --set-string controller.config.use-forwarded-headers="true" --version 4.2.3
rancher-exec에 대해서만 ingressClassName: nginx를 추가해야 합니다.
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
annotations:
name: rancher-exec
namespace: cattle-system
spec:
ingressClassName: nginx
rules:
- host: 'rancher.example.com'
http:
paths:
- backend:
service:
name: rancher
port:
number: 80
pathType: ImplementationSpecific
참고: rancher ingress에 ingressClassName: nginx를 추가하면 ALB가 제거됩니다.
Reference
이 문제에 관하여(AWS ALB 및 nginx-ingress-controller를 사용한 Kubectl exec/port-forward), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/aws-builders/kubectl-execport-forward-with-aws-alb-and-nginx-ingress-controller-4fn0텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)