我创建了如下所示的侵入服务,并且我能够使用IP (使用kubectl get入口命令检索)获得响应。
部署文件
apiVersion: apps/v1
kind: Deployment
metadata:
name: app1-nginx-deployment
labels:
app: app1-nginx
spec:
replicas: 1
selector:
matchLabels:
app: app1-nginx
template:
metadata:
labels:
app: app1-nginx
spec:
containers:
- name: app1-nginx
image: msanajyv/k8s_api
ports:
- containerPort: 80
服务档案
apiVersion: v1
kind: Service
metadata:
name: app1-nginx-clusterip-service
labels:
app: app1-nginx
spec:
type: ClusterIP
selector:
app: app1-nginx
ports:
- port: 80
targetPort: 80
入口文件
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: nginxapp1-ingress-service
annotations:
kubernetes.io/ingress.class: nginx
spec:
rules:
- http:
paths:
- path: /
backend:
serviceName: app1-nginx-clusterip-service
servicePort: 80
使用上述YAML文件,我可以使用ip地址(即http://xx.xx.xx.xx/weatherforecast )访问服务。
但是我想用域名而不是IP来访问服务。因此,我在我的蔚蓝门户中创建了一个DNS,并添加了一个记录集如下所示。


此外,我还更改了我的侵入文件如下。
...
rules:
- host: app1.msvcloud.io
http:
paths:
- path: /
backend:
serviceName: app1-nginx-clusterip-service
servicePort: 80
当我使用主机名(http://app1.msvcloud.io/weatherforecast)访问时,主机不会被解析。请让我知道我错过了什么。
发布于 2022-01-01 03:02:36
通过在专用 DNS区域中创建记录,只能解析虚拟网络中的名称(app1.msvcloud.io)。这意味着,如果您远程进入VNET中的VM并从那里访问,它就会工作。但是,如果您在VNET之外尝试同样的方法,它将无法工作。如果您希望在万维网上可解析该名称,则需要购买域名并在Azure DNS中注册。
私有DNS区域中包含的记录无法从Internet解析。针对专用DNS区域的DNS解析只在链接到它的虚拟网络上工作。
https://stackoverflow.com/questions/70545401
复制相似问题