根据Spring Cloud Kubernetes文档,为了在RBAC发现服务/pods,启用了Kubernetes发行版:
您需要确保运行spring-cloud-kubernetes的pod能够访问Kubernetes API。对于您分配给部署/pod的任何服务帐户,您需要确保它具有正确的角色。例如,根据您所在的项目,您可以将< code >群集阅读器权限添加到您的默认服务帐户。
为了发现服务/pod,什么是< code >集群阅读器权限?
我收到的错误是:
io.fabric8.kubernetes.client.KubernetesClientException: Failure executing: GET at: https://x.x.x.x/api/v1/namespaces/jx-staging/services.
Message: Forbidden!Configured service account doesn't have access.
Service account may have been revoked. services is forbidden:
User "system:serviceaccount:jx-staging:default" cannot list services in the namespace "jx-staging"
库伯内特斯通常将角色分为两种类型:
因此,Spring Cloud Kubernetes文档的意思是,为了能够在所有名称空间中正确地读取发现服务/pod,将与应用程序关联的ServiceAccount应该有一个<code>ClusterRole,<code>服务
Kubernetes文档的这一部分(也包含了很好的例子)是全面了解Kubernetes RBAC的必读书。
读取< code >endpoint和< code >服务似乎是Spring Cloud Kubernetes发现pod和服务的最低要求。
示例将权限添加到default
命名空间中的default
服务号。
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: cluster-read-role
rules:
- apiGroups:
- ""
resources:
- endpoints
- pods
- services
- configmaps
verbs:
- get
- list
- watch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: cluster-read-rolebinding
subjects:
- kind: ServiceAccount
name: default
namespace: default
roleRef:
kind: ClusterRole
name: cluster-read-role
apiGroup: rbac.authorization.k8s.io
我假设没有愚蠢的问题,所以这里有一个我找不到直接答案的问题。 现在的情况 我目前有一个运行1.15的Kubernetes集群。AKS上的x,通过Terraform部署和管理。AKS最近宣布Azure将在AKS上停用Kubernetes的1.15版本,我需要将集群升级到1.16或更高版本。现在,据我所知,直接在Azure中升级集群不会对集群的内容产生任何影响,即节点、豆荚、秘密和当前在那里的所有其他
我是Kubernetes的新手,开始阅读文档。通常使用“endpoint”一词,但文档中缺乏明确的定义。 Kubernetes的“终点”是什么?它位于哪里? 我可以想象“endpoint”是单个“节点”的某种接入点,但这只是猜测。
我正在尝试让cadence在kubernetes集群上运行。然而,我注意到Cadence服务器初始化中有一个bug,它阻止Cassandra脚本正确初始化模式。https://github.com/uber/cadence/issues/1713:所以我想我会手动完成这一步。我执行了以下步骤- < li >在docker compose上从https://raw . githubuserconte
我一直在努力让DNS插件在CentOS 7.2集群上工作。我使用以下说明安装了群集:http://severalnines.com/blog/installing-kubernetes-cluster-minions-centos7-manage-pods-services 在此配置中,主服务器正在运行:etcd、库贝-调度器、库贝-apiserver和库贝-控制器-管理器。这些节点正在运行:do
null
我正在尝试配置一个2节点库伯内特斯集群。首先,我试图在CentOS虚拟机上配置集群的主节点。我已经使用“kubeadm init--apiserver-广告地址=172.16.100.6--pod-network-cidr=10.244.0.0/16”初始化了集群,并将法兰绒网络部署到集群中。但是当我执行“kubectl获取节点”时,我得到以下输出---- 下面是“kubectl get pods