使用NodePort访问Azure Kubernetes集群

珍露卡·斯卡斯里

我正在运行一个pod(网站)和一个简单的服务

apiVersion: v1
kind: Service
metadata:
  name: ui
spec:
  type: NodePort
  selector:
    app: ui
  ports:
  - protocol: TCP
    port: 80
    targetPort: 3000

$> kubectl get services
NAME         TYPE        CLUSTER-IP    EXTERNAL-IP   PORT(S)        AGE   SELECTOR   LABELS
kubernetes   ClusterIP   10.0.0.1      <none>        443/TCP        83m   <none>     component=apiserver,provider=kubernetes
ui           NodePort    10.0.25.205   <none>        80:30180/TCP   53m   app=ui     <none>

由于此服务是类型的,NodePort因此它将在每个群集节点上打开一个端口。就我而言,我正在Azure中运行kubernetes(单节点设置)。但是如何访问我的服务/网站?

$> kubectl describe service ui
Name:                     ui
Namespace:                default
Labels:                   <none>
Annotations:              kubectl.kubernetes.io/last-applied-configuration:
                            {"apiVersion":"v1","kind":"Service","metadata": {"annotations":{},"name":"ui","namespace":"default"},"spec":{"ports":[{"port":80,"protocol"...
Selector:                 app=ui
Type:                     NodePort
IP:                       10.0.25.205
Port:                     <unset>  80/TCP
TargetPort:               3000/TCP
NodePort:                 <unset>  30180/TCP
Endpoints:                10.244.0.14:3000,10.244.0.15:3000
Session Affinity:         None
External Traffic Policy:  Cluster
Events:
  Type    Reason                Age   From                Message
  ----    ------                ----  ----                -------
  Normal  Type                  29m   service-controller  NodePort -> LoadBalancer
  Normal  EnsuringLoadBalancer  29m   service-controller  Ensuring load balancer
  Normal  EnsuredLoadBalancer   27m   service-controller  Ensured load balancer
  Normal  Type                  10m   service-controller  LoadBalancer -> NodePort
  Normal  DeletingLoadBalancer  10m   service-controller  Deleting load balancer
  Normal  DeletedLoadBalancer   9m5s  service-controller  Deleted load balancer

我没有看到外部IP。

例如,如果我更改NodePortLoadBalancerI ,则可以获得外部IP,并且可以访问我的网站,但是如何使用NodePort呢?

Charles Xu

据我所知,AKS是一项托管服务,它只公开由Azure管理的主服务器来控制所有操作。从属节点不公开,默认情况下没有外部IP。

在AKS群集中,您只能使用负载均衡器或入口(也将负载均衡器用于其服务)通过服务访问应用程序。

如果您确实想为服务使用节点类型,则还有一种解决方法。您可以手动创建公用IP,并将其与要使用节点类型创建服务的节点相关联。然后,节点具有外部IP。但是不建议对AKS Iaas进行所有操作。因此,如果您想从Internet访问负载平衡器类型,则是最适合该服务的方式。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用Kubernetes集群中的Helm图表访问已部署的服务

配置kubectl命令以访问Azure上的远程kubernetes集群

如何使用kubeadm创建kubernetes集群?

如何使用服务名称访问kubernetes集群中的服务。

使用python API从GCP管理Kubernetes集群

无法使用NodePort访问本地kubernetes集群中的服务

如何使用kubernetes NodePort从外部访问服务?

如何使用kubectl正确访问多个kubernetes集群

Kubernetes-如何使用NodePort服务从集群外部访问Nginx负载平衡

使用grafana访问远程Kubernetes集群

拒绝访问Kubernetes集群外部的路由

使用kops同时使用多个kubernetes集群

在Kubernetes集群中访问Zeppelin的界面

使用Istio的Kubernetes集群中的Prometheus

如何从集群外部访问Kubernetes中的MongoDB

无法通过MicroK8s集群中的Kubernetes NodePort服务访问Express.js服务

使用NodePort类型服务公开私有kubernetes集群

Kubernetes NodePort网络如何在多节点集群上工作?

在Kubernetes集群中使用Python设置Prometheus

在Kubernetes集群中使用pgAdmin访问数据库

使用minikube访问kubernetes集群外的应用

Kubernetes,在集群外访问IP

集群内无法访问Kubernetes POD

如何从集群外部访问我的Cassandra / Kubernetes集群?

使用Terraform管理GCP Composer Kubernetes集群

使用 Kubernetes 集群启动 Kubernetes Helm 图表

在 kubernetes 集群外访问 bitnami/kafka

在虚拟机中访问 Kubernetes 集群

如何访问部署在 Kubernetes 集群上的 postgresql