Kubernetes Atlas¶
Kubernetes是Google基于其内部容器管理技术研发的开源实现,简单而言,就是容器的编排管理平台(Orchestrate)。正如Docker技术使得容器易于分发和运行,Kubernetes的诞生带来了数据中心视野的容器调度能力。随着Kubernetes技术发展,它已经不仅是容器调度技术,也逐步发展为容器-原生虚拟化和serverless计算的平台。
kubernetes管理了容器规模,从边缘计算的微小集群到数据中心超大规模集群,在公有云和私有云环境都得到了广泛应用。由于按需调度运行容器,通过”复杂”的技术结合到当前广泛使用的云计算平台,可以充分释放云计算的灵活性和规模化。
备注
虽然Docker/Kubernetes一直承诺我们更快速的部署,易于管理和强大的伸缩性,但是,就如同漂浮在海面上的冰山,你所看到的简洁易用是建立在底层无数辛勤开发和部署的云计算工作之上的。目前的技术发展趋势是,不断把客户的复杂度降低,把所有的脏活累活都下沉到系统平台。所以,决不要以为Kubernetes横空出世就解决了一切问题。恰恰相反,分布式、高可用、容灾、实时计算,随着规模的不断膨胀,这些技术的挑战越来越大。
从阿里云转岗到蚂蚁金服,从事了五年的围绕Kubernetes的工作,这个领域太过复杂,需要重新 Kubernetes的思考
备注
学习资料
Google推出的Kubernetes提供了大规模部署和管理容器的基础平台,但是学习曲线比较陡峭。从我个人的学习经验来看,官方文档是最为全面和系统的,并且 Google提供的在线教程 设计精巧,并且提供在线模拟,非常适合入门。难得的是,这部分官方教程是提供中文版的,方便了国内技术爱好者学习。本书的 Kubernetes快速起步 就是我学习该教程的实践笔记(我是从英文版翻译摘要和改写,并加入了我自己的一些实践内容,所以和官方教程有所差异)。
Google提供的在线教程 介绍了不同平台提供的 kubernetes在线教程 ,我粗略看了一下各有侧重,值得尝试。
阿里云联合CNCF推出的云原生技术公开课 由一线工程师和开源社区一起制作,讲解清晰,并且中文授课,推荐学习。
- Kubernetes的思考
- Kubernetes概览
- Kubernetes起步准备
- Kubernetes快速起步
- Kubernetes CLI
- kind(本地docker模拟k8s集群)
- Docker in Docker架构
- kind集群简介
- Kind快速起步
- kind集群
- kind多节点集群
- 编译Kind
- 从Kubernetes源代码构建Kind集群
- 排查kind集群创建失败
- 排查X86移动云Kind创建失败
- 排查kind重启失败
- 修复kind集群重启异常
- 加载kind镜像
- kind集群本地Registry
- kind dev集群架构
- 在kind运行简单的容器
- kind部署
fedora-dev
- kind部署
fedora-dev-tini
(tini替代systmed) - kind Ingress
- kind Ingress Nginx
- 在 kind 部署MetalLB
- Docker Desktop for mac 端口转发(port forwarding)
- (未成功)Docker Desktop for mac部署kind容器使用共享NFS卷
- (正在探索)Docker Desktop for mac部署kind容器通过
SSH Tunnel
使用共享NFS卷
- Kubernetes概念辨析
- Kubernetes部署
- 墙内K8s部署
- Kubernetes集群引导(单master)
- 部署etcd
- Kubernetes集群引导(高可用)
- Kubernetes部署无状态应用
- Kubernetes应用部署方法Operator
- helm
- Kubernetes部署Pod
- Kubernetes部署Daemonset
- Kubespray
- kOps
- 部署Nginx Ingress Controller
- 部署HAProxy Ingress Controller
- 部署Istio Ingress Controller
- 在minikube中部署私有Docker镜像仓库
- Draft - Kubernetes应用部署工具
- kustomize
- Kubebuilder
- Kubernetes终端服务kubebox
- 在单台MBP笔记本上部署Kubernetes
- Kubernetes部署应用
- Kubernetes管理对象
- Kubernetes管理
- Kubernetes仪表盘
- 配置pod和容器
- 删除Kubernetes集群
- 暂停节点调度(cordon)
- 安全地清空一个Kubernetes节点
- 驱逐(evicted) Pods
- 从Kubernetes集群删除节点
- 指定Kubernetes工作节点内网IP
- 使用端口转发来访问Kubernetes集群应用
- 获取指定节点上的pods
- Kubernetes节点CPU管理策略
- 更改Kubernetes的镜像配置registry
- 使用kubeadm管理Kubernetes
- 扩展Kubernetes
- etcd - 分布式kv存储
- CoreDNS
- Kubernetes Federation
- Kubernetes策略配置
- Kubernetes访问应用
- 容器运行时(Container Runtimes)
- Kubernetes 配置
- Kubernetes网络
- Kubernetes实践
- Kubernetes NUMA
- Kubernetes备份与恢复
- Kubernetes存储
- Kubernetes 容器存储接口(Container Storage Interface, CSI)
- OpenEBS 基于容器的块存储(Container Attached Storage)
- 在Kubernetes中部署hostPath存储
- Kubernetes local存储
- 在Kubernetes中部署NFS
- 在Kubernetes中部署GlusterFS
- 在Kubernetes中部署iSCSI
- 在Kubernetes中部署Cephfs
- 在Kubernetes中部署RBD存储
- Kubernetes存储平台
- Rook - 云原生存储调度器
- Kadalu - GlusterFS后端k8s持久化存储
- Heketi - 云原生GlusterFS管理框架
- Kubernetes生产环境
- Service Mesh
- Istio服务网格
- Kubernetes Severless
- Kubernetes持续集成和持续部署
- Kubernetes监控
- Kubernetes 自愈
- Kubernetes排查
- crictl
- 通过crictl运行一个容器sidecar进行debug
- 获得容器shell
- 获取Kubernetes Pod日志
- Kubelet证书过期
- Kubelet启动异常排查
- Apiserver证书过期
- Kubernetes pod CrashLoopBackOff错误排查
- apiserver服务器无法连接端口2379
- 排查Kubernetes节点NotReady
- Kubernetes节点NotReady排查(kubelet)
- Kubernetes管控节点Pods创建”CreateContainerError”
- 排查已经被删除pods(重启)
- 获取pod重启时间
- Kubernetes Pod停留在Init状态排查
- 停滞在”Terminiating”状态Pod
- 获取特定节点的pods
- 修复”Unbound Immediate PersistentVolumeClaims”错误
- 内存分配错误无法创建容器异常排查
- Kubernetes events
- Knative - Serverless计算
- Kubernetes安全
- Admission Controllers
- Admission 插件
- MutatingAdmissionWebhook
- ValidatingAdmissionWebhook
- 简单的Kubernetes Adminission Webhook
- Kubernetes RBAC鉴权
- Kubernetes配置安全扫描评估KCCSS和kube-scan
- Grafeas元数据安全审计
- Tetragon:基于ebpf的安全观察和运行时增强
- Falco: 云原生运行时安全工具
- cert-manager: X.509证书管理
- spiffe: 分布式系统的通用身份控制平面
- vault: 安全访问secrets工具
- Kubernetes结合虚拟化
- ARM架构Kubernetes
- GPU Kubernetes
- Kubeflow - Kubernetes机器学习工作流平台
- Argo - 基于Kubernetes的持续集成和工作流
- Kueue - K8s原生批处理调度
- Kubernetes运行Android
- K3s - 轻量级Kubernetes
- Kubernetes之上的平台
- Kubernetes云厂商