011、012、DaemonSet典型应用
DaemonSet在每个Node上最多只能运行一个副本。
应用场景:
在集群的每个节点上运行存储Daemon
在每个节点上运行日志收集Daemon
在每个节点上运行监控Daemon
↓
↓
其实k8s自己就在用DaemonSet运行系统组件。
DaemonSet kube-flannel-ds和kube-proxy分别负责在每个节点上运行flannel和kube-proxy组件。
kubectl get daemonset --namespace=kube-system
kubectl get pod --namespace=kube-system -o wide
↓
↓
kube-proxy的YAML无法拿到,可用命令查看其配置
kubect edit daemonset kube-proxy --namespace=kube-system
↓
↓
每个当前运行的资源都可以通过 kubectl edit 查看其配置和运行状态:
kubectl edit deployment nginx-deployment
kubectl apply -f node_exporter.yml
kubectl get pod -o wide
部署成功,k8s-node1和k8s-node2上分别运行了一个node exporter Pod。
014、用k8s运行一次性任务
工作类容器是一次性任务。
Deployment、ReplicaSet和DaemonSet都用于管理服务类容器。
对于工作类容器,用Job。
↓
↓
kubectl apply -f myjob.yml
kubectl get job
kubectl get pod
kubectl get pod --show-all # --show-all才能查看Completed状态的pod
kubectl logs myjob-nfkxk # 查看Pod的标准输出
015、Job失败了怎么办?
在myjob.yml中故意加入一个错误。
kubectl apply -f myjob.yml
kubectl get job # SUCCESSFUL为0
kubectl get pod --show-all # 有很多个Pod,状态为ContainerCannotRun
kubectl describe pod myjob-rbs1x # 查看某个Pod的启动日志