码迷,mamicode.com
首页 > 其他好文 > 详细

K8S 之 为一个POD创建对外发布服务

时间:2020-04-09 13:02:56      阅读:153      评论:0      收藏:0      [点我收藏+]

标签:restart   rest   改变   它的   存在   none   har   ada   ready   

一、服务介绍

Kubernetes服务是一种为一组功能相同的pod提供单一不变的接入点的资源。当服务存在时,它的IP地址和端口不会改变。客户端通过IP地址和端口号建立连接,这些连接会被路由到提供该服务的任意一个pod上。通过这种方式,客户端不需要知道每个单独的提供服务的pod的地址,这样这些pod就可以在集群中随时被创建或移除。

二、为一个pod创建service

1、创建一个pod
apiVersion: v1
kind: Pod
metadata:
  name: nginx
  labels:
    app: web             #标签选择器app:web
  namespace: test
spec:
  containers:
    - name: nginx-test
      image: test-harbor.cedarhd.com/public/nginx:curl
      ports:
        - containerPort: 80        #容器端口

 2、为该pod创建对应的service
 apiVersion: v1
kind: Service
metadata:
  name: nginx
  namespace: test
spec:
  ports:
    - port: 80                #该service服务的可用对外端口
      targetPort: 80       #服务将连接转发到容器的端口
  selector:                  
    app: web               #具有app=web标签的pod都属于该服务

[root@test-nodes1 k8s-yaml-file]# kubectl get svc -n test
NAME    TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)   AGE
nginx   ClusterIP   192.168.81.180   <none>        80/TCP    8m8s
[root@test-nodes1 k8s-yaml-file]# kubectl get pod -o wide -n test
NAME    READY   STATUS    RESTARTS   AGE   IP           NODE                      NOMINATED NODE   READINESS GATES
nginx   1/1     Running   0          27m   172.7.21.6   test-nodes1.cedarhd.com   <none>           <none>
[root@test-nodes1 k8s-yaml-file]# ipvsadm -ln | grep -C 3 192.168.81.180
TCP  192.168.66.183:80 nq
  -> 172.7.21.3:8082              Masq    1      0          0         
  -> 172.7.22.4:8082              Masq    1      0          0         
TCP  192.168.81.180:80 nq    #对应
  -> 172.7.21.6:80                Masq    1      0          0         
TCP  192.168.96.231:80 nq
  -> 172.7.21.6:80                Masq    1      0          0         

三、同一个服务暴露多个端口

apiVersion: v1
kind: Service
metadata:
  name: nginx
  namespace: test
spec:
  ports:
    - name: http     
      port: 80
      targetPort: 80
    - name: https
      port: 443
      targetPort: 443
  selector:
    app: web

备注:在创建一个有多个端口的服务的时候,必须给每个端口指定名字。

K8S 之 为一个POD创建对外发布服务

标签:restart   rest   改变   它的   存在   none   har   ada   ready   

原文地址:https://blog.51cto.com/12965094/2485849

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!