在Kubernetes中,Pod虽然拥有独立的IP, 但Pod会被快速地创建和删除,因此通过Pod直接对外界提供服务不符合高可用的设计准则。通过Service这个抽象,Service能够解耦前端和后端的关联,前端不用关心后端的具体实现,从而实现松耦合的微服务设计。您可以在阿里云容器服务Kubernetes版中创建服务。本文介绍如何创建服务。
背景信息
有关更多详细的原理,请参见Service。
更新时间:2020-11-12 20:08
在Kubernetes中,Pod虽然拥有独立的IP, 但Pod会被快速地创建和删除,因此通过Pod直接对外界提供服务不符合高可用的设计准则。通过Service这个抽象,Service能够解耦前端和后端的关联,前端不用关心后端的具体实现,从而实现松耦合的微服务设计。您可以在阿里云容器服务Kubernetes版中创建服务。本文介绍如何创建服务。
有关更多详细的原理,请参见Service。
本例中,示例模板是一个Nginx的Deployment。
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment-basic
labels:
app: nginx
spec:
replicas: 2
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.7.9 # replace it with your exactly <image_name:tags>
ports:
- containerPort: 80 ##需要在服务中暴露该端口。
参数 | 描述 |
---|---|
名称 | 输入服务的名称,本例中为nginx-svc。 |
类型 | 选择服务类型,即服务访问的方式。包括:
|
关联 | 选择服务要绑定的后端对象,本例中是前面创建的nginx-deployment-basic。若不进行关联部署,则不会创建相关的Endpoints对象,您可自己进行绑定,请参见services-without-selectors。 |
外部流量策略 | 可选值为Local或Cluster。
说明 您的服务类型为节点端口或负载均衡时,才能设置外部流量策略。
|
端口映射 | 添加服务端口和容器端口,容器端口需要与后端的Pod中暴露的容器端口一致。 |
注解 | 为该服务添加一个注解(annotation),配置负载均衡的参数,例如设置service.beta.kubernetes.io/alicloud-loadbalancer-bandwidth:20 表示将该服务的带宽峰值设置为20Mbit/s,从而控制服务的流量。更多参数请参见通过Annotation配置负载均衡。
|
标签 | 您可为该服务添加一个标签,标识该服务。 |
您已成功创建了一个关联到后端的Deployment的服务,最后成功访问Nginx的欢迎页面。
在文档使用中是否遇到以下问题
更多建议
匿名提交