首页 > 其他 > 详细

k8s创建服务与公开接口

时间:2018-08-08 10:29:08      阅读:222      评论:0      收藏:0      [点我收藏+]
8. 通过服务访问pod

1.创建服务

服务创建会用应用的标签确定哪个pod

部署服务

cat nginx.yml

apiVersion: apps/v1beta1

kind: Deployment

metadata:

 name: nginx

spec:

 replicas: 4

 template:

  metadata:

   labels:

     app: nginx

  spec:

   containers:

   - name: nginx

     image: nginx

     ports:

     - containerPort: 80 #此处暂不起作用

创建服务

cat servi.yml

apiVersion: v1

kind: Service

metadata:

 name: nginx

spec:

# type: NodePort

 selector:

  app: nginx

 ports:

 - protocol: TCP

#   nodePort: 30000

   port: 8080

   targetPort: 80

 

kubectl apply -f servi.yml

kubectl  get service

技术分享图片

kubectl  describe service nginx #查看服务详细信息

所有实现均通过防火墙实现

2.访问服务

查看命名空间

kubectl get namespace

技术分享图片


kubectl  get deployment --namespace=kube-system #查看kube-dns (服务器)

访问service

可以通过服务名.空间名:端口形式访问

查看服务空间名


技术分享图片


3.创建服务分配不同命名空间

多个服务写入一个文件---分隔

cat ng.yml

apiVersion: apps/v1beta1

kind: Deployment

metadata:

 name: nginx

 namespace: kube-public

spec:

 replicas: 3

 template:

  metadata:

   labels:

     app: nginx

  spec:

   containers:

   - name: nginx

     image: nginx

     ports:

     - containerPort: 80

 

---

 

apiVersion: v1

kind: Service

metadata:

 name: nginx

 namespace: kube-public

spec:

  selector:

    app: nginx

  ports:

      - protocol: TCP

        port: 8080

        targetPort: 80

 

 

跨空间访问

kubectl  run busybox --rm -ti --image=busybox /bin/sh

技术分享图片

8. 公网访问pod

cat ng.yml

apiVersion: apps/v1beta1

kind: Deployment

metadata:

 name: nginx

 namespace: kube-public

spec:

 replicas: 3

 template:

  metadata:

   labels:

     app: nginx

  spec:

   containers:

   - name: nginx

     image: nginx

     ports:

     - containerPort: 80

 

---

 

apiVersion: v1

kind: Service

metadata:

 name: nginx

 namespace: kube-public

spec:

  selector:

    app: nginx

  ports:

      - protocol: TCP

        port: 8080

        targetPort: 80

 

---

apiVersion: v1

kind: Service

metadata:

 name: nginx

 namespace: kube-public

spec:

  type: NodePort

  selector:

    app: nginx

  ports:

      - protocol: TCP

        nodePort: 30000  #固定端口30000-32767,不写会自动分配

        port: 8080

        targetPort: 80

 

kubectl get service --namespace=kube-public 查看非默认空间

kubectl get pod --namespace=kube-public

 

 






 




k8s创建服务与公开接口

原文:http://blog.51cto.com/13272050/2156043

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!