New to Voyager? Please start here.
Server Health Check
You can enable haproxy-health-checks for a specific backend server by applying ingress.appscode.com/check and ingress.appscode.com/check-port annotations to the corresponding service. You can also configure health-check behavior using backend rules.
Example
First deploy and expose a test server:
$ kubectl apply -f test-server.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    run: test-server
  name: test-server
  namespace: default
spec:
  selector:
    matchLabels:
      run: test-server
  template:
    metadata:
      labels:
        run: test-server
    spec:
      containers:
      - image: appscode/test-server:2.2
        name: test-server
---
apiVersion: v1
kind: Service
metadata:
  labels:
    run: test-server
  name: test-server
  namespace: default
spec:
  ports:
  - port: 8080
    targetPort: 8080
    name: web
  - port: 9090
    targetPort: 9090
    name: health
  selector:
    run: test-server
Here, port 8080 will serve client’s request and port 9090 will be used for health checks.
Then deploy the ingress:
$ kubectl apply test-ingress.yaml
apiVersion: voyager.appscode.com/v1
kind: Ingress
metadata:
  name: test-ingress
  namespace: default
spec:
  rules:
  - http:
      paths:
      - path: /app
        backend:
          service:
            name: test-server
            port:
              number: 8080
Now we need to annotate the backend service to enable health check for that backend.
$ kubectl annotate svc test-server ingress.appscode.com/check="true"
$ kubectl annotate svc test-server ingress.appscode.com/check-port="9090"
You can also specify the health-check behaviour using backend rules. For example:
apiVersion: voyager.appscode.com/v1
kind: Ingress
metadata:
  name: test-ingress
  namespace: default
spec:
  rules:
  - http:
      paths:
      - path: /app
        backend:
          service:
            name: test-server
            port:
              number: 8080
          backendRules:
          - 'option httpchk GET /testpath/ok'
          - 'http-check expect rstring (testpath/ok)'







