Kubernetes的ExternalName详解

简介: ExternalName类型的Service在Kubernetes中用于将外部服务(不是Kubernetes集群内的服务)映射到Kubernetes集群内的Service。# 样例其创建方法如下:```kind: ServiceapiVersion: v1metadata: name: my-external-service namespace: cv-console-dev labels: app: my-external-service annotations: kubesphere.io/creator: sunjq kubesph

ExternalName类型的Service在Kubernetes中用于将外部服务(不是Kubernetes集群内的服务)映射到Kubernetes集群内的Service。

样例

其创建方法如下:

kind: Service
apiVersion: v1
metadata:
  name: my-external-service
  namespace: cv-console-dev
  labels:
    app: my-external-service
  annotations:
    kubesphere.io/creator: sunjq
    kubesphere.io/serviceType: externalservice
spec:
  type: ExternalName
  sessionAffinity: None
  externalName: www.httpclient.cn

在上述配置中,我们创建了一个名为my-external-service的Service,其类型为ExternalName,并将www.httpclient.cn映射到该Service。这就相当于在Kubernetes集群内部创建了一个别名,可以通过访问my-external-service来访问www.httpclient.cn。

需要注意的是,使用ExternalName类型的Service需要确保目标外部服务已经存在,并且可以通过域名进行访问。

测试过程

root@5c856df78-5ml9f:/# curl -k  test-ex.cv-console-dev -vvv
*   Trying 47.244.242.115:80...
* Connected to test-ex.cv-console-dev (47.244.242.115) port 80 (#0)     ---------------------外部的域名对应的ip
> GET / HTTP/1.1
> Host: test-ex.cv-console-dev
> User-Agent: curl/7.74.0
> Accept: */*
>
* Mark bundle as not supporting multiuse
< HTTP/1.1 200 OK
< Server: nginx/1.15.12
< Date: Thu, 31 Aug 2023 08:49:05 GMT
< Content-Type: text/html
< Content-Length: 612
< Last-Modified: Fri, 21 Jun 2019 06:42:16 GMT
< Connection: keep-alive
< ETag: "5d0c7c48-264"
< Accept-Ranges: bytes
<
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
    body {
        width: 35em;
        margin: 0 auto;
        font-family: Tahoma, Verdana, Arial, sans-serif;
    }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>

<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>
</body>
</html>
* Connection #0 to host test-ex.cv-console-dev left intact
相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
运维 Kubernetes 负载均衡
Kubernetes介绍篇:是什么?为什么要用?
是时候该学习Kubernetes了,不然都不敢说自己了解容器、了解Docker。
1315 0
Kubernetes介绍篇:是什么?为什么要用?
|
4月前
|
Kubernetes 负载均衡 调度
在K8S中,什么是kubernetes?
在K8S中,什么是kubernetes?
|
7月前
|
Kubernetes 前端开发 网络协议
Kubernetes服务
Kubernetes服务
70 0
Kubernetes服务
|
7月前
|
Kubernetes 负载均衡 应用服务中间件
Kubernetes
Kubernetes 版 ACK(Alibaba Cloud Container Service for Kubernetes)是阿里云提供的一种容器服务,它基于 Kubernetes 开源容器编排平台,为用户提供高效、可扩展的容器应用管理能力。ACK 可以帮助用户在云端轻松部署、管理和扩展容器化应用,同时提供了丰富的 Kubernetes 功能,例如自动扩展、滚动更新、负载均衡等。
84 1
|
7月前
|
Kubernetes 监控 关系型数据库
了解Kubernetes
kubernetes入门
47 0
|
Kubernetes 调度 Docker
了解和使用 Kubernetes
通过 [《容器集群管理工具 Docker Swarm》](https://wangbinguang.blog.csdn.net/article/details/131082281)可以知道,在部署、调度、扩展和管理较多的容器时,如果有一个工具帮忙做这些事,那无疑会大大提高工作效率了。那 Docker Swarm 就是这样的工具,同样 Kubernetes(简称k8s)也是这样的一个工具,相对于 Docker Swarm, Kubernetes 生态比较庞大,有更多的支持、服务和工具。至于用哪个,萝卜青菜各有所爱吧。
103 0
|
边缘计算 运维 Kubernetes
Kubernetes 伟大的未来
Kubernetes 伟大的未来
229 1
|
存储 Kubernetes 安全
Kubernetes 你不知道的事
Kubernetes 你不知道的事
143 1
|
Kubernetes 监控 Cloud Native
Kubernetes介绍
Docker系列文章: 1. 为什么要学习Docker 2. Docker基本概念 3. Docker镜像基本原理 4. Docker容器数据卷 5. Dockerfile 6. Docker单机网络上 7. Docker单机网络下 8. Docker单机网络实战 9. Docker隔离技术 10. Docker限制 11. Docker Compose
|
存储 Kubernetes 负载均衡
为什么需要 Kubernetes,它能做什么?
为什么需要 Kubernetes,它能做什么?
216 0