k8s~ExternalName的使用
在Kubernetes中,Service資源的type字段有多種選項,其中之一是ExternalName。ExternalName類型的服務(wu)(wu)用于將外部服務(wu)(wu)引入(ru)到Kubernetes集(ji)群中,通常會將外部服務(wu)(wu)的域(yu)名映射到Kubernetes集(ji)群中的一個DNS名稱。
ExternalName服(fu)務類型不涉(she)及端口映(ying)射或負載均衡。它只是一個DNS別名(ming),將Kubernetes內部的服(fu)務名(ming)稱(cheng)映(ying)射到一個外部域名(ming),而(er)不更改端口號。這對于需(xu)要在Kubernetes集群內部引用(yong)外部服(fu)務的情況非常有用(yong),但它不涉(she)及端口的映(ying)射。
這是一個示例ExternalName服務的YAML配置:
apiVersion: v1
kind: Service
metadata:
name: my-external-service
spec:
type: ExternalName
externalName: example.com # 這里是外部域名
在這個示例中,my-external-service是一個ExternalName服務,它將example.com映射到Kubernetes集群中,但沒有更改端口。你可以在Kubernetes內部使用my-external-service來訪問example.com,但端(duan)(duan)口(kou)將保持不變。如果外(wai)部服務使用非標準端(duan)(duan)口(kou),你(ni)可能需(xu)要在訪問時明確指(zhi)定端(duan)(duan)口(kou)號。
要支持域名和端口的形式,你需要考慮使用其他服務類型,例如NodePort或LoadBalancer,它(ta)們可以通過端口映射和負載均衡來處理外部服務(wu)的(de)訪(fang)問。
解析到example.com的8080端口
如(ru)果外部服(fu)務(wu)的端口(kou)不(bu)是標準的80端口(kou),你可以在Service配置(zhi)中使用端口(kou)字段來指(zhi)(zhi)定端口(kou)號。以下是一個示例,演示如(ru)何指(zhi)(zhi)定非80端口(kou)的ExternalName服(fu)務(wu):
apiVersion: v1
kind: Service
metadata:
name: my-external-service
spec:
type: ExternalName
externalName: example.com # 這里是外部域名
ports:
- name: http
port: 8080 # 這里是外部服務的端口號