![](/img/trans.png)
[英]How to redirect traffic from hostname to a custom IP address in Kubernetes (AKS)?
[英]Replacing ip address in kubernetes with custom name
我創建了一個示例 Spring Boot 應用程序並執行了以下操作:-
1.創建了一個docker鏡像
2.創建了一個 Azure 容器注冊表並對此做了一個 docker push
3.在 Azure Kubernetes 服務中創建集群並成功部署。為此我選擇了外部端點選項。
說服務到服務呼叫我不想使用像http://20.37.134.68:80這樣的 IP 但另一個自定義名稱我該怎么做? 另外,如果我選擇內部,那么有什么方法可以替換名稱。 嘗試使用端點名稱屬性編輯 YAML,但失敗了。有任何想法嗎?
我認為你混合了一些概念,所以我會嘗試解釋並幫助你達到你想要的。
pod
或deployment
規范,這基本上是一個包含所有部署/pod 配置、名稱、映像名稱等的 yaml 文件。這是一個示例簡單的回聲服務器應用程序:apiVersion: apps/v1
kind: Deployment
metadata:
name: echo
spec:
selector:
matchLabels:
app: echo
template:
metadata:
labels:
app: echo
spec:
containers:
- name: echo
image: mendhak/http-https-echo
ports:
- name: http
containerPort: 80
觀察文件中的字段name
。 您可以在此處為部署和容器配置名稱。
對於內部服務,您需要使用服務類型ClusterIP
(默認),這意味着只有您的集群才能訪問 pod。 要從其他 pod 訪問您的服務,您可以使用由my-svc.my-namespace.svc.cluster-domain.example
組成的服務名稱。
以下是上述部署的服務示例:
apiVersion: v1
kind: Service
metadata:
name: echo-svc
spec:
selector:
app: echo
ports:
- protocol: TCP
port: 80
targetPort: 80
NodePort
、 LoadBalancer
或使用ingress
。 您可以在入口規則中配置您的 DNS 名稱並根據需要制定路徑規則,甚至可以為您的應用程序配置 HTTPS。 kubernetes 中的 ingress 選項很少,最受歡迎的選項之一是nginx-ingress
。
以下是如何為我們的示例服務配置簡單入口的示例:
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/use-regex: "false"
name: echo-ingress
spec:
rules:
- host: myapp.mydomain.com
http:
paths:
- path: "/"
backend:
serviceName: echo-svc
servicePort: 80
在示例中,我使用了 dns 名稱myapp.mydomain.com
,因此這意味着您只能通過此名稱訪問您的應用程序。
創建 ingress 后,可以使用kubectl get ing
命令查看外部 ip,並且可以在您的 dns 服務器中創建一個 A 條目。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.