| title | Kubernetes | |
|---|---|---|
| date | 2018-12-15 03:28:19 -0800 | |
| tags |
|
|
| categories |
|
💠
💠 2025-05-26 20:49:09
Official site | Github | 中文文档
kwok
模拟 K8s 集群的工具。它可以在几秒钟内搭建一个由数千个节点组成的 Kubernetes 集群
浅谈 k8s+docker 资源监控 | 基于 Kubernetes 构建 Docker 集群管理详解
Kubernetes 学习笔记
Kubernetes 中文社区
Kubernetes 使用教程
参考: kubeadm 搭建 kubernetes 集群
参考: Kubernetes 国内镜像、下载安装包和拉取 gcr.io 镜像
参考: 国内服务器安装 kubernetes 一路坑,求大神指点
- 注意 Deepin 上不要安装 kubernetes-client 这个是 1.7 版本, 类似于 docker.io 这样的老旧版本
使用阿里云的镜像进行安装
# 均以 root 运行
apt update && apt install -y apt-transport-https
curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add -
echo "deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main" > /etc/apt/sources.list.d/kubernetes.list
apt install kubelet kubeadm kubectl
deb http://apt.kubernetes.io/ kubernetes-xenial main虽然这才是官方源,奈何是 Google 服务器
结论:pod尽量按过往监控的情况设置合理的 requests 和 limits, 如果仍有明显的倾斜,可以配置节点亲和 nodeAffinity
例如如下配置只会将pod调度到03和04两个Node上, 对应于Kuboard的操作路径为 高级设置 -> 节点调度策略 -> 根据【节点亲和性】选择节点 -> 选择标签和值
spec:
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/hostname
operator: In
values:
- node03
- node04通过合理地设置 pod 的 QoS 可以进一步提高集群稳定性:不同 QoS 的 Pod 具有不同的 OOM 分数,当出现资源不足时,集群会优先 Kill 掉 Best-Effort 类型的 Pod ,其次是 Burstable 类型的 Pod ,最后是Guaranteed 类型的 Pod
CPU 属于可压缩资源,其中 CPU 资源的分配和管理是 Linux 内核借助于完全公平调度算法( CFS )和 Cgroup 机制共同完成的。
Pod内应用使用的 buff/cache 也算到了容器使用量,而不是常见的RSS用量,导致应用超申请被killbuffer/cach内存占用过高及k8s java后端pod容器超出内存限制被kill重启_pod内存占用过高-CSDN博客
大多数命令和 Docker 是类似的,只不过加上了 namespace 的概念
- 查看日志: kubectl logs --namespace namespace pod
复制测试环境yaml到生产
- 命名空间一致性
- template 里 的labels 需要删除 pod-template-hash