k8s 初识pod (二)

kubernetes中调用pod到哪一个节点上是可有可无的,但因为实际状况,每台node的硬件环境不一致,因此某些状况要求将不一样pod调到指定节点上运行。也能够经过label实现。
kubectl label node node-id gpu=true
将pod调用到此节点只须要在yaml中描述到
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秒
相关文章
相关标签/搜索