如何在AKS NginX Ingress中公开服务



我有一个服务,它公开了一个";你好世界";"web部署";开发";命名空间。

服务YAML

kind: Service
apiVersion: v1
metadata:
name: hello-v1-svc
spec:
selector:
app: hello-v1
ports:
- protocol: TCP
port: 80
targetPort: 8080

为了测试页面是否正常工作;库贝克特尔港远期;并且使用公共IP成功地显示页面。

编辑:然后部署入口,但页面仅显示在vnet地址空间内

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
labels:
app: app
version:  1.0.0
name: dev-ingress
namespace:  develop
spec:
rules:
- http:
paths:
- backend:
serviceName: hello-v1-svc
servicePort: 80
path: /

进入规则

Rules:
Host        Path  Backends
----        ----  --------
*
/   hello-v1-svc:80 (10.1.1.13:8080,10.1.1.21:8080,10.1.1.49:8080)

要显示页面,我要跳过哪一步?

首先回答您的评论:

也许它与这个注释有关:"服务测试版kubernetes.io/azure负载均衡器内部";。控制器被设置为"0";真">

service.beta.kubernetes.io/azure-load-balancer-internal: "true"注释通常在创建内部虚拟网络的入口控制器时使用。在这种注释的情况下,入口控制器配置在内部专用虚拟网络和IP地址上。不允许外部访问。您可以在Azure Kubernetes Service(AKS(文章中的创建内部虚拟网络的入口控制器中找到更多信息。

复制了您的案例,创建了AKS集群并应用于yamls下面。它按预期工作,所以请使用

apiVersion: v1
kind: Namespace
metadata:
name: develop
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: hello-world-deployment
namespace: develop
labels:
app: hello-v1
spec:
selector:
matchLabels:
app: hello-v1
replicas: 2
template:
metadata:
labels:
app: hello-v1
spec:
containers:
- name: hello-v1
image: paulbouwer/hello-kubernetes:1.8
ports:
- containerPort: 8080
---
kind: Service
apiVersion: v1
metadata:
name: hello-v1-svc
spec:
type: ClusterIP
selector:
app: hello-v1
ports:
- protocol: TCP
port: 80
targetPort: 8080
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: dev-ingress
namespace: develop
annotations:
kubernetes.io/ingress.class: nginx
spec:
rules:
- http:
paths:
- backend:
serviceName: hello-v1-svc
servicePort: 80
path: /

我的服务列表

vitalii@Azure:~$ kubectl get svc -A
NAMESPACE       NAME                             TYPE           CLUSTER-IP     EXTERNAL-IP    PORT(S)                      AGE
default         hello-v1-svc                     ClusterIP      10.0.20.206    <none>         80/TCP                       19m
default         kubernetes                       ClusterIP      10.0.0.1       <none>         443/TCP                      83m
ingress-basic   nginx-ingress-controller         LoadBalancer   10.0.222.156   *.*.*.*   80:32068/TCP,443:30907/TCP   53m
ingress-basic   nginx-ingress-default-backend    ClusterIP      10.0.193.198   <none>         80/TCP                       53m
kube-system     dashboard-metrics-scraper        ClusterIP      10.0.178.224   <none>         8000/TCP                     83m
kube-system     healthmodel-replicaset-service   ClusterIP      10.0.199.235   <none>         25227/TCP                    83m
kube-system     kube-dns                         ClusterIP      10.0.0.10      <none>         53/UDP,53/TCP                83m
kube-system     kubernetes-dashboard             ClusterIP      10.0.115.184   <none>         443/TCP                      83m
kube-system     metrics-server                   ClusterIP      10.0.199.200   <none>         443/TCP                      83m

当然,出于安全考虑,我隐藏了nginx入口控制器的EXTERNAL-IP。这是您应该用来访问页面的IP。

MOre信息和示例可以在Azure Kubernetes Service(AKS(文章中找到

相关内容

  • 没有找到相关文章

最新更新