Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 如何在AWS EKS中使用静态DNS向我的vpc内的所有用户公开kubernetes仪表板?_Amazon Web Services_Kubernetes_Amazon Elb_Kubernetes Ingress_Amazon Eks - Fatal编程技术网

Amazon web services 如何在AWS EKS中使用静态DNS向我的vpc内的所有用户公开kubernetes仪表板?

Amazon web services 如何在AWS EKS中使用静态DNS向我的vpc内的所有用户公开kubernetes仪表板?,amazon-web-services,kubernetes,amazon-elb,kubernetes-ingress,amazon-eks,Amazon Web Services,Kubernetes,Amazon Elb,Kubernetes Ingress,Amazon Eks,我想向有权访问我的vpc的多个用户公开kubernetes dashboard,我见过一些使用带有外部DNS的内部负载平衡器的示例,但我只想知道是否有更多建议。安装仪表板时,服务设置为ClusterIP。要让来自同一VPC的用户访问它,您需要将服务更改为NodePort $ kubectl get service kubernetes-dashboard -n kube-system NAME TYPE CLUSTER-IP EXTERNA

我想向有权访问我的vpc的多个用户公开kubernetes dashboard,我见过一些使用带有外部DNS的内部负载平衡器的示例,但我只想知道是否有更多建议。

安装仪表板时,服务设置为
ClusterIP
。要让来自同一VPC的用户访问它,您需要将服务更改为
NodePort

$ kubectl get service kubernetes-dashboard -n kube-system
NAME                   TYPE       CLUSTER-IP     EXTERNAL-IP   PORT(S)        AGE
kubernetes-dashboard   ClusterIP   10.0.184.227   <none>        80/TCP          15m
并将
.spec.type
ClusterIP
更改为
NodePort

$ kubectl get service kubernetes-dashboard -n kube-system
NAME                   TYPE       CLUSTER-IP     EXTERNAL-IP   PORT(S)        AGE
kubernetes-dashboard   ClusterIP   10.0.184.227   <none>        80/TCP          15m
另一个选项是使用以下命令修补服务:

$ kubectl patch service -n kube-system kubernetes-dashboard --patch '{"spec": {"type": "NodePort"}}'
编辑或修补后,即可根据需要加入您的服务

$ kubectl get service kubernetes-dashboard -n kube-system
NAME                   TYPE       CLUSTER-IP     EXTERNAL-IP   PORT(S)        AGE
kubernetes-dashboard   NodePort   10.0.184.227   <none>        80:30334/TCP   18m
...
要了解所有Kubernetes服务类型之间的差异,请查看以下链接:


Kubernetes–服务发布

这与公开任何其他服务没有什么不同。我知道我可以使用内部集群来实现这一点,但对于aws EKS集群来说并不真正有效?它在AKS上运行良好。我测试并更新了我的答案,但做了一些调整。你能从浏览器中访问它吗?因为我不能知道什么都没有发生,或者你的浏览器中有错误?
$ kubectl describe service kubernetes-dashboard -n kube-system
...
NodePort:                 <unset>  30334/TCP
...
$ kubectl get node -o wide
NAME                                STATUS   ROLES   AGE   VERSION    INTERNAL-IP   EXTERNAL-IP   OS-IMAGE             KERNEL-VERSION      CONTAINER-RUNTIME
aks-agentpool-20139558-vmss000000   Ready    agent   16m   v1.15.10   10.240.0.5    <none>        Ubuntu 16.04.6 LTS   4.15.0-1071-azure   docker://3.0.10+azure
...
$ curl http://10.240.0.5:30334
 <!doctype html> <html ng-app="kubernetesDashboard"> <head> <meta charset="utf-8"> <title ng-controller="kdTitle as $ctrl" ng-bind="$ctrl.title()"></title> <link rel="icon" type="image/png" href="assets/images/kubernetes-logo.png"> <meta name="viewport" content="width=device-width"> <link rel="stylesheet" href="static/vendor.93db0a0d.css"> <link rel="stylesheet" href="static/app.ddd3b5ec.css"> </head> <body ng-controller="kdMain as $ctrl"> <!--[if lt IE 10]>
      <p class="browsehappy">You are using an <strong>outdated</strong> browser.
      Please <a href="http://browsehappy.com/">upgrade your browser</a> to improve your
      experience.</p>
    <![endif]--> <kd-login layout="column" layout-fill ng-if="$ctrl.isLoginState()"> </kd-login> <kd-chrome layout="column" layout-fill ng-if="!$ctrl.isLoginState()"> </kd-chrome> <script src="static/vendor.bd425c26.js"></script> <script src="api/appConfig.json"></script> <script src="static/app.91a96542.js"></script> </body> </html>