目录
一、kubernetes介绍
Kubernetes 是一个可移植、可扩展的开源平台,用于管理容器化工作负载和服务,有助于声明式配置和自动化。它拥有庞大且快速发展的生态系统。Kubernetes 服务、支持和工具广泛可用。
Kubernetes 这个名字来源于希腊语,意思是舵手或飞行员。K8s 作为一个缩写,是通过计算“K”和“s”之间的八个字母得出的。Google 于 2014 年开源了 Kubernetes 项目。Kubernetes 结合了 Google 超过 15 年大规模运行生产工作负载的经验以及来自社区的最佳创意和实践。
kubernetes特性1.自动装箱
这是 Kubernetes 最显着的特性之一,Kubernetes 根据所需资源和其他限制条件智能地定位容器,而不会影响可用性。
Kubernetes 提供资源管理,它可以自动指定 Pod 中的每个容器如何消耗 CPU 和 RAM 等资源
2.服务发现和负载均衡
服务发现和负载均衡在 Kubernetes 中作为服务提供,服务以一致的方式跨集群将 Pod 连接到网络。确定如何连接到服务的过程称为服务发现。容器的集合是 POD,具有相同功能集的 POD 被组合成一个集合,称为服务。
3.存储编排
用户可以使用 Kubernetes 挂载他们想要的任何存储系统,包括本地存储、公共云提供商等。仍然必须提供底层存储系统。
创建pod流程
二、 Kubernetes组件ku
Master node:主节点kubectl :管理资源,对资源进行增删改查,一般安装在master node ,非常重要的命令,操作资源apiserver:提供了k8s资源操作的唯一入口,所有操作都要和apiserver交互,将操作资源的结果成功或失败信息放入到etcd数据库中,scheduler:调度器,通过与apiserver交互,将pod调度到最优的节点controller-manager:集群内部管理中心Etcd:存储了key:value数据信息,网络资源的信息calico:网络插件,跨主机跨节点通信。dockerwork node:工作节点kubelet:报告自身信息到apiserver,apiserver会把信息更新到etcd,启动pod,删除pod等kube-proxy:提供网络代理,负载均衡calicocoredns:提供dns服务
三、Kubernetes架构
k8s的物理架构是master/node模式:K8S集群至少需要一个主节点(Master)和多个工作节点(Worker),Master节点是集群的控制节点,负责整个集群的管理和控制,主要用于暴露API、调度部署和对节点进行管理。工作节点主要是运行容器的。单master节点架构图如下:kubelet 负责启动容器或podkube-proxy负载均衡pod是最小调度单元pod封装一个或多个容器
四、pod是什么
1、一个 pod 中运行一个容器
每个 Pod 中一个容器的模式是最常见的用法,在这种使用方式中,你可以把 Pod想象成是单个容器的封装,kubernetes 管理的是 Pod 而不是直接管理容器
2、一个 pod 中同时运行多个容器一个 Pod中也可以同时封装几个需要紧密耦合互相协作的容器,它们之间共享资源。这些在同一个 Pod 中的容器可以互相协作成为一个 service单位,比如一个容器共享文件,另一个 sidecar 容器来更新这些文件。Pod 将这些容器的存储资源作为一个实体来管理
三、Pod 资源共享一个 Pod 下的容器必须运行于同一节点上,现代容器技术建议一个容器只运行一个进程,该进程在容器中 PID 命令空间中的进程号为 1,可直接接收并处理信号,进程终止时容器生命周期也就结束了