我是Kubernetes的菜鸟。我正在尝试遵循一些食谱来启动和运行一个小型集群,但是我遇到了麻烦...
我有一个主节点和(4)个节点,都运行Ubuntu 16.04
在所有节点上安装了docker:
$ sudo apt-get update
$ sudo apt-get install -y \
apt-transport-https \
ca-certificates \
curl \
software-properties-common
$ sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -
$ sudo add-apt-repository \
"deb https://download.docker.com/linux/$(. /etc/os-release; echo "$ID") \
$(lsb_release -cs) \
stable"
$ sudo apt-get update && apt-get install -y docker-ce=$(apt-cache madison docker-ce | grep 17.03 | head -1 | awk '{print $3}')
$ sudo docker version
Client:
Version: 17.12.1-ce
API version: 1.35
Go version: go1.9.4
Git commit: …Run Code Online (Sandbox Code Playgroud) 因此,我们的想法是Kubernetes仪表板访问Kubernetes API可以使我们对Kubernetes集群中运行的不同``种类''进行漂亮的可视化,而访问Kubernetes仪表板的方法是通过Kubernetes API的代理机制实现的,然后可以将其公开给用于公共访问的公共主机。
我的问题是,是否有可能通过该Kubernetes Dashboard的公开地址访问Kubernetes集群内其他服务的Kubernetes API代理机制?
如果我移动一个相关的配置文件并运行kubectl proxy它,它将允许我通过这个 URL 访问 Kubernetes 仪表板:
http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/
Run Code Online (Sandbox Code Playgroud)
但是,如果我尝试直接访问节点,而没有kubectl proxy,则会收到 403 Forbidden。
http://dev-master:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/#!/login
Run Code Online (Sandbox Code Playgroud)
我们的 kubernetes 集群隐藏在用户需要 VPN 的私有网络中;此外,在对 VPN 进行身份验证后,只有我们中的一些人可以与我们每个集群的主节点交谈。因此,运行kubectl proxy是一个多余的步骤,为每个集群选择合适的配置文件是一个额外的痛苦,尤其是当我们想要比较不同集群的状态时。
需要更改哪些内容以允许“匿名”HTTP 访问这些已受保护的 kubernetes 主节点的仪表板?
kubernetes kubectl kube-proxy kubernetes-dashboard kube-apiserver
根据以下信息,kubernetes-dashboard创建。我开始kubectl prox访问仪表板
[root@master ~]# kubectl create -f https://raw.githubusercontent.com/kubernetes/dashboard/master/aio/deploy/recommended/kubernetes-dashboard.yaml
secret/kubernetes-dashboard-certs created
secret/kubernetes-dashboard-csrf created
serviceaccount/kubernetes-dashboard created
role.rbac.authorization.k8s.io/kubernetes-dashboard-minimal created
rolebinding.rbac.authorization.k8s.io/kubernetes-dashboard-minimal created
deployment.apps/kubernetes-dashboard created
service/kubernetes-dashboard created
[root@master ~]# kubectl proxy --address="192.168.88.43" -p 8001 --accept-hosts='^*$'
Starting to serve on 192.168.88.43:8001
Run Code Online (Sandbox Code Playgroud)
当我去下面的网址
http://192.168.88.43:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/
Run Code Online (Sandbox Code Playgroud)
我明白了
{
"kind": "Status",
"apiVersion": "v1",
"metadata": {
},
"status": "Failure",
"message": "no endpoints available for service \"kubernetes-dashboard\"",
"reason": "ServiceUnavailable",
"code": 503
}
Run Code Online (Sandbox Code Playgroud) 我是 kubernetes 世界的新手,所以如果我写错了,请原谅我。我正在尝试部署 kubernetes 仪表板
我的集群包含 3 个主节点和 3 个工作节点,这些节点已耗尽并且不可调度,以便将仪表板安装到主节点:
[root@pp-tmp-test20 ~]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
pp-tmp-test20 Ready master 2d2h v1.15.2
pp-tmp-test21 Ready master 37h v1.15.2
pp-tmp-test22 Ready master 37h v1.15.2
pp-tmp-test23 Ready,SchedulingDisabled worker 36h v1.15.2
pp-tmp-test24 Ready,SchedulingDisabled worker 36h v1.15.2
pp-tmp-test25 Ready,SchedulingDisabled worker 36h v1.15.2
Run Code Online (Sandbox Code Playgroud)
我正在尝试通过此 url 部署 kubernetes 仪表板:
[root@pp-tmp-test20 ~]# kubectl create -f https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.1/src/deploy/recommended/kubernetes-dashboard.yaml
Run Code Online (Sandbox Code Playgroud)
之后,kubernetes-dashboard-5698d5bc9-ql6q8在我的主节点上安排了一个 Podpp-tmp-test20/172.31.68.220
吊舱
kube-system kubernetes-dashboard-5698d5bc9-ql6q8 /1 Running 1 7m11s 10.244.0.7 pp-tmp-test20 <none> <none>
Run Code Online (Sandbox Code Playgroud)
[root@pp-tmp-test20 …Run Code Online (Sandbox Code Playgroud) 我有一个 Kubernetes 集群,各种资源运行良好。我试图让仪表板正常工作,但在启动仪表板并输入服务帐户令牌时出现以下错误。
permanentvolumeclaims 被禁止:用户“system:serviceaccount:kube-system:kubernetes-dashboard”无法在命名空间“default”中的 API 组“”中列出资源“persistentvolumeclaims”
它不允许列出我的集群中的任何资源(持久卷、pod、入口等)。我的集群有多个命名空间。
这是我的服务帐户 yaml 文件:
apiVersion: v1
kind: ServiceAccount
metadata:
name: k8s-test # replace with your preferred username
namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
name: dashboard-admin # replace with your preferred username
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: dashboard-admin # replace with your preferred username
namespace: kube-system
Run Code Online (Sandbox Code Playgroud)
任何帮助表示赞赏。
我的 k8s 集群和用户中也有多个命名空间。我部署了 K8S 仪表板,现在我想授予对命名空间的访问权限以指定用户。例如:用户 A 只能访问仪表板上的命名空间 A,用户 B 只能访问仪表板上的命名空间 B。
谁能给一些片段配置吗?
谢谢大家。
rbac kubernetes kubectl kubernetes-dashboard kubernetes-cluster
文档遵循 https://docs.aws.amazon.com/eks/latest/userguide/dashboard-tutorial.html
我可以设置仪表板并使用链接 http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/#!/login 访问它
问题在于“每个用户都必须遵循相同的操作才能访问仪表板”
我想知道是否有某种方法可以通过域名访问仪表板,并且每个人都应该能够访问它,而无需进行太多预先设置。
替换如下 2 个命令来获取 Kubernetes 秘密令牌的一个线性命令是什么?示例用例将从 kubernetes-dashboard-admin 的密钥中获取令牌以登录和查看 kubernetes-dashboard。
命令示例:
$ kubectl describe serviceaccount default
Name: default
Namespace: default
Labels: <none>
Annotations: <none>
Image pull secrets: <none>
Mountable secrets: default-token-zvxf4
Tokens: default-token-zvxf4
Events: <none>
$ kubectl describe secret default-token-zvxf4
Name: default-token-zvxf4
Namespace: default
Labels: <none>
Annotations: kubernetes.io/service-account.name: default
kubernetes.io/service-account.uid: 809835e7-2564-439f-82f3-14762688ca80
Type: kubernetes.io/service-account-token
Data
====
ca.crt: 1025 bytes
namespace: 7 bytes
token: TOKENHERE
Run Code Online (Sandbox Code Playgroud) jsonpath kubernetes kubectl kubernetes-dashboard kubernetes-secrets
部署 webui(k8s 仪表板)后,我登录到仪表板,但在那里找不到任何内容,而是通知中的错误列表。
tatefulsets.apps is forbidden: User "system:serviceaccount:kubernetes-dashboard:default" cannot list resource "statefulsets" in API group "apps" in the namespace "default" 2 minutes ago
error
replicationcontrollers is forbidden: User "system:serviceaccount:kubernetes-dashboard:default" cannot list resource "replicationcontrollers" in API group "" in the namespace "default" 2 minutes ago
error
replicasets.apps is forbidden: User "system:serviceaccount:kubernetes-dashboard:default" cannot list resource "replicasets" in API group "apps" in the namespace "default" 2 minutes ago
error
deployments.apps is forbidden: User "system:serviceaccount:kubernetes-dashboard:default" cannot list resource "deployments" in API group "apps" in …Run Code Online (Sandbox Code Playgroud)