Documentation ¶
Index ¶
Constants ¶
const ( // nolint: revive, stylecheck FmtOpenMetrics_0_0_1 = expfmt.OpenMetricsType + `; version=` + expfmt.OpenMetricsVersion_0_0_1 + `; charset=utf-8` // nolint: revive, stylecheck FmtOpenMetrics_1_0_0 = expfmt.OpenMetricsType + `; version=` + expfmt.OpenMetricsVersion_1_0_0 + `; charset=utf-8` FmtText = `text/plain; version=` + expfmt.TextVersion + `; charset=utf-8` )
const ( // KubeAppProberEnvName is the name of the command line flag for pilot agent to pass app prober config. // The json encoded string to pass app HTTP probe information from injector(istioctl or webhook). // For example, ISTIO_KUBE_APP_PROBERS='{"/app-health/httpbin/livez":{"httpGet":{"path": "/hello", "port": 8080}}. // indicates that httpbin container liveness prober port is 8080 and probing path is /hello. // This environment variable should never be set manually. KubeAppProberEnvName = "ISTIO_KUBE_APP_PROBERS" )
Variables ¶
var ( UpstreamLocalAddressIPv4 = &net.TCPAddr{IP: net.ParseIP("127.0.0.6")} UpstreamLocalAddressIPv6 = &net.TCPAddr{IP: net.ParseIP("::6")} )
var ( EnableHTTP2Probing = env.Register("ISTIO_ENABLE_HTTP2_PROBING", true, "If enabled, HTTP2 probes will be enabled for HTTPS probes, following Kubernetes").Get() LegacyLocalhostProbeDestination = env.Register("REWRITE_PROBE_LEGACY_LOCALHOST_DESTINATION", false, "If enabled, readiness probes will be sent to 'localhost'. Otherwise, they will be sent to the Pod's IP, matching Kubernetes' behavior.") ProbeKeepaliveConnections = env.Register("ENABLE_PROBE_KEEPALIVE_CONNECTIONS", false, "If enabled, readiness probes will keep the connection from pilot-agent to the application alive. "+ "This mirrors older Istio versions' behaviors, but not kubelet's.").Get() )
var PrometheusScrapingConfig = env.Register("ISTIO_PROMETHEUS_ANNOTATIONS", "", "")
Functions ¶
func FormatProberURL ¶
FormatProberURL returns a set of HTTP URLs that pilot agent will serve to take over Kubernetes app probers.
func ProbeDialer ¶
copied from https://github.com/kubernetes/kubernetes/blob/v1.27.0-alpha.1/pkg/probe/dialer_others.go#L27 ProbeDialer returns a dialer optimized for probes to avoid lingering sockets on TIME-WAIT state. The dialer reduces the TIME-WAIT period to 1 seconds instead of the OS default of 60 seconds. Using 1 second instead of 0 because SO_LINGER socket option to 0 causes pending data to be discarded and the connection to be aborted with an RST rather than for the pending data to be transmitted and the connection closed cleanly with a FIN. Ref: https://issues.k8s.io/89898
Types ¶
type KubeAppProbers ¶
KubeAppProbers holds the information about a Kubernetes pod prober. It's a map from the prober URL path to the Kubernetes Prober config. For example, "/app-health/hello-world/livez" entry contains liveness prober config for container "hello-world".
type Options ¶
type Options struct { // Ip of the pod. Note: this is only applicable for Kubernetes pods and should only be used for // the prober. PodIP string // KubeAppProbers is a json with Kubernetes application prober config encoded. KubeAppProbers string NodeType model.NodeType StatusPort uint16 AdminPort uint16 IPv6 bool Probes []ready.Prober EnvoyPrometheusPort int Context context.Context FetchDNS func() *dnsProto.NameTable NoEnvoy bool GRPCBootstrap string EnableProfiling bool // PrometheusRegistry to use. Just for testing. PrometheusRegistry prometheus.Gatherer Shutdown context.CancelCauseFunc TriggerDrain func() }
Options for the status server.
type Prober ¶
type Prober struct { HTTPGet *apimirror.HTTPGetAction `json:"httpGet,omitempty"` TCPSocket *apimirror.TCPSocketAction `json:"tcpSocket,omitempty"` GRPC *apimirror.GRPCAction `json:"grpc,omitempty"` TimeoutSeconds int32 `json:"timeoutSeconds,omitempty"` }
Prober represents a single container prober