5月 062020
获取集群内的服务列表(类型为ClusterIP)
[root@k8s-01 ~]# kubectl get service -o wide NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR httpd-service ClusterIP 10.109.145.140 <none> 8080/TCP 78m run=httpd kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 85m <none> [root@k8s-01 ~]#
修改服务配置文件以添加NodePort配置并应用
[root@k8s-01 ~]# vi httpd-service.yaml apiVersion: v1 kind: Service metadata: name: httpd-service spec: type: NodePort selector: run: httpd ports: - protocol: TCP port: 8080 targetPort: 80 [root@k8s-01 ~]# kubectl apply -f httpd-service.yaml service/httpd-service configured [root@k8s-01 ~]#
获取集群内的服务列表(类型为NodePort)
[root@k8s-01 ~]# kubectl get service -o wide NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR httpd-service NodePort 10.109.145.140 <none> 8080:30093/TCP 81m run=httpd kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 88m <none> [root@k8s-01 ~]#
使用节点的IP+Port方式访问集群内的服务(借助iptbales实现负载均衡的包转发)
[root@k8s-01 ~]# curl 167.99.108.90:30093 <html><body><h1>It works!</h1></body></html> [root@k8s-01 ~]# curl 206.189.165.254:30093 <html><body><h1>It works!</h1></body></html> [root@k8s-01 ~]# curl 167.99.108.90:30093 <html><body><h1>It works!</h1></body></html> [root@k8s-01 ~]#
为NodePort指定固定端口号(默认为30000-32767的随机端口号)
[root@k8s-01 ~]# vi httpd-service.yaml apiVersion: v1 kind: Service metadata: name: httpd-service spec: type: NodePort selector: run: httpd ports: - protocol: TCP nodePort: 31234 port: 8080 targetPort: 80 [root@k8s-01 ~]# kubectl apply -f httpd-service.yaml service/httpd-service configured [root@k8s-01 ~]#
获取集群内的服务列表
[root@k8s-01 ~]# kubectl get services -o wide NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR httpd-service NodePort 10.109.145.140 <none> 8080:31234/TCP 93m run=httpd kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 100m <none> [root@k8s-01 ~]#
端口类型说明
nodePort:节点监听端口 port:ClusterIP监听端口 targetPort:Pod监听端口