图解 Kubernetes Service

在 Kubernetes 中 Service 主要有 4 种不同的类型,其中的 ClusterIP 是最基础的。

上图解释了 Kubernetes 的 Service 的基本关系,当我们创建一个 NodePort 的 Service 时,它也会创建一个 ClusterIP,而如果你创建一个 LoadBalancer,它就会创建一个 NodePort,然后创建一个 ClusterIP

此外我们还需要明白 Service 是指向 pods 的,Service 不是直接指向 Deployments 或 ReplicaSets,而是直接使用 labels 标签指向 Pod,这种方式就提供了极大的灵活性,因为通过什么方式创建的 Pod 其实并不重要。接下来我们通过一个简单的例子开始,我们用不同的 Service 类型来逐步扩展,看看这些 Service 是如何建立的。

[阅读全文]

集群内部服务发现之 DNS

前面我们给大家讲解了Service的用法,我们可以通过 Service 生成的ClusterIP(VIP)来访问 Pod 提供的服务,但是在使用的时候还有一个问题:我们怎么知道某个应用的 VIP 呢?比如我们有两个应用,一个是 api 应用,一个是 db 应用,两个应用都是通过Deployment进行管理的,并且都通过 Service 暴露出了端口提供服务。api 需要连接到 db 这个应用,我们只知道 db 应用的名称和 db 对应的 Service 的名称,但是并不知道它的 VIP 地址,我们前面的 Service 课程中是不是学习到我们通过ClusterIP就可以访问到后面的Pod服务,如果我们知道了 VIP 的地址是不是就行了?

[阅读全文]