https://kubernetes.github.io/ingress-nginx/deploy/#using-helm
1) Metallb
Hiện tại mình cũng chưa có nhu cầu cài lại Metallb và vẫn đang chạy ở phiện bản 1.12.1
Tin mới là metallb đã có breaking changes in 0.13.x
Cài đặt metallb trước để auto nhận các service LB
kubectl create ns metallb
helm repo add metallb https://metallb.github.io/metallb
helm install metallb metallb/metallb
Phần config trong file value để tạo 1 range IP cho LB
configInline:
address-pools:
- name: default
protocol: layer2
addresses:
- 192.168.21.240-192.168.21.250
addresses:
- 192.168.21.240-192.168.21.250
Đây là range IP mà bạn sẽ cấp cho các ingress có Type LoadBalancer
2) Ingress Nginx
kubectl create ns ingress-nginx
helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
helm repo update
helm install ingress-nginx ingress-nginx/ingress-nginx
Trước khi intall export value.yaml và sửa 1 số chi tiết sau:
CÒn nếu bạn sài argocd thì
Thực hành tạo ingress trên rancher he. tạo bằng cmd thì người ta chỉ đầy rồi.
ở phần này nói thêm với rancher khi mà bạn tạo ingress mà bạn workload như hình trên hình thì nó sẽ tạo cho bạn 1 service select tới workload của bạn.
Rồi nó nào 1 ingress select vào service mà rancher tạo.
Vì mình đã có service rồi nên ko chơi cách này.
Configure to provide internal or private IP for Service with type LoadBalancer on EKS
apiVersion: v1 kind: Service metadata: name: argocd-server namespace: argocd labels: app.kubernetes.io/component: server app.kubernetes.io/instance: argocd app.kubernetes.io/name: argocd-server app.kubernetes.io/part-of: argocd annotations: service.beta.kubernetes.io/aws-load-balancer-internal: 'true' #look at spec: ports: - name: http protocol: TCP port: 80 targetPort: 8080 nodePort: 30009 - name: https protocol: TCP port: 443 targetPort: 8080 nodePort: 32184 selector: app.kubernetes.io/name: argocd-server type: LoadBalancer #look at
Create Ingress for any service not inside the k8s cluster
Kubernetes Ingress to External Service
Deploy Network load balancer (NLB) to expose the NGINX Ingress
https://easoncao.com/eks-best-practice-load-balancing-3-en/
apiVersion: v1 kind: Service metadata: annotations: service.beta.kubernetes.io/aws-load-balancer-backend-protocol: tcp service.beta.kubernetes.io/aws-load-balancer-cross-zone-load-balancing-enabled: "true" service.beta.kubernetes.io/aws-load-balancer-type: nlb labels: app.kubernetes.io/component: controller app.kubernetes.io/instance: ingress-nginx app.kubernetes.io/name: ingress-nginx app.kubernetes.io/part-of: ingress-nginx app.kubernetes.io/version: 1.1.3 name: ingress-nginx-controller namespace: ingress-nginx spec: externalTrafficPolicy: Local ports: - appProtocol: http name: http port: 80 protocol: TCP targetPort: http - appProtocol: https name: https port: 443 protocol: TCP targetPort: https selector: app.kubernetes.io/component: controller app.kubernetes.io/instance: ingress-nginx app.kubernetes.io/name: ingress-nginx type: LoadBalancer
Monitoring Ingress Nginx on Kubernetes
https://github.com/kubernetes/ingress-nginx/blob/main/docs/user-guide/monitoring.md
Comments on “[Ingress Nginx/MetalLB] Install Ingress Nginx trên K8s bằng helm”