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

标签 amazon-web-services kubernetes amazon-elb kubernetes-ingress aws-eks

我想向可以访问我的vpc的多个用户公开kubernetes仪表板,我已经看到了一些使用内部负载平衡器和外部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

要更改它,您必须编辑服务:
kubectl edit service kubernetes-dashboard -n kube-system

并将.spec.typeClusterIP更改为NodePort

另一个选择是使用以下命令来修补服务:
$ 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
...

现在要连接到仪表板,您必须将浏览器指向http://master-node-ip:nodePort
$ 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
...

因此,根据此示例,它看起来像:http://10.240.0.5:30334
可以从与您的主节点位于同一网络的任何人访问它。
$ 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>

要了解有关所有Kubernetes服务类型之间的区别的更多信息,请检查以下链接:

Publishing Services (ServiceTypes)
Kubernetes –服务发布

关于amazon-web-services - 如何使用AWS EKS中的静态DNS向我的vpc中的所有用户公开kubernetes仪表板?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61348310/

相关文章:

java - 如何在 AWS Elastic Beanstalk 部署的 Java Web 应用程序中启用 WebSocket 请求

amazon-web-services - 我正在运行一个 REST API 服务器,但我不太了解基础架构。另外,我可以做些什么来进行基准测试和提高速度?

amazon-web-services - CloudFormation Hooks 不会将日志推送到 Cloudwatch Logs

amazon-web-services - 如何从 golang 向 AWS Lambda 函数发送数据?

go - 无法从 client-go -/serviceaccount/token : no such file 连接到 kubectl

apache-spark - Spark/k8s:如何在客户端模式下在现有kubernetes集群上安装Spark 2.4?

docker - 如何使用 Docker for Windows 访问本地主机上的 kubernetes 服务

amazon-web-services - 亚马逊AWS将IP地址重定向到域名

amazon-web-services - 云信息 AWS : Assign an ip address to a CustomerGateway using parameters

amazon-web-services - 使用 Java SDK 访问 AWS Transcribe 作业的结果