1分钟了解 Kubernetes 一些基本概念
链接: Kubernetes中文社区
Kubernetes
Kubernetes是容器集群管理系统,是一个开源的平台,可以实现容器集群的自动化部署、自动扩缩容、维护等功能
Kubernetes的名字来自希腊语,意思是“舵手” 或 “领航员”。K8s是将8个字母“ubernete”替换为“8”的缩写。
Kubernetes Namespaces
命名空间,Kubernetes可以使用Namespaces创建多个虚拟集群。
Kubernetes Nodes
Node是Kubernetes中的工作节点,最开始被称为minion。一个Node可以是VM或物理机。每个Node(节点)具有运行pod的一些必要服务,并由Master组件进行管理,Node节点上的服务包括Docker、kubelet和kube-proxy。
Service
Kubernetes Pod 是有生命周期的,它们可以被创建,也可以被销毁,然而一旦被销毁生命就永远结束。 通过 ReplicationController 能够动态地创建和销毁 Pod(例如,需要进行扩缩容,或者执行 滚动升级)。 每个 Pod 都会获取它自己的 IP 地址,即使这些 IP 地址不总是稳定可依赖的(重新启动一个pod,ip可能变了)。 这会导致一个问题:在 Kubernetes 集群中,如果一组 Pod(称为 backend,可以理解为生产者A)为其它 Pod (称为 frontend,可以理解为消费者B、C、D)提供服务,那么那些 frontend 该如何发现,并连接到这组 Pod 中的哪些 backend 呢?
Kubernetes Service 定义了这样一种抽象:一个 Pod 的逻辑分组,一种可以访问它们的策略 —— 通常称为微服务。
简单说就是定义了一个服务,假设叫userService,这个服务对应3个pod,调用方只需要配置userService就好了,无需知道对应的pod的ip,也不关心ip是否变化
Pod
Pod是Kubernetes创建或部署的最小/最简单的基本单位,一个Pod代表集群上正在运行的一个进程。
- Pod中运行一个容器。“one-container-per-Pod”模式是Kubernetes最常见的用法; 在这种情况下,你可以将Pod视为单个封装的容器,但是Kubernetes是直接管理Pod而不是容器。
- Pods中运行多个需要一起工作的容器。Pod可以封装紧密耦合的应用,它们需要由多个容器组成,它们之间能够共享资源,这些容器可以形成一个单一的内部service单位 - 一个容器共享文件,另一个“sidecar”容器来更新这些文件。Pod将这些容器的存储资源作为一个实体来管理。
容器、容器镜像、应用
- 容器:类似一个空壳电脑,里面能装各种东西,系统、数据库,软件应用等
- 容器镜像:一般就是包含了应用在内的容器了
- 应用:通常说的组件、服务,工程、项目
Ingress
通常情况下,service和pod仅可在集群内部网络中通过IP地址访问,你可以给Ingress配置提供外部可访问的URL,简单理解Ingress提供了外网访问内部集群的入口
Kubernetes kubectl
kubectl用于运行Kubernetes集群命令的管理工具
Docker
打镜像,推镜像,拉镜像,运行