Kubernetes 仪表板的 Web 会话超时时间非常短。我看不到任何设置或配置参数来更改它。
我尝试使用 来检查容器内容kubectl exec,但似乎没有任何 shell(sh、bash、ash 等),所以我看不到里面配置了哪些 Web 服务器参数。
我想延长此超时时间,以便更轻松地长时间跟踪作业执行情况。
我该如何继续?
我尝试按照https://github.com/kubernetes/dashboard/blob/master/docs/user/access-control/creating-sample-user.md上的说明创建 Kubernetes 仪表板令牌。但是,当我运行指定的命令时,出现错误
% kubectl -n kubernetes-dashboard create token admin-user
Error: must specify one of -f and -k
error: unknown command "token admin-user"
See 'kubectl create -h' for help and examples
Run Code Online (Sandbox Code Playgroud)
如果我跳回文档历史记录,我会看到一个可以运行的不同的、更详细的命令
% kubectl -n kubernetes-dashboard get secret $(kubectl -n kubernetes-dashboard get sa/admin-user -o jsonpath="{.secrets[0].name}") -o go-template="{{.data.token | base64decode}}"
Run Code Online (Sandbox Code Playgroud)
这似乎工作正常,文档更改的 PR 提到“版本 1.24”,但没有提到 1.24 版本指的是哪个软件(kubectl?仪表板?Kuberenetes 本身??kind还有其他东西吗?)
那么第一个命令发生了什么?为什么不起作用?
我们使用以下命令创建了 kubernetes 仪表板。
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.5.0/aio/deploy/recommended.yaml
kubectl patch svc -n kubernetes-dashboard kubernetes-dashboard --type='json' -p '[{"op":"replace","path":"/spec/type","value":"NodePort"}]'
Run Code Online (Sandbox Code Playgroud)
创建了如下所示的仪表板-adminuser.yaml 文件。
apiVersion: v1
kind: ServiceAccount
metadata:
name: admin-user
namespace: kubernetes-dashboard
Run Code Online (Sandbox Code Playgroud)
创建了 ClusterRoleBinding.yaml 文件,如下所示
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: admin-user
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: admin-user
namespace: kubernetes-dashboard
Run Code Online (Sandbox Code Playgroud)
然后运行以下命令,最后我们得到了登录仪表板的令牌。
kubectl apply -f dashboard-adminuser.yaml
kubectl apply -f ClusterRoleBinding.yaml
kubectl -n kubernetes-dashboard create token admin-user
Run Code Online (Sandbox Code Playgroud)
但问题是我们生成的令牌在一小时后就过期了。如果仪表板注销,我们将无法再次使用相同的令牌。
那么我们可以创建一个没有到期日或至少 6 个月的代币吗?
创建长期使用令牌的命令/过程是什么?
另一件事是,现在我们可以在外部访问 kubernetes 仪表板,如下所示。
https://服务器 IP 地址:PORT_NUMBER
现在我们想要使用我们的网站 URL …
kubernetes google-kubernetes-engine kubernetes-dashboard kubernetes-pod
我已经建立了一个集群,其中有 2 个节点。一个是 Master,另一个是一个节点,它们都在不同的 Azure ubuntu VM 上。对于网络,我使用了 Canal 工具。
$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
ubuntu-aniket1 Ready master 57m v1.10.0
ubutu-aniket Ready <none> 56m v1.10.0
$ kubectl get pods --all-namespaces
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system canal-jztfd 3/3 Running 0 57m
kube-system canal-mdbbp 3/3 Running 0 57m
kube-system etcd-ubuntu-aniket1 1/1 Running 0 58m
kube-system kube-apiserver-ubuntu-aniket1 1/1 Running 0 58m
kube-system kube-controller-manager-ubuntu-aniket1 1/1 Running 0 58m
kube-system kube-dns-86f4d74b45-8zqqr 3/3 Running 0 58m
kube-system kube-proxy-k5ggz 1/1 Running …
如何使用标签从kubernetes仪表板中选择Pod?
类似的东西:
$ Kubectl get pods -l environment=production,tier=frontend
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用网络外的 Token 方法访问 kubernetes Dashboard。
我运行了这两个命令来获取令牌
kubectl -n kube-system get secret
kubectl -n kube-system describe secret replicaset-controller-token-2p4fk
Run Code Online (Sandbox Code Playgroud)
将粘贴输出令牌复制到 K8 登录页面。
当我单击“登录”按钮(页面未加载)时,我收到此错误浏览器控制台。
我正在使用以下命令在内部服务器上运行 k8:
kubectl proxy --address 0.0.0.0 --accept-hosts '.*'
Run Code Online (Sandbox Code Playgroud)
并尝试从外部网络访问 k8 UI 控制台。
Failed to load resource: the server responded with a status of 401 (Unauthorized)
vendor.bd425c26.js:6 Error during global settings reload: Object
:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/api/v1/rbac/status:1 Failed to load resource: the server responded with a status of 401 (Unauthorized)
vendor.bd425c26.js:6 Possibly unhandled rejection: {"data":"MSG_LOGIN_UNAUTHORIZED_ERROR\n","status":401,"config":{"method":"GET","transformRequest":[null],"transformResponse":[null],"jsonpCallbackParam":"callback","url":"api/v1/rbac/status","headers":{"Accept":"application/json, text/plain, */*"}},"statusText":"Unauthorized","xhrStatus":"complete","resource":{}}
Run Code Online (Sandbox Code Playgroud)
我什至尝试了这些步骤,但不幸的是,单击“登录”按钮时页面未加载。
$ kubectl -n …Run Code Online (Sandbox Code Playgroud) 我正在使用 k3s 的默认安装(版本 v1.17.0+k3s.1)并验证它在我的 Raspberry Pi 集群上正常工作。
使用推荐的说明(https://kubernetes.io/docs/tasks/access-application-cluster/web-ui-dashboard/)安装 kubernetes-dashboard后,我确认这是有效的,在我使用 k3s 将它暴露在集群之外之后基于 traefik 的负载均衡器。
但是,当我尝试使用 traefik 入口控制器公开它时,我无法连接到 kubernetes 仪表板,浏览器显示 HTTP 500 错误,即内部服务器错误。下面是我的入口 yaml 和 kubernetes-dashboard pod 日志,显示了 TLS 证书错误。我相信证书错误是由于 traefik 不知道(和信任)kubernetes 仪表板使用的 TLS 证书。
一种。k8s-dashboard-Ingress
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
labels:
k8s-app: kubernetes-dashboard
name: kubernetes-dashboard
namespace: kubernetes-dashboard
annotations:
kubernetes.io/ingress.class: traefik
traefik.ingress.kubernetes.io/ssl-redirect: "true"
spec:
rules:
- host: k8s-services
http:
paths:
- path: /k8s-dashboard
backend:
serviceName: kubernetes-dashboard
servicePort: 443
Run Code Online (Sandbox Code Playgroud)
笔记。域“k8s-services”域在我的 pi 集群机器和浏览计算机主机文件中定义。
湾 Kubernetes 仪表板 pod 日志
...
2020/01/18 06:04:19 Auto-generating …Run Code Online (Sandbox Code Playgroud) 我有带有 Ingress/Traefik 控制器的 Kubernetes 集群
另外,我使用这里的标准配置安装了仪表板:https : //raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/recommended/kubernetes-dashboard.yaml
我正在尝试通过 Ingress 访问仪表板,但出现 404 错误
404 page not found
Run Code Online (Sandbox Code Playgroud)
我的 ingress.yml 文件看起来像这样
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
kubernetes.io/ingress.class: "traefik"
name: app-ingress-system
namespace: kube-system
spec:
tls:
- hosts:
- dashboard.domain.com
secretName: kubernetes-dashboard-certs
rules:
- host: dashboard.domain.com
http:
paths:
- path: /
backend:
serviceName: kubernetes-dashboard
servicePort: 443
Run Code Online (Sandbox Code Playgroud)
我尝试了不同的 - 路径:(如 /dashboard、/proxy)相同的结果
我在 Ubuntu 18.04 LTS VM、3 核、60 GB 存储、12 GB 内存中使用 microk8s。我跟着从microk8s网站上的说明在这里进行安装。
$ snap install microk8s --classic --channel=1.18/stable
$ sudo microk8s start
$ sudo microk8s enable dns storage dashboard
$ sudo microk8s enable kubeflow
Run Code Online (Sandbox Code Playgroud)
这花了一些时间,但一切都开始了。我有 110 个 Pod 正在运行。当 Kubeflow 完成安装时,我得到了
Operator pods ready.
Waiting for service pods to become ready.
Congratulations, Kubeflow is now available.
The dashboard is available at http://10.64.140.43.xip.io/
Username: admin
Password: VIVGI9KB7GEX6JNAQJXZTXD97S42XD
Run Code Online (Sandbox Code Playgroud)
哪个不起作用。当我将该 URL 放入浏览器时,出现白屏。然后我尝试访问 kubernetes 仪表板并能够使用我的令牌登录,但它说它找不到任何资源。它不会在命名空间、节点或任何内容中显示任何内容。
命名空间仍处于默认状态,因为我无法让它显示kubeflow. 文档说 kubeflow 不适用于 kubernetes 1.18,但如果您安装旧版本的 …
我艰难地使用了 kubernetes 并成功地使用 kubernetes 1.18.6 部署了一个集群
我使用了 vmware 和 kubernetes 1.18.6。我部署了 metric-server 和 kubernets 仪表板
我用这个命令 --> kubectl proxy --address='0.0.0.0' --port=8001 --accept-hosts='^*$' 来启动 kuberenetes 仪表板
然后我使用下面的 url 从我的主节点访问 kubernes 仪表板
http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/
Run Code Online (Sandbox Code Playgroud)
但是我的浏览器出现以下错误
Error trying to reach service: 'dial tcp 10.44.0.2:8443: connect: connection refused'
Run Code Online (Sandbox Code Playgroud)
但是我可以使用 url https://10.44.0.2:8443/在我的工作节点上访问 kubernetes 仪表板而没有任何问题
我错过了什么?
为什么我无法以正常方式访问 kubernetes 仪表板?
我使用 kubeadm 工具创建了另一个集群,我可以在集群外访问 kubernetes 仪表板。
我已经配置了 weave 和 coredns,我没有看到它们有任何错误。我做了一个烟雾测试,一切正常。我什至部署了 wordpress,它也能正常工作。
我所有的配置都在https://github.com/godomainz/kubernetes-the-hard-way.git feature/Feature-1.18.6分支中
来宾操作系统:Ubuntu 18.04 使用的
集群环境:VMWare 工作站
主机 PC:Windowd 10 Pro(i7 处理器,64GB 内存)
每个 VM …
cluster-computing kubernetes kubernetes-dashboard kubernetes-networking kubernetes-metrics