我有一个在Azure上运行的Kubernetes群集。我使用nginx-ingress处理传入的请求。为了设置入口,我使用了官方指南https://kubernetes.github.io/ingress-nginx/deploy/#azure。 我还创建了一个我想用于Ingress的公共静态IP。 不幸的是,我找不到入口服务(generic-deployment.yaml)。另外,我的进入也不可描述。
$ sudo kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/static/mandatory.yaml
...
deployment.apps/nginx-ingress-controller created
$ sudo kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/static/provider/cloud-generic.yaml
service/ingress-nginx created
此外,我通过ingress.yaml安装了一些路由配置:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: myingress
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- http:
paths:
- path:
backend:
serviceName: app0-service
servicePort: 80
- path: /app1
backend:
serviceName: app1-service
servicePort: 80
$sudo kubectl apply -f ingress.yaml
ingress.extensions/myingress created
很遗憾,我找不到我的ingress-nginx服务。
$ sudo kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
app0-service ClusterIP 10.0.28.3 <none> 80/TCP 3m48s
app1-service ClusterIP 10.0.226.249 <none> 80/TCP 3m47s
kubernetes ClusterIP 10.0.0.1 <none> 443/TCP 39m
但是我的入口正在运行:
$ sudo kubectl get ingress
NAME HOSTS ADDRESS PORTS AGE
myingress * 23.97.xxx.xxx 80 54m
在浏览器23.97.xxx.xxx中部分起作用。
1)如果我将域名代理为23.97.xxx.xxx,则浏览器中的域将被IP重写。
2)如果我尝试直接浏览到子路由,例如23.97.xxx.xxx/app1/page1。我每次进入app1的主页。
我希望从我的入口服务获得IP。因为我想通过将loadbalancerIP添加到cloud-generic.yaml中的规范来更新此IP地址。 (如https://github.com/kubernetes/ingress-nginx/blob/master/docs/examples/static-ip/static-ip-svc.yaml)。
我的IP地址是否适合使用?为什么我找不到我的入口服务?
答案 0 :(得分:0)
在https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/static/provider/cloud-generic.yaml上查看服务yaml
,您会发现它是在命名空间ingress-nginx
中创建的。
您应该可以通过运行以下命令获得服务:
kubectl get service -n ingress-nginx
您还可以通过运行kubectl get service --all-namespaces
获得所有服务。