Kubernetes

Kubernetes简称k8s,是一个开源,用于管理云平台中多个主机上容器化的应用,k8s目标是让部署容器化的应用简单并且高效,提供了应用部署、规划、更新、维护的一种机制。

我们可以创建多个容器,k8s为每个容器实现管理,发现,访问等不需要运维人员复杂的手工配置和处理。

1.架构

一个k8s的集群包含一个master节点和多个node节点,一个节点可以看成一台物理机或虚拟机。

master负责集群管理。master协调集群的所有行为,例如运行,修改,更新等。

2.组件

Master节点包含四个组件:kube-apiserver、kube-scheduler、kube-controller-manager、etcd

kube-apiserver---用户暴露k8s API。任何资源请求和调用都是通过该API提供的接口进行的。

kube-scheduler---根据调度算法为新创建的pod选择一个Node节点,可以任意部署。

kube-controller-manager---运行管理控制器,处理常规的后台线程。

etcd---提供默认的存储系统,保存所有集群数据。

 

Node节点组件有三个:docker,kube-proxy,kubelet

Kubelet:是master在node节点上的Agent(代理),与master协作,管理本机运行容器的生命周期,负责pod对应的容器创建、启停等任务,实现集群管理的基本功能。

kube-proxy:通过在主机上维护网络规则并执行连接转发来实现。

Docker:运行容器。

 

3.基本概念

Pod:是k8s抽象出来的,表示一组一个或多个应用程序容器,以及这些容器的一些共享资源。包括共享存储,网络,端口等信息。

Pod都有自己的IP地址,同一个cluster中才能互相访问。

Namespace:k8s支持多个虚拟集群,他们底层依赖同一个物理集群。这些虚拟集群被称为命名空间。

Namespace适用于存在很多跨多个团队或项目的用户场景。多用于实现多租户的资源隔离。

Label:标签,附加到某个资源上,用于关联对象,查询和筛选。

ReplicaSet:用来确保预期的pod副本数量。

Deployment:指挥k8s如何创建和更新应用程序实例。

Service:定义了pod的逻辑集和访问pod的协议。使从属pod之间的松耦合成为可能。

 

posted @ 2024-09-10 15:55  Mike_Jia  阅读(29)  评论(0)    收藏  举报