跳至主要內容
kubernetes-pod

Pod 排错

常用命令

  • 查看 Pod 状态: kubectl get pod <POD_NAME> -o wide
  • 查看 Pod 的 yaml 配置: kubectl get pod <POD_NAME> -o yaml
  • 查看 Pod 事件: kubectl describe pod <POD_NAME>
  • 查看容器日志: kubectl logs <POD_NAME> [-c <CONTAINER_NAME>]

容器技术kubernetes介绍kubernetes介绍大约 3 分钟
kubernetes资源

日常节点运维

## 列出集群中的所有节点
kubectl get nodes
kubectl get nodes -o wide
kubectl get nodes -o wide --show-labels=true

## 将节点标记为不可调度,避免新的Pod在此节点创建和运行:
kubectl cordon <node-name>

## 驱逐节点上的Pod容器组,被驱逐的Pod将在其它节点重新创建运行:
kubectl drain <node-name> --delete-local-data --ignore-daemonsets --force
# 这里有3个参数:
#   --ignore-daemonsets, 忽略 DaemonSet 管理的 Pod(避免删除,创建这样的死循环)。
#   --delete-local-data,使用 emptyDir 数据卷的 Pod 也要删除。
#   --force,不是由 ReplicationController 、ReplicaSet 、Job 、DaemonSet 、StatefulSet 管理的Pod(没有绑定任何控制器)也要删除。

容器技术kubernetes介绍kubernetes介绍小于 1 分钟
kubernetes无状态

无状态

就是没有特殊状态的服务,各个请求对于服务器来说统一无差别处理,请求自身携带了所有服务端所需要的所有参数。没有要实时保存的数据。

Pod

Pod是一个逻辑概念,它是Kubernetes资源调度的单元,一般会把一组功能强相关的容器逻辑上称之为一个pod,Pod就是所说的实例。

缺点: 不支持高并发, 高可用, 当Pod当机后无法自动恢复。

pod

容器技术kubernetes介绍kubernetes介绍大约 2 分钟
kubernetes守护进程

DaemonSet 简介

服务守护进程,它的主要作用是在Kubernetes集群的所有节点中运行我们部署的守护进程,相当于在集群节点上分别部署Pod副本,如果有新节点加入集群,DaemonSet会自动的在该节点上运行我们需要部署的Pod副本,相反如果有节点退出集群,DaemonSet也会移除掉部署在旧节点的Pod副本。

DaemonSet示例

DaemonSet一般运行在集群的所有节点上,是一些常驻服务,通常可以用来收集日志,作为存储节点,运行监控进程等。

下面是一个日志收集的DaemonSet的定义:


容器技术kubernetes介绍kubernetes介绍小于 1 分钟