概念

Pod 是由一个或多个为了管理和联网而绑定在一起的容器构成的组。

Deployment 用于管理运行一个应用负载的一组 Pod,通常适用于不保持状态的负载。

一个 Deployment 为 Pod 和 ReplicaSet 提供声明式的更新能力。

Service 是公开 Pod 的虚拟网络外部访问。

--type=LoadBalancer 参数表明 Service 暴露到集群外部。

Helm 是一种管理预配置 Kubernetes 资源包的工具。

将多个资源归入同一个文件(在 YAML 中使用 --- 分隔)可以简化对多个资源的管理。
资源会按照在清单中出现的顺序创建。 因此,最好先指定 Service,这样可以确保调度器能在控制器(如 Deployment)创建 Pod 时对 Service 相关的 Pod 作分布。

查看内存占用

kubectl exec -it pod-name -- bash -c '
   for pid in /proc/[0-9]*; do
     p=${pid#/proc/}
     if [ -r "/proc/$p/status" ]; then
       rss=$(awk "/VmRSS:/{print \$2}" /proc/$p/status 2>/dev/null)
       cmd=$(tr "\0" " " < /proc/$p/cmdline 2>/dev/null | cut -c1-120)
       [ -n "$cmd" ] && echo "$p $((rss / 1024))MB $cmd"
     fi
   done | sort -k2 -rn | head -20'

---

docker exec -it pod-name bash -c '
   for pid in /proc/[0-9]*; do
     p=${pid#/proc/}
     if [ -r "/proc/$p/status" ]; then
       rss=$(awk "/VmRSS:/{print \$2}" /proc/$p/status 2>/dev/null)
       cmd=$(tr "\0" " " < /proc/$p/cmdline 2>/dev/null | cut -c1-120)
       [ -n "$cmd" ] && echo "$p $((rss / 1024))MB $cmd"
     fi
   done | sort -k2 -rn | head -20'