首页 > 其他分享 >Kubernetes externalIPs 类型服务

Kubernetes externalIPs 类型服务

时间:2024-07-31 15:39:11浏览次数:7  
标签:httpd Kubernetes service IP externalIPs nginx 1.2 类型

背景:

  在k8s中用到的比较到多的是ClusterIP和NodePort类型的service,externalIPs则很少使用。我们现在了解一下其用法和它的一些优缺点。

官方定义:

如果有路由到一个或多个集群节点的外部 IP,则可以在这些 IP 上公开 Kubernetes 服务。在服务端口上使用外部 IP(作为目标 IP)进入集群的流量将被路由到其中一个服务端点。 不受 Kubernetes 管理,由集群管理员负责。

 

如何使用externalIPs

 

 本实例预配了 2 个 VM。 分别为 Kubernetes 主节点,IP 为 1.2.4.120。 Kubernetes worker,IP 为 1.2.4.114。k3s-external-ip-masterk3s-external-ip-worker

部署nginx和httpd服务

 

$ kubectl create deployment nginx --image=nginx
$ kubectl create deployment httpd --image=httpd

 

  可以看到

$ kubectl get pods
NAME                     READY   STATUS    RESTARTS   AGE
nginx-86c57db685-fzxn5   1/1     Running   0          22s
httpd-7bddd4bd85-zk8ks   1/1     Running   0          16s

  编写service配置文件

$ cat << EOF > nginx-service.yaml
apiVersion: v1
kind: Service
metadata:
  name: nginx-service
spec:
  selector:
    app: nginx
  ports:
    - name: http
      protocol: TCP
      port: 80
      targetPort: 80
  externalIPs:
    - 1.2.4.114
EOF

  

$ cat << EOF > httpd-service.yaml
apiVersion: v1
kind: Service
metadata:
  name: httpd-service
spec:
  selector:
    app: httpd
  ports:
    - name: http
      protocol: TCP
      port: 80
      targetPort: 80
  externalIPs:
    - 1.2.4.120
EOF

  部署这两个service

$ kubectl create -f nginx-service.yaml
$ kubectl create -f httpd-service.yaml

  查看service

$ kubectl get svc
NAME            TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)   AGE
kubernetes      ClusterIP   10.43.0.1       <none>        443/TCP   18m
httpd-service   ClusterIP   10.43.240.149   1.2.4.120     80/TCP    32s
nginx-service   ClusterIP   10.43.13.149    1.2.4.114     80/TCP    26s

  调用查看httpd服务

$ curl -i 1.2.4.120
HTTP/1.1 200 OK
Date: Fri, 20 Dec 2019 03:36:23 GMT
Server: Apache/2.4.41 (Unix) <------
Last-Modified: Mon, 11 Jun 2007 18:53:14 GMT
ETag: "2d-432a5e4a73a80"
Accept-Ranges: bytes
Content-Length: 45
Content-Type: text/html

<html><body><h1>It works!</h1></body></html>

  调用查看nginx服务

$ curl -i 1.2.4.114
HTTP/1.1 200 OK
Server: nginx/1.17.6 <------
Date: Fri, 20 Dec 2019 03:36:01 GMT
Content-Type: text/html
Content-Length: 612
Last-Modified: Tue, 19 Nov 2019 12:50:08 GMT
Connection: keep-alive
ETag: "5dd3e500-264"
Accept-Ranges: bytes

<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
....

 

总结:

优点:是对外暴露访问地址相较于NodePort的访问地址自控程度高

缺点:不具有高可用的能力

 

标签:httpd,Kubernetes,service,IP,externalIPs,nginx,1.2,类型
From: https://www.cnblogs.com/ggborn-001/p/18334776

相关文章

  • 如何在 Kubernetes 里部署 JMX Exporter
    本文会通过一个Java应用,演示PrometheusJMXExporter在Kubernetes里的部署和配置方式。为了更好地理解JMXExporter,我们将使用SpringBootJava应用程序并将所有JMX指标导出给Prometheus。在本指南结束时,您将学习:使用Java应用镜像启动JMXExporter将JMX指标导......
  • 如何使用python输入提示具有相同参数类型但不同返回类型的函数?
    我有一个函数,它的返回类型是tuple[bool,set[int]|str]如果第0项是True,则第1项是结果set[int],否则第1项是一个str,显示失败的原因。是这样的defcallee(para_a:int)->tuple[bool,set[int]|str]:result=set([1,2,3])if......
  • 数据类型
    数据类型目录数据类型基本数据类型引用数据类型自动装箱与拆箱默认值基本数据类型整型:byte:8位有符号整数,取值范围从-128到127。short`:16位有符号整数,取值范围从-32,768到32,767。int:32位有符号整数,默认的整数类型,取值范围从-2^31到2^31-1。long:64位有符号整数,......
  • 数据类型的转换
    数据类型的转换自动类型转换(隐式类型转换)自动类型转换发生在从一个小范围的数值类型(比如int)赋值给一个更大范围的数值类型(比如long)时。这种转换是自动进行的,不需要程序员显式指定。转换规则如下:从byte、short或char到int是自动的。从int到long、float或double......
  • OPTEE TA的类型区分
    OP-TEETA的三种类型目录PTA(伪TA)EarlyTAUserTAPTA(伪TA)编译位置:BL32运行模式:内核态功能限制:不能调用GP(通用目的)接口兼容性:可以在Uboot和Linux上运行EarlyTA编译位置:BL32运行模式:用户态功能:可以调用GP(通用目的)接口兼容性:可以在Uboot和Linux上运......
  • Java中数据类型的转换
    数据类型的转换目录数据类型的转换隐式类型转换显式类型转换隐式类型转换隐式类型转换也叫做自动类型转换。规则从存储范围小的类型到存储范围大的类型。转换方向byte→short(char)→int→long→float→double(这里指的是只有前面的数据类型能随便转换成后面的)—实际开发......
  • 核心(Hutool-core)类型转换Convert类
    Java常见类型转换转换为字符串:inta=1;//aStr为"1"StringaStr=Convert.toStr(a);long[]b={1,2,3,4,5};//bStr为:"[1,2,3,4,5]"StringbStr=Convert.toStr(b);转换为指定类型数组:String[]b={"1","2","3","4&q......
  • [HTTP] HTTP协议之MIME类型(多媒体资源类型)
    1概述MIME的定义、由来MIME(MultipurposeInternetMailExtensions)多用途互联网邮件扩展类型。MIME是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开。多用于指定一些客户端自定义的文件名,以及一......
  • 数据类型
    数据类型在Java中,数据类型是用来指定变量或表达式中值的类型。Java数据类型主要分为两大类:基本数据类型(PrimitiveTypes)和引用数据类型(ReferenceTypes)。1.基本数据类型(PrimitiveTypes):基本数据类型是Java中预定义的数据类型,它们直接存储在栈内存中,并且是Java语言提供的......
  • 具有自引用的类装饰器的 Python 类型提示
    我的最终目标是编写一个系统来轻松记录函数调用(特别是类方法)。我首先编写一个带有包装方法的类Loggable,该方法允许我装饰子类方法并记录它们的调用|||现在我可以编写子类并记录它们的调用:Param=ParamSpec("Param")RetType=TypeVar("RetType")CountType=......