apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: helloworld-rules
spec:
rules:
- host: helloworld-v1.example.com
http:
paths:
- path: /
backend:
serviceName: helloworld-v1
servicePort: 80
- host: helloworld-v2.example.com
http:
paths:
- path: /
backend:
serviceName: helloworld-v2
servicePort: 80
我正在制作kubernetes群集,我将应用cloudPlatform Isolated(不是aws或google)。 在为服务创建入口时,我可以选择主机URL,但这在任何地方都不存在(该地址没有注册到像DNS服务器那样)所以我无法访问该URL。访问此IP只会给出404。 如何获取或配置可以访问外部浏览器的URL :( ...
答案 0 :(得分:2)
这取决于你如何配置你的nginx控制器。
您应该配置一个服务,这是从外部访问时的入口点,请参阅文档https://kubernetes.io/docs/concepts/services-networking/ingress/#what-is-ingress。
所以基本上你有一个指向入口控制器的服务,这会根据Ingress Objects将流量重定向到你的pod。
Ingress - >服务 - >豆荚
由于您不在aws或google上运行,您必须使用externalIp或NodePort并相应地配置服务
kind: Service
apiVersion: v1
metadata:
name: ingress-nginx
namespace: ingress-nginx
labels:
app: ingress-nginx
spec:
selector:
app: ingress-nginx
ports:
- name: http
port: 80
targetPort: http
- name: https
port: 443
targetPort: http
externalIPs:
- 80.11.12.10
DNS需要使用您的域名管理来解决,或者为了进行本地测试,您只需编辑/ etc / hostnames
基本上在AWS或Google中,您只需创建一个类型为:LoadBalancer的服务,并将您的DNS记录指向平衡器地址(适用于aws的CNAME和适用于Google的IP)