我尝试使用 haproxy 作为负载均衡,使用 haproxy-ingress 作为 k8s 中的入口控制器。
我的负载平衡配置:
frontend MyFrontend_80
bind *:80
bind *:443
mode tcp
default_backend TransparentBack_https
backend TransparentBack_https
mode tcp
balance roundrobin
option ssl-hello-chk
server MyWebServer1 10.5.5.53
server MyWebServer2 10.5.5.54
server MyWebServer3 10.5.5.55
Run Code Online (Sandbox Code Playgroud)
入口文件:
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: li
namespace: li
annotations:
# add an annotation indicating the issuer to use.
cert-manager.io/cluster-issuer: "letsencrypt-staging"
#haproxy.org/forwarded-for: true
kubernetes.io/ingress.class: haproxy
ingress.kubernetes.io/ssl-redirect: "true"
spec:
rules:
- host: a.b.c
http:
paths:
- path: /storage
backend:
serviceName: li-frontend
servicePort: 80
tls:
- …Run Code Online (Sandbox Code Playgroud) 此配置适用于其他集群,但不适用于我部署的最后一个集群。我的 RBAC 配置存在某种问题。
kubectl get pods -n ingress-controller
NAME READY STATUS RESTARTS AGE
haproxy-ingress-b4d969b8b-dw65k 0/1 CrashLoopBackOff 15 52m
ingress-default-backend-f5dfbf97-6t72p 1/1 Running 0 52m
Run Code Online (Sandbox Code Playgroud)
kubectl logs -n ingress-controller -l run=haproxy-ingress
I0120 11:55:17.347244 6 launch.go:151]
Name: HAProxy
Release: v0.8
Build: git-1351a73
Repository: https://github.com/jcmoraisjr/haproxy-ingress
I0120 11:55:17.347337 6 launch.go:154] Watching for ingress class: haproxy
I0120 11:55:17.347664 6 launch.go:364] Creating API client for https://10.3.0.1:443
I0120 11:55:17.391439 6 launch.go:376] Running in Kubernetes Cluster version v1.16 (v1.16.4) - git (clean) commit 224be7bdce5a9dd0c2fd0d46b83865648e2fe0ba - platform linux/amd64
F0120 11:55:17.401773 …Run Code Online (Sandbox Code Playgroud) 我在 Kubernetes AKS 中有 HA 代理入口。升级 Kubernetes 版本后,我从 HA 代理收到错误。我尝试通过修改旧版本来解决问题,haproxy.yaml以避免弃用的 API 并获取 HA 代理入口的最新映像。但错误仍然存在。我该如何修复这些错误?
我也尝试过这个答案,但它对我不起作用。
我在 github 上检查了这个问题,但尽管我使用 v0.12-snapshot.3,错误仍然存在。
这是我修改后的 haproxy.yaml:
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: ingress-controller
namespace: default
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRole
metadata:
name: ingress-controller
rules:
- apiGroups:
- ""
resources:
- configmaps
- endpoints
- nodes
- pods
- secrets
verbs:
- list
- watch
- apiGroups:
- ""
resources:
- nodes
verbs:
- get
- apiGroups:
- "" …Run Code Online (Sandbox Code Playgroud)