Skip to content

Commit

Permalink
add healthcheck cmd to probe live and ready
Browse files Browse the repository at this point in the history
  • Loading branch information
huangjunwei committed Dec 27, 2021
1 parent 5803198 commit c510b43
Show file tree
Hide file tree
Showing 7 changed files with 51 additions and 27 deletions.
16 changes: 10 additions & 6 deletions cmd/cmdmain.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package main

import (
"github.com/kubeovn/kube-ovn/cmd/controller_health_check"
"os"
"strings"

Expand All @@ -15,12 +16,13 @@ import (
)

const (
CmdController = "kube-ovn-controller"
CmdDaemon = "kube-ovn-daemon"
CmdMonitor = "kube-ovn-monitor"
CmdPinger = "kube-ovn-pinger"
CmdSpeaker = "kube-ovn-speaker"
CmdWebHook = "kube-ovn-webhook"
CmdController = "kube-ovn-controller"
CmdDaemon = "kube-ovn-daemon"
CmdMonitor = "kube-ovn-monitor"
CmdPinger = "kube-ovn-pinger"
CmdSpeaker = "kube-ovn-speaker"
CmdWebHook = "kube-ovn-webhook"
CmdControllerHealthCheck = "kube-ovn-controller-healthcheck"
)

func main() {
Expand All @@ -39,6 +41,8 @@ func main() {
speaker.CmdMain()
case CmdWebHook:
webhook.CmdMain()
case CmdControllerHealthCheck:
controller_health_check.CmdMain()
default:
klog.Fatalf("%s is an unknown command", cmd)
}
Expand Down
33 changes: 33 additions & 0 deletions cmd/controller_health_check/controller_health_check.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
package controller_health_check

import (
"fmt"
"github.com/kubeovn/kube-ovn/pkg/ovs"
"k8s.io/klog/v2"
"net"
"os"
"strings"
"time"
)

func CmdMain() {
content, err := os.ReadFile("/var/run/ovn/ovn-nbctl.pid")
if err != nil {
klog.Fatalf("failed to get ovn-nbctl daemon pid, %s", err)
}
daemonPid := strings.TrimSuffix(string(content), "\n")
if err := os.Setenv("OVN_NB_DAEMON", fmt.Sprintf("/var/run/ovn/ovn-nbctl.%s.ctl", daemonPid)); err != nil {
klog.Fatalf("failed to set env OVN_NB_DAEMON, %v", err)
}
if err := ovs.CheckAlive(); err != nil {
os.Exit(1)
}
conn, err := net.DialTimeout("tcp", "127.0.0.1:10660", 3*time.Second)
if err != nil {
klog.Fatalf("failed to probe the socket, %s", err)
}
err = conn.Close()
if err != nil {
klog.Fatalf("Unexpected error closing TCP probe socket: %v (%#v)", err, err)
}
}
3 changes: 2 additions & 1 deletion dist/images/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -15,4 +15,5 @@ RUN ln -s /kube-ovn/kube-ovn-cmd /kube-ovn/kube-ovn-controller && \
ln -s /kube-ovn/kube-ovn-cmd /kube-ovn/kube-ovn-monitor && \
ln -s /kube-ovn/kube-ovn-cmd /kube-ovn/kube-ovn-pinger && \
ln -s /kube-ovn/kube-ovn-cmd /kube-ovn/kube-ovn-speaker && \
ln -s /kube-ovn/kube-ovn-cmd /kube-ovn/kube-ovn-webhook
ln -s /kube-ovn/kube-ovn-cmd /kube-ovn/kube-ovn-webhook && \
ln -s /kube-ovn/kube-ovn-cmd /kube-ovn/kube-ovn-controller-healthcheck
6 changes: 2 additions & 4 deletions dist/images/install.sh
Original file line number Diff line number Diff line change
Expand Up @@ -1921,15 +1921,13 @@ spec:
readinessProbe:
exec:
command:
- bash
- /kube-ovn/kube-ovn-controller-healthcheck.sh
- /kube-ovn/kube-ovn-controller-healthcheck
periodSeconds: 3
timeoutSeconds: 45
livenessProbe:
exec:
command:
- bash
- /kube-ovn/kube-ovn-controller-healthcheck.sh
- /kube-ovn/kube-ovn-controller-healthcheck
initialDelaySeconds: 300
periodSeconds: 7
failureThreshold: 5
Expand Down
8 changes: 0 additions & 8 deletions dist/images/kube-ovn-controller-healthcheck.sh

This file was deleted.

6 changes: 2 additions & 4 deletions yamls/kube-ovn-ipv6.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -78,15 +78,13 @@ spec:
readinessProbe:
exec:
command:
- bash
- /kube-ovn/kube-ovn-controller-healthcheck.sh
- /kube-ovn/kube-ovn-controller-healthcheck
periodSeconds: 3
timeoutSeconds: 45
livenessProbe:
exec:
command:
- bash
- /kube-ovn/kube-ovn-controller-healthcheck.sh
- /kube-ovn/kube-ovn-controller-healthcheck
initialDelaySeconds: 300
periodSeconds: 7
failureThreshold: 5
Expand Down
6 changes: 2 additions & 4 deletions yamls/kube-ovn.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -80,15 +80,13 @@ spec:
readinessProbe:
exec:
command:
- bash
- /kube-ovn/kube-ovn-controller-healthcheck.sh
- /kube-ovn/kube-ovn-controller-healthcheck
periodSeconds: 3
timeoutSeconds: 45
livenessProbe:
exec:
command:
- bash
- /kube-ovn/kube-ovn-controller-healthcheck.sh
- /kube-ovn/kube-ovn-controller-healthcheck
initialDelaySeconds: 300
periodSeconds: 7
failureThreshold: 5
Expand Down

0 comments on commit c510b43

Please sign in to comment.