您现在的位置是:首页 >学无止境 >Kubernetes 服务发现与负载均衡网站首页学无止境
Kubernetes 服务发现与负载均衡
简介Kubernetes 服务发现与负载均衡
云原生技术公开课笔记
应用的状态可以被实时观测:
- 健康状态
- 资源使用
- 实时日志
- Liveness Probe(就绪探针)
- Readness(存活探针)
应用健康状态
探测方式
- httpGet 发送 HTTP 请求返回200-399状态码表明容器健康
- Exec 通过执行命令来检查服务是否正常,命令返回0表示容器健康
- tcpSocket 通过容器的 IP 和端口执行 TCP 检查,如果能够建立 TCP 连接表示容器健康
探测结果
- Success 容器通过了检查
- Failure 容器未通过检查
- Unknown 未能执行检查,不采取任何操作
重启策略
- Always 总是重启
- OnFailure 失败才重启
- Never 永不重启
API 对象
exec
apiVersion: v1
kind: Pod
metadata:
labels:
test: liveness
name: liveness-exec
spec:
containers:
- name: liveness
image: k8s.gcr.io/busybox
args:
- /bin/sh
- -c
- touch /tmp/healthy; sleep 30; rm -rf /tmp/healthy; sleep 600;
livenessProb:
exec:
command:
- cat
- /tmp/healthy
initialDelaySeconds: 5
periodSeconds: 5
httpGet
apiVersion: v1
kind: Pod
metadata:
labels:
test: liveness
name: liveness-http
spec:
containers:
- name: liveness
image: k8s.gcr.io/liveness
args:
- /server
livenessProb:
httpGet:
path: /healthz
port: 8000
httpHeaders:
- name: Custom-Header
value: Awesome
initialDelaySeconds: 5
periodSeconds: 5
tcpSocket
apiVersion: v1
kind: Pod
metadata:
name: goproxy
labels:
app: goproxy
spec:
containers:
- name: goproxy
image: k8s.gcr.io/goproxy:0.1
ports:
- containerPort: 8000
readnessProbe:
tcpSocket:
port: 8000
initialDelaySeconds: 5
periodSecond: 10
livenessProbe:
tcpSocket:
port: 8000
initialDelaySeconds: 5
periodSecond: 20
参数
- initialDelaySeconds Pod 启动后延迟多久进行检查
- periodSeconds 检查的间隔时间
- timeoutSeconds 探测的超时时间
- successThreshold 探测失败后再次判断成功的阈值
- failureThreshold 探测失败的重试次数
风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。