Kubernetes 知识点

自己总结的 Kubernetes 的各模块(待补充)

各模块包含关系:
namespace => node => pod => container

模块 作用
namespace
node 提供 CPU、内存和存储资源的节点;每个 node 上运行着维护 node 状态并和 master 通信的 kubelet,以及实现集群网络服务的 kube-proxy
pod
container
Service Service 的作用有点像建立了一个反向代理和负载均衡器,负责把请求分发给后面的 pod;Service有一个虚拟的ClusterIP,服务访问可以通过ClusterIP作为统一请求入口,因为一个 Service 对应一组Pod,所以可以做到负载均衡。
ReplicaSet 创建、管理 Pod

Kubernetes 架构简介

典型的 Kubernetes 集群包含一个 master 和很多 node。
Master 是控制集群的中心,node 是提供 CPU、内存和存储资源的节点。
Master 上运行着多个进程,包括面向用户的 API 服务、负责维护集群状态的 Controller Manager、负责调度任务的 Scheduler 等。
每个 node 上运行着维护 node 状态并和 master 通信的 kubelet,以及实现集群网络服务的 kube-proxy。

安装 Kubernetes

我们需要安装三样东西:Kubernetes 的命令行客户端 kubctl、一个可以在本地跑起来的 Kubernetes 环境 Minikube、以及给 Minikube 使用的虚拟化引擎 xhyve(xhyve 会在未来的版本被 hyperkit 替代,推荐使用 hyperkit)。

Kubernetes 中部署的最小单位是 pod,而不是 Docker 容器。
事实上 Kubernetes 是不依赖于 Docker 的,完全可以使用其他的容器引擎在 Kubernetes 管理的集群中替代 Docker。
在与 Docker 结合使用时,一个 pod 中可以包含一个或多个 Docker 容器。但除了有紧密耦合的情况下,通常一个 pod 中只有一个容器,这样方便不同的服务各自独立地扩展。

虽然 pod 在运行,但是我们是无法像之前测试 Docker 时一样用浏览器访问它运行的服务的。可以理解为 pod 都运行在一个内网,我们无法从外部直接访问。
要把服务暴露出来,我们需要创建一个 Service。Service 的作用有点像建立了一个反向代理和负载均衡器,负责把请求分发给后面的 pod。

Kubernetes 是用 Deployment 来管理服务的。一个 deployment 可以创建指定数量的 pod 部署到各个 node 上,并可完成更新、回滚等操作。

出处:https://juejin.im/post/5b62d0356fb9a04fb87767f5

原文地址:https://www.cnblogs.com/cag2050/p/10161697.html