我我GKE API服務器升級到1.6,我在升級節點到1.6的過程中,卻遇到了一個問題...普羅米修斯 - Kubernetes RBAC
我有一個普羅米修斯服務器(1.5版本。 2)運行在由Kubernetes部署管理的Pod上,其中有一些節點運行版本1.5.4 Kubelet,其中一個新節點運行1.6。
Prometheus無法連接到新節點 - 指標端點返回401未經授權。
這似乎是一個RBAC問題,但我不知道如何繼續。我找不到有關Prometheus服務器需要什麼角色的文檔,甚至不知道如何將它們授予服務器。
從coreos /普羅米修斯運營商回購我能拼湊出我所料工作的配置:
apiVersion: v1
kind: ServiceAccount
metadata:
name: prometheus
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRole
metadata:
name: prometheus
rules:
- apiGroups: [""]
resources:
- nodes
- services
- endpoints
- pods
verbs: ["get", "list", "watch"]
- apiGroups: [""]
resources:
- configmaps
verbs: ["get"]
- nonResourceURLs: ["/metrics"]
verbs: ["get"]
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
name: prometheus
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: prometheus
subjects:
- kind: ServiceAccount
name: prometheus
namespace: default
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: prometheus
namespace: default
secrets:
- name: prometheus-token-xxxxx
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
labels:
app: prometheus-prometheus
component: server
release: prometheus
name: prometheus-server
namespace: default
spec:
replicas: 1
selector:
matchLabels:
app: prometheus-prometheus
component: server
release: prometheus
strategy:
rollingUpdate:
maxSurge: 1
maxUnavailable: 1
type: RollingUpdate
template:
metadata:
labels:
app: prometheus-prometheus
component: server
release: prometheus
spec:
dnsPolicy: ClusterFirst
restartPolicy: Always
schedulerName: default-scheduler
serviceAccount: prometheus
serviceAccountName: prometheus
...
但是普羅米修斯還是日漸401S。
更新:看起來像喬丹所說的kubernetes認證問題。在此查看新的,更具針對性的問題; https://serverfault.com/questions/843751/kubernetes-node-metrics-endpoint-returns-401
嘿喬丹!是的,這完全是問題,我只是不知道如何得到它的認證。我一直在爲最後一個小時拼湊一些Coreos/prometheus-operator回購庫中的東西,並且用我所擁有的更新了這個問題。 謝謝! – pnovotnak
@ jordan-liggitt您是否有刪除匿名訪問的來源?正如喬丹所說,我面臨的問題與OP – CNevin561
相同。就我而言,它看起來像一般的認證問題。當我嘗試在同一個容器中的容器中手動「捲曲」端點時(通過部署進行管理,配置爲使用「prometheus」服務帳戶): 'curl -vsSk -H「授權:承載人$(< /var/run/secrets/kubernetes.io/serviceaccount/token)「https:// $ NODE_IP:10250/metrics' 我得到'HTTP/1.1 401 Unauthorized'。 – pnovotnak