service测试教程(实战入门-service)

虽然每个Pod都会分配一个单独的Pod IP,然而却存在如下两问题:,下面我们就来聊聊关于service测试教程?接下来我们就一起去了解一下吧!

service测试教程(实战入门-service)

service测试教程

虽然每个Pod都会分配一个单独的Pod IP,然而却存在如下两问题:

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

service就是一组同类型的pod对外访问的接口,借助service,应用可以方便的实现服务发现和负载均衡

上实战

[qq@k8snode1 ~]$ kubectl apply -f deploy.yaml deployment.apps/nginx created 《先把上节课搭建集群的yaml直接用起来搭建实验环境》 [qq@k8snode1 ~]$ kubectl get pods -n dev -o wide 《通过-o wide可以查到pod的ip》 NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES nginx-64b7c758f4-46xld 1/1 Running 0 40s 172.17.0.5 minikube <none> <none> nginx-64b7c758f4-k2gk5 1/1 Running 0 40s 172.17.0.3 minikube <none> <none> nginx-64b7c758f4-wwhn4 1/1 Running 0 40s 172.17.0.4 minikube <none> <none> [qq@k8snode1 ~]$ curl 172.17.0.5:80 [qq@k8snode1 ~]$ kubectl expose deploy nginx --name=svc-nginx1 --type=ClusterIP --port=80 --target-port=80 -n dev 《创建service,通过deploy指定的label标签,service会通过deploy指定的标签来找指定的pod,要不deploy时不时干掉一个pod,service不找不到了么》 service/svc-nginx1 exposed [qq@k8snode1 ~]$ kubectl get svc -n dev 《svc就是service的缩写》 NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE svc-nginx1 ClusterIP 10.100.17.98 <none> 80/TCP 32s 《ClusterIP就是内部访问,大小写要注意不能错, ClusterIP是默认类型》 这样就可以通过service的IP来访问nginx的集群了 [qq@k8snode1 ~]$ curl 10.100.17.98:80 [qq@k8snode1 ~]$ kubectl expose deploy nginx --name=svc-nginx2 --type=NodePort --port=80 --target-port=80 -n dev service/svc-nginx2 exposed《可以指定NodePort来实现外部访问》 [qq@k8snode1 ~]$ kubectl get svc,pods -n dev NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/svc-nginx1 ClusterIP 10.100.17.98 <none> 80/TCP 54m service/svc-nginx2 NodePort 10.110.195.194 <none> 80:32078/TCP 42s 《这里要注意,通过本机的浏览器访问10.110.195.194IP的32078端口》 NAME READY STATUS RESTARTS AGE pod/nginx-64b7c758f4-46xld 1/1 Running 0 65m pod/nginx-64b7c758f4-k2gk5 1/1 Running 0 65m pod/nginx-64b7c758f4-wwhn4 1/1 Running 0 65m [qq@k8snode1 ~]$ kubectl delete svc svc-nginx1 -n dev service "svc-nginx1" deleted《删除svc 命令》 [qq@k8snode1 ~]$ kubectl get svc,pods -n dev NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/svc-nginx2 NodePort 10.110.195.194 <none> 80:32078/TCP 3m53s NAME READY STATUS RESTARTS AGE pod/nginx-64b7c758f4-46xld 1/1 Running 0 68m pod/nginx-64b7c758f4-k2gk5 1/1 Running 0 68m pod/nginx-64b7c758f4-wwhn4 1/1 Running 0 68m 对象配置方式 vi svcnginx.yaml apiVersion: v1 kind: Service metadata: name: svc-nginx namespace: dev spec: clusterIP: 10.109.179.231 #固定svc的内网ip ports: - port: 80 protocol: TCP targetPort: 80 selector: run: nginx type: ClusterIP [qq@k8snode1 ~]$ kubectl apply -f svcnginx.yaml service/svc-nginx created [qq@k8snode1 ~]$ kubectl delete -f svcnginx.yaml service "svc-nginx" deleted

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页