service服务发现ClusterIP方式

1.暴露deployment服务

kubectl expose deployment nginx4 --port=8000 --target-port=80  等同于

kubectl expose deployment nginx4 --port=8000 --target-port=80 --type=ClusterIP

service/nginx4 exposed

说明:

expose                        暴露端口

deployment                暴露给谁

--port=8000               暴露的端口

--target-port=80        目标pod的开放端口

2.查看开放的service发现

kubectl get service

NAME         TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)    AGE

kubernetes   ClusterIP   10.96.0.1       <none>        443/TCP    13d

nginx4       ClusterIP   10.96.226.218   <none>        8000/TCP   13s

3.删除service服务发现

Kubectl delete svc 服务名

4.测试,集群内任意机器访问service IP,三个pod就会负载均衡的调用

yang@k8s-master:~$ curl 10.96.226.218:8000

3333

yang@k8s-master:~$ curl 10.96.226.218:8000

2222

yang@k8s-master:~$ curl 10.96.226.218:8000

1111

5.查看pod标签

kubectl get pod --show-labels

NAME                     READY   STATUS    RESTARTS   AGE   LABELS

nginx4-db67c7b65-6tszx   1/1     Running   1          23h   app=nginx4,pod-template-hash=db67c7b65

nginx4-db67c7b65-ndq8f   1/1     Running   1          23h   app=nginx4,pod-template-hash=db67c7b65

nginx4-db67c7b65-vrkk9   1/1     Running   1          23h   app=nginx4,pod-template-hash=db67c7b65

说明:每个pod都有一个标签,访问时会通过查找pod中app=nginx4的标签,同时service会将一组pod暴露成对外的统一服务,以后只需要通过serviceIP+端口就可以负载均衡的访问service内的所有pod,并且具备服务发现能力,不管是pod上线或者下线,都会自动加入到service中。

域名访问方式(只能在pod内,主机上是不能访问的):

服务名.所在名称空间.svc:端口

curl nginx4.default.svc:8000

=========================================================================

service服务发现NodePort方式

yang@k8s-master:~$ kubectl expose deployment nginx4 --port=8000 --target-port=80 --type=NodePort

service/nginx4 exposed

yang@k8s-master:~$ kubectl get svc

NAME         TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)          AGE

kubernetes   ClusterIP   10.96.0.1      <none>        443/TCP          14d

nginx4       NodePort    10.96.16.194   <none>        8000:31833/TCP   12s

说明:

此部署方式,三台机器任意一台都可以使用公网IP+暴露的端口进行负载均衡的访问

kubernetes service服务发现两种方式的更多相关文章

  1. Linux 服务管理两种方式service和systemctl

    Linux 服务管理两种方式service和systemctl 1.service命令 service命令其实是去/etc/init.d目录下,去执行相关程序 # service命令启动redis脚本 ...

  2. kubernetes创建资源的两种方式

    一.创建方式分类: 命令 vs 配置文件 Kubernetes 支持两种方式创建资源: 1.用 kubectl 命令行的方式直接创建,比如: kubectl run httpd-app --image ...

  3. centos7下kubernetes(6。kubernetes创建资源的两种方式)

    两种方式:1.命令:2.配置文件 之前我们在部署K8S的时候分别用到了命令和配置文件创建K8s资源: 1.命令方式:kubectl run nginx-deployment --image=nginx ...

  4. Linux 启动、关闭、重启服务的两种方式

    1.一种是可以使用service脚本来调度,如: service 服务名 startservice 服务名 stopservice 服务名 restart 2.第二种可以直接进入/etc/init.d ...

  5. Dynamics CRM 非声明验证方式下连接组织服务的两种方式的性能测试

    今天看了勇哥的博文"http://luoyong0201.blog.163.com/blog/static/1129305201510153391392/",又认识到了一种新的连接 ...

  6. Windows 安装服务 的两种方式

    第一种   -  安装服务时自定义服务名称:(注意 binpath= 和路径之间的那个空格)sc create 服务名称  binpath= "D:\Service.exe" di ...

  7. Linux下chkconfig命令详解即添加服务以及两种方式启动关闭系统服务

    The command chkconfig is no longer available in Ubuntu.The equivalent command to chkconfig is update ...

  8. Kubernetes基础_Service暴露的两种方式

    一.前言 kubernetes集群中,pod是多变的,可以被新建或删除,而且ip不稳定,不方便集群外部访问,所以提供了一种新的资源 Service ,就是就是 a set of Pod ,作用是提供一 ...

  9. Android四大组件之服务的两种启动方式详解

    Service简单概述 Service(服务):是一个没有用户界面.可以在后台长期运行且可以执行操作的应用组件.服务可由其他应用组件启动(如:Activity.另一个service).此外,组件可以绑 ...

  10. springcloud 服务调用的两种方式

    spring-cloud调用服务有两种方式,一种是Ribbon+RestTemplate, 另外一种是Feign.Ribbon是一个基于HTTP和TCP客户端的负载均衡器,其实feign也使用了rib ...

随机推荐

  1. Ubuntu 安装 office

    推荐安装 LibreOffice wget https://free.nchc.org.tw/tdf/libreoffice/stable/7.4.3/deb/x86_64/LibreOffice_7 ...

  2. 手把手教你写Dockerfile以及测试

    Dockerfile是什么? dockerfile就是用来构建docker镜像的构建文件,命令参数脚本. 如何使用Dockerfile? 1.编写一个Dockerfile文件 2.docker bui ...

  3. ES中的内置对象--jquery如何优化代码,少用$进行查找,减少查找次数的方法

  4. 电脑微信小程序抓包

    电脑微信小程序抓包 在渗透的过程中,对于网站找不出什么漏洞的时候我们就可以,对目标进行小程序和公众号漏洞的发掘 0x01 设置微信代理使用Burp抓取数据包 发现我们抓取的数据包很多都是乱码 Prox ...

  5. 如何使用 JuiceFS 创建 WebDAV 共享

    WebDAV 是一种基于 HTTP 的文件共享协议,最初被设计用于多用户文档协作编辑的场景,也被广泛应用在基于互联网的文件存储.数据同步等网盘类应用场景. 手机端和 PC 端有大量的应用内置了对 We ...

  6. mvn引用本地包

    <dependency> <groupId>jna</groupId> <artifactId>jna</artifactId> <s ...

  7. Rust 闭包与生命周期

  8. Mybatis获取插入值的ID

    需求: 在后台做多次插入的时候,需要使用返回ID,然而普通的操作是无法做到的 Mybatis可以在insert的标签 上加上 keyProperty='id' useGeneratedKeys=&qu ...

  9. Makefile常用命令

    # 下面用来定义变量并赋值 # := 和 = 一样的吗? # 这里?=代表如果变量已经赋值了,不要重新赋值,而是保留原来的值 CROSS_COMPILE ?= arm-linux-gnueabihf- ...

  10. java基础(非常简单)

    java javaSE 注释: block块级 line 行 标识符和关键字 组成部分.变量名.类名.方法名--------标识符 $\数字._\字母 数据类型 强类型语言---安全性高--速度会慢 ...