一、概念
deployment 可以创建一组 pod 来提供具有高可用性的服务,虽然每个 pod 都会被分配一个 pod ip,但是仍然存在以下两个问题:
1、pod ip 会随着 pod 的重建而产生变化
2、pod ip 仅仅是集群内可见的虚拟 ip,外部是无法访问的
这样就对于访问这个服务带来了难度,因此 kubernetes 设计了 Service 来解决这个问题,Service 可以看作是一组同类 pod 对外的访问接口,借助 Service 应用可以方便地实现服务发现和负载均衡。
二、实战
2.1、 创建集群内部可以访问地 Service
暴露 Service:kubectl expose deploy nginx --name=svc-nginx1 --type=ClusterIP --port=80 --target-port=80 -n dev
查看Service:kubectl get svc svc-nginx -n dev -o wide
2.2、 创建集群外部可以访问地 Service
暴露 Service:kubectl expose deploy nginx --name=svc-nginx1 --type=NodePort --port=80 --target-port=80 -n dev
2.2、 删除 Service
命令:delete svc svc-nginx-1 -n dev
配置文件方式:
创建一个 svc-nginx.yaml,内容如下:
然后执行对应地创建和删除命令:
创建:kubectl create -f svc-nginx.yaml
删除:kubectl delete -f svc-nginx.yaml