Kubernetes(k8s)
大约 2 分钟
Kubernetes(k8s)
1.什么是k8s?
本文内容都建立在kubernetes中文文档的基础上
Kubernetes 是一个可移植、可扩展的开源平台,用于管理容器化的工作负载和服务,可促进声明式配置和自动化。简单来说,k8s就是可以管理容器部署的分布式框架。
与k8s相似的是docker swarm
kubernetes有下面几个重要的功能:
- 服务发现: 通过DNS或IP暴露容器
- 负载均衡: 分配网络流量,使部署稳定
- 存储编排: 自动挂载存储系统
- 自动部署: 自动调整部署容器状态,自动装箱,分配CPU、RAM
- 密钥管理: 存储管理敏感信息(令牌,密钥)
- 自我修复: 重启、替换或杀死存在问题的容器
2.Node Pod Volume

Pod是一组紧密关联容器(可以包括一个或多个容器),是k8s调度的最小单位。
Node是主机(物理机或虚拟机),Pod在Node内部运行
Volume是Pod内容器数据持久化的解决方案。Pod生命周期短,且容器数据会随Pod的销毁而消失,可以通过Volum e与数据库连接实现持久化。
3.k8s集群架构

由多个node互相连接共同组成k8s集群。包括分布式存储etcd、控制节点controller、服务节点Node。
etcd保存整体集群状态
控制节点负责集群管理,功能包括:
- 容器调度
- 维护资源状态
- 自动扩展
- 滚动更新(对应组件kube-controller-manager)
- ...
服务节点是运行容器的主机,有以下职能:
- 管理镜像和容器(对应组件container runtime)
- cluster服务发现和负载均衡(对应组件kube-proxy)
除了这三个大节点之外,还包括了一些核心组件:
- kube-apiserver:提供资源操作唯一入口,提供认证、授权、访问控制、API注册发现等功能
- kublet负责维持容器生命周期,也负责Volume和网络的管理,容器默认为Docker