Kubernetes Service 的介绍和使用

一、Service介绍

Kubernetes 通过Deployment来创建一组Pod用来提供高可用性的服务,虽然每个Pod都会分配一个单独的Pod IP,然而却存在如下两个问题:

  • Pod IP会随着Pod的重建产生变化。
  • Pod IP仅仅是集群内可见的虚拟IP,外部无法访问。

因此,Kubernetes设计了Service来解决这个问题。

Service可以看作是一组同类Pod对外的访问接口,借助Service,应用可以方便地实现服务发现和负载均衡。

 二、Service的相关操作

1.创建集群内部可访问的Service

#暴露Service
[root@master ~]#kubectl expose deploy nginx --name=svc-nginx --type=ClusterIP --port=80 --target-port=80 -n dev

#查看Service
[root@master ~]#kubectl get svc svc-nginx -n dev -o wide
svc-nginx   ClusterIP   10.109.206.152   <none>        80/TCP    65m   run=nginx

 
这里产生了一个CLUSTER-IP,这就是Service的ip,在Service的整个生命周期中,这个地址是不会变动的,可以通过这个ip访问Service对应的Pod。

 2.创建集群外部可以访问的Service

#创建外部可以访问的Service
[root@master ~]# kubectl expose deploy nginx --name=svc-nginx2 --type=NodePort --port=80 --target-port=80 -n dev

#查看service信息
[root@master ~]# kubectl get svc svc-nginx2 -o wide -n dev
NAME         TYPE       CLUSTER-IP      EXTERNAL-IP   PORT(S)        AGE   SELECTOR
svc-nginx2   NodePort   10.109.114.76   <none>        80:30224/TCP   28s   run=nginx

#在浏览器中输入当前集群的ip+80对应的端口30224即可访问
http://192.168.225.130:30224/
http://192.168.225.131:30224/
http://192.168.225.132:30224/

 

 3. 删除Service

kubectl delete svc svc-nginx -n dev

4.配置文件方式配置

apiVersion: v1
kind: Service
metadata:
  name: svc-nginx
  namespace: dev
spec:
  clusterIP: 10.109.179.231
  ports:
   - port: 80
     protocol: TCP
     targetPort: 80
  selector:
     run: nginx
  type: ClusterIP
#创建service
kubectl create -f svc-nginx.yaml
#删除service
kubectl delete -f svc-nginx.yaml

好了,kubernetes 的入门Service 就这么多了。快去学学吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值