关于k8s 使用 Service 控制器对外暴露服务的问题

本站所有内容来自互联网收集,仅供学习和交流,请勿用于商业用途。如有侵权、不妥之处,请第一时间联系我们删除!Q群:迪思分享

免费资源网 – https://freexyz.cn/
目录部署 deploy部署 service查看 service 和 pod 的关系查看 service查看端口导出 yaml筛选 service 关联 pod扩容测试Service 三种常用类型

Service 引入主要是解决 Pod 的动态变化,提供统一访问入口:

防止 Pod 失联,准备找到提供同一个服务的 Pod (服务发现) 定义一组 Pod 的访问策略 (负载均衡)

部署 deploy

kubectl apply -f deploy.yaml apiVersion: apps/v1 kind: Deployment metadata: name: chiyi-nginx spec: replicas: 3 selector: matchLabels: app: chiyi-nginx template: metadata: labels: app: chiyi-nginx spec: containers: – name: nginx image: nginx:1.14.2 ports: – containerPort: 80

部署 service

kubectl apply -f service.yaml apiVersion: v1 kind: Service metadata: name: chiyi-nginx spec: selector: app: chiyi-nginx ports: – protocol: TCP port: 80 targetPort: 80 nodePort: 30002 type: NodePort

查看 service 和 pod 的关系

kubectl get ep curl 10.244.1.58:80

说明:

Service 通过标签关联一组 Pod

Service 为一组 Pod 提供负载均衡能力

[root@k8s-master service]# kubectl get ep NAME ENDPOINTS AGE chiyi-nginx 10.244.1.58:80,10.244.1.59:80,10.244.2.46:80 5m19s kubernetes 172.17.28.225:6443 23h [root@k8s-master service]# curl 10.244.1.58:80 <!DOCTYPE html> <html> <head> <title>Welcome to nginx!</title> <style> body { width: 35em; margin: 0 auto; font-family: Tahoma, Verdana, Arial, sans-serif; } </style> </head> <body> <h1>Welcome to nginx!</h1> <p>If you see this page, the nginx web server is successfully installed and working. Further configuration is required.</p> <p>For online documentation and support please refer to <a href=”http://nginx.org/”>nginx.org</a>.<br/> Commercial support is available at <a href=”http://nginx.com/”>nginx.com</a>.</p> <p><em>Thank you for using nginx.</em></p> </body> </html>

查看 service

kubectl get service curl 10.101.104.218 [root@k8s-master service]# kubectl get service NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE chiyi-nginx NodePort 10.101.104.218 <none> 80:30002/TCP 6m3s kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 23h [root@k8s-master service]# curl 10.101.104.218 <!DOCTYPE html> <html> <head> <title>Welcome to nginx!</title> <style> body { width: 35em; margin: 0 auto; font-family: Tahoma, Verdana, Arial, sans-serif; } </style> </head> <body> <h1>Welcome to nginx!</h1> <p>If you see this page, the nginx web server is successfully installed and working. Further configuration is required.</p> <p>For online documentation and support please refer to <a href=”http://nginx.org/”>nginx.org</a>.<br/> Commercial support is available at <a href=”http://nginx.com/”>nginx.com</a>.</p> <p><em>Thank you for using nginx.</em></p> </body> </html>

查看端口

ss -antp |grep 30002 [root@k8s-master service]# ss -antp |grep 30002 LISTEN 0 128 *:30002 *:* users:((“kube-proxy”,pid=3544,fd=13))

导出 yaml

kubectl get service chiyi-nginx -o yaml

筛选 service 关联 pod

kubectl get pods -l app=chiyi-nginx [root@k8s-master service]# kubectl get pods -l app=chiyi-nginx NAME READY STATUS RESTARTS AGE chiyi-nginx-5bbf8bff4b-6bwfz 1/1 Running 0 3m58s chiyi-nginx-5bbf8bff4b-bpvvc 1/1 Running 0 3m58s chiyi-nginx-5bbf8bff4b-pwwt4 1/1 Running 0 3m58s

扩容测试

kubectl scale deployment chiyi-nginx –replicas=1 kubectl get service,pods,ep

Service 三种常用类型

ClusterIP 集群内部使用,任一节点服务器和 pod 内部都可以访问NodePort 对外暴露应用(端口默认范围:30000-32767),任一节点服务器公网IP+端口号,可在浏览器访问。LoadBalancer 对外暴露应用,适合公有云
免费资源网 – https://freexyz.cn/


© 版权声明
THE END
★喜欢这篇文章吗?喜欢的话,麻烦动动手指支持一下!★
点赞11 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容