apiVersion: v1 kind: pod metadata: kubia-gpu spec: nodeSelector: gpu: "true" containers: - image: luksa/kubia name: kubia
探针:对于pod中容器要进行监控,可以用探针。 3种探针方式: http get 返回2xx,3xx 也就是没错误4xx,5xx tcp 套接字 能建立连接正常,反之不正常 exec 执行某个命令,成功即0,否则失败 http get的描述方法:
apiVersion: v1 kind: Pod metadata: name: kubia-liveneess spec: containers: - image: luksa/kubia-unhealthy name: kubia livenessProbe: httpGet: path: / port: 8080
luksa/kubia-unhealthy 这个镜像为node.js,提供web服务,其中应用中添加了让此web服务只在前5次正常返回,5次后就会返回错误。 一般错误3次后,就会重启容器,那么你想看容器错误日志就要看上次的日志因此要用 --previous参数 kuectl logs mypod --previous 使用kubectl describe po pod-id能看到具体的错误代码,以及在底部显示了容器为什么终止,--kubernetes发现容器不健康,所以终止并重新创建 默认在描述了探针,pod在启动的时候就会在刚刚启动时进行一次检测,因此最好的做法是给检测加一个初始延迟。
apiVersion: v1 kind: Pod metadata: name: kubia-liveneess spec: containers: - image: luksa/kubia-unhealthy name: kubia livenessProbe: httpGet: path: / port: 8080 initialDelaySeconds: 15初始延迟为15秒