Helm: خطأ: خطأ في التثبيت: المستخدم "النظام: مجهول" لا يمكنه إنشاء النشر في مساحة الاسم "kube-system": "لا توجد سياسة مطابقة. \ n مستخدم غير معروف \" النظام: مجهول \ "" (نشر النشر.إضافات)

تم إنشاؤها على ٨ يوليو ٢٠١٧  ·  3تعليقات  ·  مصدر: helm/helm

مرحبا،

يملك

هيلم 2.5.0
Kubernetes 1.6 مع تمكين RBAC على GCP

مشكلة

قم بتشغيل هذه الأوامر في الحاوية باستخدام kubectl و helm:

$ kubectl config set-credentials $K8S_USER --username=$K8S_USER --password=$K8S_PASS
$ kubectl config set-cluster test-cluster  --server=https://$K8S_SERVER --insecure-skip-tls- verify=$K8S_INSECURE_SKIP_TLS_VERIFY 
$ kubectl config set-context default-context --cluster=$K8S_CLUSTER_NAME --user=$K8S_USER 
$ kubectl config use-context default-context
$ kubectl cluster-info
Kubernetes master is running at https://****

$ helm init
$HELM_HOME has been configured at /config/.helm.
Error: error installing: User "system:anonymous" cannot create deployments.extensions in the namespace "kube-system".: "No policy matched.\nUnknown user \"system:anonymous\"" (post deployments.extensions)

سؤال

ما الذي يمكنني فعله لإصلاح هذا الخطأ؟

questiosupport

ال 3 كومينتر

ستحتاج إلى ربط أذونات كافية بحساب خدمة Tiller pod حتى تتمكن من تثبيت الكائنات التي تطلبها مخططاتك. الأفضل هو إنشاء حساب خدمة جديد لـ Tiller في نفس مساحة الاسم التي يعمل بها الكبسولة (في حالتك ، "kube-system") ، ثم قم بإنشاء _Role_ في مساحات الأسماء التي تنوي تثبيت المخططات فيها أو _ClusterRole_ إذا تريد مشاركة التعريف عبر العديد من مساحات الأسماء ، ثم إنشاء كائنات _RoleBinding_ أو _ClusterRoleBinding_ لمنح هذه الأذونات لحساب خدمة Tiller المحدد أعلاه.

لقد قمت بإنشاء بيان مع حساب الخدمة وتعريف ClusterRoleBinding

---
apiVersion: v1
kind: ServiceAccount
metadata:
  name: tiller
  namespace: kube-system
secrets:
  - tiller-secret
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
  name: tiller
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
  - kind: ServiceAccount
    name: tiller
    namespace: kube-system

ثم أضاف مستخدم هذه الخدمة لمواصفات الحارث

kubectl patch deploy --namespace kube-system tiller-deploy -p '{"spec":{"template":{"spec":{"serviceAccount":"tiller"}}}}'

ثم تم تغيير قائمة الأوامر للمصادقة في k8s في بيان خط الأنابيب الخاص بي.

begin_script:
  - echo "$CA" > /ca.crt
  - kubectl config set-cluster k8s-cluster --embed-certs=true --server=https://$K8S_SERVER --certificate-authority=/ca.crt
  - kubectl config set-credentials tiller --token=$USER_TOKEN
  - kubectl config set-context k8s-cluster --cluster=k8s-cluster --user=tiller
  - kubectl config use-context k8s-cluster 

$CA و $USER_TOKEN - هما المتغيران السريان اللذان يحفظان بيانات ca.crt ورمز مستخدم الحارث.

استخدم هذا الأمر للحصول على ca.crt و user_token:

$ secret=$(kubectl get sa tiller -o json --namaspace=kube-system | jq -r .secrets[].name)
$ kubectl get secret $secret -o json | jq -r '.data["ca.crt"]' | base64 -D # $CA
$ kubectl get secret $secret -o json | jq -r '.data["token"]' | base64 -D # $USER_TOKEN

لاحظ أن _helm init_ تمنح علامة --service-account اعتبارًا من الالتزام 64e9e471838ac44e551c32abcbd19f671c80ecce.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات