赞
踩
#查看node kubectl get nodes #查看pod kubectl get pods --all-namespaces #查看指定namespace下的pod kubectl get pods -n namespace #执行yaml文件 kubectl apply -f xxx.yaml #查看service kubectl get svc --all-namespaces #查看描述信息 kubectl describe pod kube-flannel-ds-jffqd -n kube-system #查看pod所在节点 kubectl get pods -o wide --all-namespaces #查看apiVersion对应版本 kubectl explain pod #进入pod kubectl exec -it "podName" /bin/bash #强制删除Pod,例如僵尸pod kubectl delete pod "podName" --grace-period=0 --force #使用yaml文件删除pod kubectl delete -f "xxx.yaml"
创建静态pod的方式
1、通过配置文件放在特定目录下的标准的 JSON 或 YAML 格式的 pod 定义文件,kubelet 定期的去扫描这个目录,需要在kubelet的启动配置文件中加入如下环境变量
Environment="KUBELET_SYSTEM_PODS_ARGS=--pod-manifest-path=/etc/kubernetes/manifests --allow-privileged=true" cat /etc/kubernetes/manifests/static.yaml apiVersion: v1 kind: Pod metadata: name: static-pod labels: app: static-web spec: containers: - name: web image: nginx ports: - name: web containerPort: 80
两种钩子函数
apiVersion: v1 kind: Pod metadata: name: hook-demo1 labels: app: hook spec: containers: - name: hook-demo1 image: nginx ports: - name: webport containerPort: 80 lifecycle: postStart: exec: command: ["/bin/sh","-c","echo Hello hook > /usr/share/message"]
apiVersion: v1 kind: Pod metadata: name: hook-demo2 labels: app: hook spec: containers: - name: hook-demo2 image: nginx ports: - name: webport containerPort: 80 volumeMounts: - name: message mountPath: /usr/share lifecycle: preStop: exec: command: ['/bin/sh', '-c', 'echo Hello from the preStop Handler > /usr/share/message'] volumes: - name: message hostPath: path: /data
实现钩子函数的两种方式
1、Pod的生命周期
2、探针的配置方式
###存活探针 apiVersion: v1 kind: Pod metadata: name: liveness-exec labels: app: liveness spec: containers: - name: liveness image: busybox args: - /bin/sh - -c - touch /tmp/healthy; sleep 5; rm -rf /tmp/healthy; sleep 600 livenessProbe: exec: command: - cat - /tmp/healthy initialDelaySeconds: 5 #5秒后开始探测 periodSeconds: 5 #每隔5秒探测一次
Init Container就是用来做初始化工作的容器,可以是一个或者多个,如果有多个的话,这些容器会按定义的顺序依次执行,只有所有的Init Container执行完后,主容器才会被启动。一个Pod里面的所有容器是共享数据卷和网络命名空间的,所以Init Container里面产生的数据可以被主容器使用到的。
Init Container的使用场景
试例
apiVersion: v1 kind: Pod metadata: name: init-demo spec: initContainers: - name: install image: busybox command: - wget - "-O" - "/work-dir/index.html" - http://www.baidu.com volumeMounts: - name: workdir mountPath: "/work-dir" containers: - name: nginx image: nginx ports: - containerPort: 80 volumeMounts: - name: workdir mountPath: /usr/share/nginx/html volumes: - name: workdir emptyDir: {}
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。