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秒

上一篇:Kubernetes 实战 —— 02. 开始使用 Kubernetes 和 Docker


下一篇:Kubernetes之Ingress