关于k8s|关于k8s 使用 Service 控制器对外暴露服务的问题
目录
- 部署 deploy
- 部署 service
- 查看 service 和 pod 的关系
- 查看 service
- 查看端口
- 导出 yaml
- 筛选 service 关联 pod
- 扩容测试
- Service 三种常用类型
- 防止 Pod 失联,准备找到提供同一个服务的 Pod (服务发现)
- 定义一组 Pod 的访问策略 (负载均衡)
部署 deploy
kubectl apply -f deploy.yaml
apiVersion: apps/v1kind: Deploymentmetadata:name: chiyi-nginxspec:replicas: 3selector:matchLabels:app: chiyi-nginxtemplate:metadata:labels:app: chiyi-nginxspec:containers:- name: nginximage: nginx:1.14.2ports:- containerPort: 80
部署 service
kubectl apply -f service.yaml
apiVersion: v1kind: Servicemetadata:name: chiyi-nginxspec:selector:app: chiyi-nginxports:- protocol: TCPport: 80targetPort: 80nodePort: 30002type: NodePort
查看 service 和 pod 的关系
kubectlget epcurl 10.244.1.58:80
说明:
Service 通过标签关联一组 Pod
Service 为一组 Pod 提供负载均衡能力
[root@k8s-master service]# kubectl get epNAMEENDPOINTSAGEchiyi-nginx10.244.1.58:80,10.244.1.59:80,10.244.2.46:805m19skubernetes172.17.28.225:644323h[root@k8s-master service]# curl 10.244.1.58:80Welcome to nginx! - 锐客网 body {width: 35em; margin: 0 auto; font-family: Tahoma, Verdana, Arial, sans-serif; }Welcome to nginx!If you see this page, the nginx web server is successfully installed andworking. Further configuration is required.
For online documentation and support please refer tonginx.org.
Commercial support is available atnginx.com.
Thank you for using nginx.
查看 service
kubectlget servicecurl 10.101.104.218
[root@k8s-master service]# kubectl get serviceNAMETYPECLUSTER-IPEXTERNAL-IPPORT(S)AGEchiyi-nginxNodePort10.101.104.21880:30002/TCP6m3skubernetesClusterIP10.96.0.1 443/TCP23h[root@k8s-master service]# curl 10.101.104.218 Welcome to nginx! - 锐客网 body {width: 35em; margin: 0 auto; font-family: Tahoma, Verdana, Arial, sans-serif; }Welcome to nginx!If you see this page, the nginx web server is successfully installed andworking. Further configuration is required.
For online documentation and support please refer tonginx.org.
Commercial support is available atnginx.com.
Thank you for using nginx.
查看端口
ss -antp |grep 30002
[root@k8s-master service]# ss -antp |grep 30002LISTEN0128*:30002*:*users:(("kube-proxy",pid=3544,fd=13))
【关于k8s|关于k8s 使用 Service 控制器对外暴露服务的问题】
导出 yaml
kubectlget service chiyi-nginx -o yaml
筛选 service 关联 pod
kubectl get pods -l app=chiyi-nginx
[root@k8s-master service]# kubectl get pods -l app=chiyi-nginxNAMEREADYSTATUSRESTARTSAGEchiyi-nginx-5bbf8bff4b-6bwfz1/1Running03m58schiyi-nginx-5bbf8bff4b-bpvvc1/1Running03m58schiyi-nginx-5bbf8bff4b-pwwt41/1Running03m58s
扩容测试
kubectl scale deployment chiyi-nginx --replicas=1kubectlget service,pods,ep
Service 三种常用类型
- ClusterIP 集群内部使用,任一节点服务器和 pod 内部都可以访问
- NodePort 对外暴露应用(端口默认范围:30000-32767),任一节点服务器公网IP+端口号,可在浏览器访问。
- LoadBalancer 对外暴露应用,适合公有云
推荐阅读
- 关于elementUI如何在表格循环列表里分别新增Tag的设计使用
- hexo的butterfly主题使用iconfont图标
- 游戏|unity3d导出xcode项目使用afnetworking 3框架导致_kUTTagClassMIMEType 问题解决方案
- springboot2|springboot2 使用activiti6 idea插件的过程详解
- 使用Docker安装Nginx并配置端口转发问题及解决方法
- vue使用file-saver本地文件导出功能
- 如何使用|如何使用 Milvus 向量数据库实现实时查询
- 存储用户密码应该使用什么加密算法()
- peewee 查询结果使用字典数据类型
- swagger的作用和配置使用