Добавить администратора для Jenkins в кластер kubeadm kubernetes - PullRequest
0 голосов
/ 25 июня 2018

Я создал кластер Kubernetes для многоузлового кластера с одним мастером, используя kubeadm, следуя официальному руководству kubernetes:

кластер Kubernetes

В настоящее время я подключаю свой ноутбук к кластеру с помощью этой команды:

kubectl get nodes --username kubernetes-admin --kubeconfig ~/.kube/config

Однако теперь я хочу добавить отдельного пользователя (или того же самого пользователя, но с другим именем), чтобы наши Jenkins могли запускать команды. Я просто хочу отдельное имя пользователя для доступа / регистрации.

Как я могу легко добавить другое имя пользователя "jenkins" (возможно, со своим собственным сертификатом) в файл конфигурации? Kubeadm автоматически использует --authorization-mode=Node (или, по крайней мере, мой)

Справочная информация: Только люди, которые могут вносить какие-либо изменения в наш кластер, в настоящее время имеют / нуждаются в доступе, поэтому мне не нужно предоставлять пользователям доступ только к определенным пространствам имен и т. Д. Кроме того, имейте в виду, что у нас будет кластер для каждой среды. : dev, UAT, производство и др.

1 Ответ

0 голосов
/ 26 июня 2018

Целесообразно использовать Kubernetes serviceAccount и дать указание вашему развертыванию Jenkins использовать эту учетную запись (с ограниченной ролью):

---
apiVersion: v1
kind: ServiceAccount
metadata:
  name: jenkins
---
kind: Role
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
  name: jenkins
rules:
- apiGroups: [""]
  resources: ["pods"]
  verbs: ["create","delete","get","list","patch","update","watch"]
- apiGroups: [""]
  resources: ["pods/exec"]
  verbs: ["create","delete","get","list","patch","update","watch"]
- apiGroups: [""]
  resources: ["pods/log"]
  verbs: ["get","list","watch"]
- apiGroups: [""]
  resources: ["secrets"]
  verbs: ["get"]
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: RoleBinding
metadata:
  name: jenkins
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: Role
  name: jenkins
subjects:
- kind: ServiceAccount
  name: jenkins


apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  labels:
    app: jenkins
  name: jenkins
spec:
  replicas: 1
  selector:
    matchLabels:
      app: jenkins
  template:
    metadata:
      labels:
        app: jenkins
    spec:     
      serviceAccountName: jenkins
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...