步骤一:创建服务
1. 创建 ClusterIP 服务:
apiVersion: v1
kind: Service
metadata:
name: my-service
spec:
selector:
app: my-app
ports:
- protocol: TCP
port: 80
targetPort: 8080
在上述示例中,创建了一个名为 my-service 的服务,它会将流量路由到标签为 app: my-app 的 Pod 上的端口 8080。该服务将分配一个 ClusterIP(集群内部 IP 地址)。
2. 应用服务配置:
kubectl apply -f service.yaml
步骤二:访问服务
现在,你可以使用服务的 ClusterIP 地址在集群内的任何地方访问应用。
1. 通过 Pod 内部访问服务:
在其他 Pod 内部,可以使用服务的名称和端口来访问应用。在示例中,应用可以通过 my-service:80 来访问。
2. 通过集群外部访问服务:
- NodePort 服务:
如果你想要从集群外部访问服务,可以使用 NodePort 服务。NodePort 服务将服务的指定端口映射到所有节点的相同端口。
apiVersion: v1
kind: Service
metadata:
name: my-nodeport-service
spec:
selector:
app: my-app
ports:
- protocol: TCP
port: 80
targetPort: 8080
type: NodePort
- LoadBalancer 服务:
如果你的 Kubernetes 集群运行在云服务提供商上,可以使用 LoadBalancer 服务。LoadBalancer 服务将会在云平台上创建一个负载均衡器,并将流量路由到服务。
apiVersion: v1
kind: Service
metadata:
name: my-lb-service
spec:
selector:
app: my-app
ports:
- protocol: TCP
port: 80
targetPort: 8080
type: LoadBalancer
在上述示例中,type: NodePort 和 type: LoadBalancer 的服务会分配一个外部 IP 地址或域名,你可以使用它来从互联网访问应用。
注意事项:
- 确保 Pod 的标签与服务选择器匹配,以确保服务能够正确路由流量到 Pod。
- 在生产环境中,建议使用 Ingress 资源来处理更复杂的路由需求,并提供更高级的负载均衡和 SSL 终止功能。
转载请注明出处:http://www.zyzy.cn/article/detail/9935/Kubernetes