Я создаю балансировщик нагрузки для consul ui на GKE, используя ingress со следующими конфигурациями
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: public-apis
spec:
rules:
- host: consul.example.com
http:
paths:
- path: /ui/
pathType: Prefix
backend:
serviceName: hashicorp-consul-ui
servicePort: http
Служба hashicorp-consul-ui
- это служба типа clusterIP.
Также я создаю следующий backendConfig
apiVersion: cloud.google.com/v1
kind: BackendConfig
metadata:
name: consul-ui-backendconfig
spec:
healthCheck:
type: HTTP
requestPath: /v1/health/state/failed
port: 80
Я добавляю следующую аннотацию в службу clusterIP hashicorp-consul-ui
'cloud.google.com/backend-config': '{"ports": {"80":"consul-ui-backendconfig"}}'
Этот backendConfig создает проверку работоспособности для серверной службы, созданной входом, эта конечная точка возвращает 200. Но проверка работоспособности не выполняется, и вход находится в неработоспособном состоянии.
Я включил вход в HealthCheck и получаю следующий журнал в NEG
healthCheckProbeResult: {
detailedHealthState: "TIMEOUT"
healthCheckProtocol: "HTTP"
healthState: "UNHEALTHY"
ipAddress: "10.24.1.30"
previousDetailedHealthState: "UNKNOWN"
previousHealthState: "UNHEALTHY"
probeCompletionTimestamp: "2021-02-14T03:31:43.337063261Z"
probeRequest: "/v1/health/state/failed"
probeResultText: "HTTP response: , Error: Connection refused"
probeSourceIp: "35.191.9.211"
responseLatency: "0.001265s"
targetIp: "10.24.1.30"
targetPort: 80
}
Кроме того, не знаю, почему я получил этот журнал только один раз, разве я не должен получать эти журналы через регулярные промежутки времени?
Кроме того, может ли кто-нибудь рассказать мне, как я могу исправить эту проблему HealthCheck?
kubectl describe pod <podname>
. Также убедитесь, что у вас есть необходимые правила брандмауэра для работоспособности. чеки на работу. - person Dylan   schedule 17.02.2021