在我的k8s集群中,入口不适用于数字海洋的k8s集群。我没有外部IP,因此无法使用。在本地似乎没有问题。
我已经搜索了很多内容并尝试了一些教程,例如https://www.digitalocean.com/community/tutorials/how-to-set-up-an-nginx-ingress-with-cert-manager-on-digitalocean-kubernetes。 但似乎它是一个较旧的版本,解决方案(甚至是链接)不再起作用。
nginx入口方应调用端口8080上的网站后端服务。
我将入口代码简化为以下代码:
kind: Ingress
metadata:
name: test-ingress
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- http:
paths:
- path: /
backend:
serviceName: website
servicePort: 8080
使用kubectl get ing
,我可以看到入口,但它没有地址。看起来像这样
NAME HOSTS ADDRESS PORTS AGE
test-ingress * 80 50s
任何人都可以帮助我,告诉我如何使k8s集群运行吗?
谢谢 彼得
答案 0 :(得分:0)
首先,如果您使用的是Nginx入口控制器,则无需查看入口地址。
在将Nginx Ingress Controller安装到k8s集群时,它将创建Load Balancer来处理所有传入的请求。确保按照您发布的guide的步骤2 中的说明完成下面的部分,并且能够看到LoadBalancer外部IP地址。
createItem(): FormGroup {
return this.formBuilder.group({
name: '',
description: '',
price: ''
});
}
addItem(): void {
this.items = this.orderForm.get('items') as FormArray;
this.items.push(this.createItem());
}
您应该看到一个与DigitalOcean Load Balancer的IP地址相对应的外部IP地址:
$ kubectl get svc --namespace=ingress-nginx
在上述情况下,部署入口资源后,如果您点击Output
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
ingress-nginx LoadBalancer 10.245.247.67 203.0.113.0 80:32486/TCP,443:32096/TCP 20h
,则将获得http://203.0.113.0
后端服务。
希望有帮助!