目录
一、Service介绍
简介:将运行在一组 Pods 上的应用程序公开为网络服务的抽象方法。
使用 Kubernetes,你无需修改应用程序即可使用不熟悉的服务发现机制。 Kubernetes 为 Pod 提供自己的 IP 地址,并为一组 Pod 提供相同的 DNS 名, 并且可以在它们之间进行负载均衡
为什么需要Service
我们在创建deployment无状态服务集的时候分享过,无状态服务内的多个Pod的名称是随机的.pod被重新启动调度后,它的名称与IP都会发生变化,无状态服务的Pod副本集中的每一个Pod都是相同的,他们提供相同的服务,但介于此(名称与IP会发生变化)外部该如何做到访问到他们呢,这就需要Service的服务发现,让外部统一去访问Service,让Service起到一个类似于网关的作用。
二、Service(默认ClusterIp)
ClusterIP类型的service只能在集群内部,也即内部网络进行访问
Ⅰ、命令行工具形式
(1)创建
之前创建deployment的时候我们创建了一个个数为三的nginx副本集,使用以下命令,将该deployment(包含三个nginx)的80端口对外暴露为80
kubectl expose deployment nginxtest --port=80 --target-port=80 --type=ClusterIp
通过使用这一组pod的共同标签来实现,如下图
使用以下命令来查看当前K8S集群中的service
kubectl get service -n 【namespace】
使用以下命令来查看某一服务名下包含的pods
kubectl get pod -l --app=nginxtest
(2)删除
kubectl delete service(svc) 【svcname】