helm init --service-account tiller
$HELM_HOME has been configured at /home/ubuntu/.helm.
Warning: Tiller is already installed in the cluster.
(Use --client-only to suppress this message, or --upgrade to upgrade Tiller to the current version.)
Happy Helming!
ناتج helm version
:
إصدار الدفة
العميل: & version.Version {SemVer: "v2.10.0"، GitCommit: "9ad53aac42165a5fadc6c87be0dea6b115f93090"، GitTreeState: "clean"}
خطأ: لا يمكن العثور على الحارث
ناتج kubectl version
:
$ kubectl version
Client Version: version.Info{Major:"1", Minor:"11", GitVersion:"v1.11.2", GitCommit:"bb9ffb1654d4a729bb4cec18ff088eacc153c239", GitTreeState:"clean", BuildDate:"2018-08-07T23:17:28Z", GoVersion:"go1.10.3", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"11", GitVersion:"v1.11.3", GitCommit:"a4529464e4629c21224b3d52edfe0ea91b072862", GitTreeState:"clean", BuildDate:"2018-09-09T17:53:03Z", GoVersion:"go1.10.3", Compiler:"gc", Platform:"linux/amd64"}
مزود / منصة السحابة (AKS ، GKE ، Minikube وما إلى ذلك):
AWS / Kops
ما هو ناتج kubectl -n kube-system get pods
؟
يتحقق helm init
فقط من إرسال بيان النشر إلى kubernetes. إذا كنت تريد التحقق مما إذا كانت الحراثة حية وجاهزة ، فاستخدم helm init --wait
. :)
أتلقى رسالة Error: could not find tiller
أيضًا ، باستخدام Kubernetes ضمن Docker for Desktop (Mac).
helm version
Client: &version.Version{SemVer:"v2.10.0", GitCommit:"9ad53aac42165a5fadc6c87be0dea6b115f93090", GitTreeState:"clean"}
Error: could not find tiller
تشغيل kubectl -n kube-system get pods
على السياق docker-for-desktop
يعطيني:
etcd-docker-for-desktop 1/1 Running 1 8m
kube-apiserver-docker-for-desktop 1/1 Running 1 8m
kube-controller-manager-docker-for-desktop 1/1 Running 1 8m
kube-dns-86f4d74b45-t8pq8 3/3 Running 0 11m
kube-proxy-d6c4q 1/1 Running 0 9m
kube-scheduler-docker-for-desktop 1/1 Running 1 8m
$ helm init --wait
$HELM_HOME has been configured at /home/ubuntu/.helm.
Warning: Tiller is already installed in the cluster.
(Use --client-only to suppress this message, or --upgrade to upgrade Tiller to the current version.)
توقف فقط ... لقد ضغطت على ctrl-c بعد دقيقتين
$ kubectl -n kube-system get pods
NAME READY STATUS RESTARTS AGE
coredns-59558d567-6qgbv 1/1 Running 0 7d
coredns-59558d567-s6w7t 1/1 Running 0 7d
dns-controller-b76dfc754-f9vlj 1/1 Running 0 7d
etcd-server-events-ip-10-132-1-49.us-west-2.compute.internal 1/1 Running 3 7d
etcd-server-events-ip-10-132-2-171.us-west-2.compute.internal 1/1 Running 0 7d
etcd-server-events-ip-10-132-3-80.us-west-2.compute.internal 1/1 Running 0 7d
etcd-server-ip-10-132-1-49.us-west-2.compute.internal 1/1 Running 3 7d
etcd-server-ip-10-132-2-171.us-west-2.compute.internal 1/1 Running 0 7d
etcd-server-ip-10-132-3-80.us-west-2.compute.internal 1/1 Running 0 7d
kube-apiserver-ip-10-132-1-49.us-west-2.compute.internal 1/1 Running 1 7d
kube-apiserver-ip-10-132-2-171.us-west-2.compute.internal 1/1 Running 1 7d
kube-apiserver-ip-10-132-3-80.us-west-2.compute.internal 1/1 Running 1 7d
kube-controller-manager-ip-10-132-1-49.us-west-2.compute.internal 1/1 Running 0 7d
kube-controller-manager-ip-10-132-2-171.us-west-2.compute.internal 1/1 Running 0 7d
kube-controller-manager-ip-10-132-3-80.us-west-2.compute.internal 1/1 Running 0 7d
kube-proxy-ip-10-132-1-103.us-west-2.compute.internal 1/1 Running 0 7d
kube-proxy-ip-10-132-1-49.us-west-2.compute.internal 1/1 Running 0 7d
kube-proxy-ip-10-132-2-171.us-west-2.compute.internal 1/1 Running 0 7d
kube-proxy-ip-10-132-2-175.us-west-2.compute.internal 1/1 Running 0 7d
kube-proxy-ip-10-132-3-115.us-west-2.compute.internal 1/1 Running 0 7d
kube-proxy-ip-10-132-3-80.us-west-2.compute.internal 1/1 Running 0 7d
kube-scheduler-ip-10-132-1-49.us-west-2.compute.internal 1/1 Running 0 7d
kube-scheduler-ip-10-132-2-171.us-west-2.compute.internal 1/1 Running 0 7d
kube-scheduler-ip-10-132-3-80.us-west-2.compute.internal 1/1 Running 0 7d
مثير للإعجاب. ماذا عن kubectl -n kube-system get deployments
؟ ربما يكون هناك خطأ ما حيث لا يتم جدولة البودات الجديدة. تحقق من حالة هذا النشر ومعرفة ما إذا كان هناك شيء ما.
إذا قمت بتشغيل helm init --wait
على Docker البسيط لإعداد k8s لسطح المكتب ، فإنه يتوقف فقط بدون إخراج.
$ helm init --wait
$HELM_HOME has been configured at ~/.helm.
Warning: Tiller is already installed in the cluster.
(Use --client-only to suppress this message, or --upgrade to upgrade Tiller to the current version.)
تشغيل kubectl -n kube-system get deployments
يعطي:
kubectl -n kube-system get deployments
NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE
kube-dns 1 1 1 1 10h
tiller-deploy 1 0 0 0 10h
$ kubectl -n kube-system get deployments
NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE
coredns 2 2 2 2 7d
dns-controller 1 1 1 1 7d
tiller-deploy 1 0 0 0 7d
أسف على هذا. هل يمكنكما تجربة kubectl -n kube-system describe deployment tiller-deploy
؟ من المحتمل أن تحصل على مزيد من المعلومات حول سبب عدم جدولة البود. إذا لم يكن الأمر كذلك ، يمكنك محاولة تصحيح أخطاء مجموعة النسخ المتماثلة التي نشرها نشر kubernetes (hehe: smile :).
https://kubernetes.io/docs/tasks/debug-application-cluster/debug-application/#debugging -replication-controllers
إرجاع kubectl -n kube-system describe deployment tiller-deploy
:
kubectl -n kube-system describe deployment tiller-deploy
Name: tiller-deploy
Namespace: kube-system
CreationTimestamp: Tue, 25 Sep 2018 23:36:14 +0100
Labels: app=helm
name=tiller
Annotations: deployment.kubernetes.io/revision=2
Selector: app=helm,name=tiller
Replicas: 1 desired | 0 updated | 0 total | 0 available | 1 unavailable
StrategyType: RollingUpdate
MinReadySeconds: 0
RollingUpdateStrategy: 1 max unavailable, 1 max surge
Pod Template:
Labels: app=helm
name=tiller
Service Account: tiller
Containers:
tiller:
Image: gcr.io/kubernetes-helm/tiller:v2.10.0
Ports: 44134/TCP, 44135/TCP
Host Ports: 0/TCP, 0/TCP
Command:
/tiller
--listen=localhost:44134
Liveness: http-get http://:44135/liveness delay=1s timeout=1s period=10s #success=1 #failure=3
Readiness: http-get http://:44135/readiness delay=1s timeout=1s period=10s #success=1 #failure=3
Environment:
TILLER_NAMESPACE: kube-system
TILLER_HISTORY_MAX: 0
Mounts: <none>
Volumes: <none>
Conditions:
Type Status Reason
---- ------ ------
Available True MinimumReplicasAvailable
ReplicaFailure True FailedCreate
Progressing False ProgressDeadlineExceeded
OldReplicaSets: <none>
NewReplicaSet: tiller-deploy-55bfddb486 (0/1 replicas created)
Events: <none>
ومجموعة المقلدة؟ انتقل إلى أسفل القائمة في هذا المستند ومعرفة ما إذا كنت تجد أي شيء مفيد.
شكرًا لي ، لقد تلقيت نفس الخطأ عند وصف المجموعة المتماثلة التي أعطت الخطأ الذي لم أقم بإنشاء حساب الخدمة. لقد حذفت النشر (الحارث) ، وأنشأت حساب الخدمة ثم أعدت تشغيله وعمل
إغلاق باعتبارها قضية مجموعة ، وليس قضية دفة
تعمل مجموعة Kubernetes بشكل رائع ، ولدي العديد من الخدمات التي تعمل تحتها. ما لا يعمل هو الدفة / الحارث.
لقد استخدمت kubectl -n kube-system delete deployment tiller-deploy
و kubectl -n kube-system delete service/tiller-deploy
. ثم عمل helm --init
. كنت أفتقد إزالة الخدمة سابقا.
حل مبوشى يعمل!
يعمل حل mabushey ، ولكن باستخدام helm init
بدلاً من helm --init
لقد صادفت مشكلة
بعد تشغيل kubectl -n kube-system describe deployment tiller-deploy
حصلت على نفس الناتج. وإذا قرأت بعناية إخراج @ psychemedia فستجده
...
Conditions:
Type Status Reason
---- ------ ------
Available True MinimumReplicasAvailable
ReplicaFailure True FailedCreate
Progressing False ProgressDeadlineExceeded
OldReplicaSets: <none>
NewReplicaSet: tiller-deploy-55bfddb486 (0/1 replicas created)
Events: <none>
الجزء المهم هو ReplicaFailure True FailedCreate
والجزء التالي NewReplicaSet: tiller-deploy-55bfddb486 (0/1 replicas created)
.
للعثور على المشكلة التي كان يجب أن يديرها
kubectl -n kube-system describe replicaser tiller-deploy-55bfddb486
(أو فقط kubectl describe replicaser tiller-deploy-55bfddb486
اعتمادًا على ما إذا تم تعيين مساحة الاسم أم لا ... يمكنك العثور عليها من خلال سرد جميع _replicasets_ kubectl get replicaset --all-namespaces
).
يجب أن يكون سبب عدم إنشاء _replicaset_ مدرجًا هناك تحت Events:
.
لقد واجهت بالفعل نفس المشكلة أثناء تشغيلها على مساحة اسم مختلفة عن kube-system
.
راجع https://github.com/helm/helm/issues/3304#issuecomment -468997006
إشعار: لا يجب إغلاق هذه البطاقة نظرًا لعدم وجود حل منشور لهذه المشكلة ، مجرد مبالغة أنانية استنتجها عدد قليل من أعضاء هذا الموضوع من حالة فشل النسخ المتماثل والإقرار ضمنيًا لبعضهم البعض ولكن لم يتم تقديمها صراحة إلى السجل. لم يتم نشر خطوات الاستنساخ / الحل.
تم إغلاق هذه المشكلة في الأصل لأنه لم يتم توفير خطوات لإعادة إظهار المشكلة الأصلية. mabushey الصورة الحل في https://github.com/helm/helm/issues/4685#issuecomment -433209134 يبدو لإصلاح القضايا التي كان لها مع مجموعة له، ولكن من دون سلسلة من الخطوات لإعادة إنشاء المشكلة، لا يمكننا حدد أسباب حدوث هذا الموقف في المقام الأول ، وبالتالي قمنا بإغلاقه كتذكرة دعم تم حلها بدون حل قابل للتنفيذ.
لقد مرت 6 أشهر منذ فتح هذه المشكلة ، لذا أشك في أننا سنكون قادرين على اكتشاف الخطوات الدقيقة لإعادة إنتاج بيئةmabushey و psychemedia . ومع ذلك ، إذا كان بإمكانك إعادة إظهار المشكلة بشكل موثوق ، فلا تتردد في الرد هنا بخطواتك حتى نتمكن من فهم كيفية حدوث هذا الخطأ بشكل أفضل وتقديم حل أفضل (أو الأفضل تحديد حل لمعالجة المشكلة). يمكننا بعد ذلك إعادة فتح هذه المشكلة لتحديد ما إذا كان من الممكن توفير تصحيح أم لا.
إذا كنت مستمرا لديهم قضايا وmabushey الصورة الحل في https://github.com/helm/helm/issues/4685#issuecomment -433209134 لا عمل لك، يرجى فتح تذكرة دعم جديد الرجوع إلى هذا الموضوع.
تضمين التغريدة
تحدث المشكلة عندما يتم إنشاء Tiller بدون حساب خدمة مناسب. يحدث هذا لسببين أ. لا يقوم البرنامج النصي الخاص بالدفة بهذا الأمر لأنه يجب أن يفعل ذلك بالتأكيد ب. مساحة الاسم المعنية غير متطابقة مع تعريف حساب خدمة موجود.
للذهاب حوله ، يجب عليك أولاً تشغيل "helm delete" ثم إنشاء ملف rbac-config.yaml:
"
الإصدار: v1.0
النوع: ServiceAccount
البيانات الوصفية:
الاسم: الحارث
الإصدار: rbac.authorization.k8s.io/v1
النوع: ClusterRoleBinding
البيانات الوصفية:
الاسم: الحارث
الدور
apiGroup: rbac.authorization.k8s.io
النوع: ClusterRole
الاسم: مدير الكتلة
المواضيع:
إذا كنت تحتاج إلى استخدام مساحة اسم مختلفة ، فتأكد من أنها تتوافق لاحقًا مع تثبيت Tiller الخاص بك وأن دور مسؤول المجموعة موجود (عادةً ما يكون كذلك!)
ثم
$ kubectl create -f rbac-config.yaml
تم إنشاء حساب الخدمة "الحارث"
تم إنشاء الربط العنقودي "الحارث"
$ helm init - service-account tiller - history-max 200
وأنت على ما يرام.
لذلك حاولت إنشاء حساب الخدمة كما هو موضح بواسطة @ datascienceteam01 - نجحت. هل بدا أن قائد الدفة - حساب الخدمة (وما إلى ذلك) - قد نجح.
لكن يبدو أن النشر فقط ... تدور. لا توجد أحداث ، أبرزها:
$ kubectl -n kube-system describe deployment tiller-deploy
Name: tiller-deploy
Namespace: kube-system
CreationTimestamp: Sun, 28 Apr 2019 10:26:24 -0700
Labels: app=helm
name=tiller
Annotations: <none>
Selector: app=helm,name=tiller
Replicas: 1 desired | 0 updated | 0 total | 0 available | 0 unavailable
StrategyType: RollingUpdate
MinReadySeconds: 0
RollingUpdateStrategy: 1 max unavailable, 1 max surge
Pod Template:
Labels: app=helm
name=tiller
Service Account: tiller
Containers:
tiller:
Image: gcr.io/kubernetes-helm/tiller:v2.13.1
Ports: 44134/TCP, 44135/TCP
Host Ports: 0/TCP, 0/TCP
Liveness: http-get http://:44135/liveness delay=1s timeout=1s period=10s #success=1 #failure=3
Readiness: http-get http://:44135/readiness delay=1s timeout=1s period=10s #success=1 #failure=3
Environment:
TILLER_NAMESPACE: kube-system
TILLER_HISTORY_MAX: 200
Mounts: <none>
Volumes: <none>
OldReplicaSets: <none>
NewReplicaSet: <none>
Events: <none>
آسف لإحياء خيط ميت ، والأعراض تبدو مختلفة قليلاً. التكوين الخاص بي هو نوع من التنسيق الفرانك: Docker Desktop يعمل في نظام التشغيل Windows 10 ، تم تثبيت الدفة ضمن غلاف Ubuntu (خدمات Linux). يبدو Kubernetes سعيدًا ؛ يمكنني أن أفعل كل الأشياء المعتادة kubectl. أنا فقط أواجه بعض المشاكل في الحصول على دفة القيادة للعمل.
أي أفكار حول كيفية استكشاف الأخطاء وإصلاحها؟
سأحاول بدء تشغيل الدفة تحت النوافذ (إذا كان بإمكاني معرفة كيفية تثبيت الدفة في Windows!) إذا لم أتمكن من اكتشافها تحت غلاف Ubuntu bash ، لكنني أرغب حقًا في التأكد من أنها تعمل تحت نظام Linux shell ، لأن هذه هي بيئة التطوير "الحقيقية" الخاصة بي.
أيضًا ، آسف للتطوير على Windows. في الوقت الحالي ، على الأقل ، ليس لدي خيارات أخرى :)
هذه القضية مؤلمة لفترة طويلة. التفكير في الخروج من هيلم. تنهد!!. في كل مرة تفشل خطوط الأنابيب الخاصة بي بسبب هذا.
Tenseiga هل يمكنك توضيح المشكلة حتى نتمكن من مساعدتك؟ قد تعطينا معلومات مثل helm version
output ، kubectl version output, and also check anything relating to the tiller pod logs, tiller deployment, tiller replica set using
kubectl وصف`. سنبذل قصارى جهدنا لإصلاحه!
tomcanham ، يمكنك المساعدة هنا أيضًا ، لإعادة
أي تحديث على هذا؟
helm init
(بدون أي خيارات إضافية) هو التذكرة التي قمت بتثبيتها / برنامج التثبيت. كل شيء على ما يرام بعد ذلك.
تحدث هذه المشكلة لي في كل مرة أحاول فيها التبديل من مجموعة إلى أخرى باستخدام "config set-Context" ، فإن Kubernetes يغير السياق بشكل جيد ولكن الدفة لا تفعل ذلك ، وبدلاً من ذلك ينبعث "خطأ: تعذر العثور على الحارث" ، عندما أحاول "helm init" I get "تحذير: Tiller مثبت بالفعل في المجموعة".
إذا قمت بالتغيير مرة أخرى ، تعمل قيادة السياق مرة أخرى. لست متأكدًا مما إذا كانت المجموعة ذات صلة ولكن المجموعة التي تعمل عليها هي PKS وتلك التي لا تعمل عليها هي EKS.
بعد الكثير من ضرب رأسي في الحائط ، اكتشفت سبب رؤيتي لهذه المشكلة ... وفقًا لوثائق aws لـ EKS HERE ، قمت بتعيين متغير البيئة TILLER_NAMESPACE على tiller
. كان هذا يتسبب في قيام ثنائي الدفة بنشر أداة الحرث في مساحة الاسم tiller
(اذهب إلى الشكل).
بعد إلغاء ضبط هذا المتغير وإعادة النشر ، كان كل شيء على ما يرام ...
يمكنك أيضًا تجاوز هذه الإعدادات باستخدام قوائم سطر الأوامر الموثقة هنا
HTH
لماذا يتم إغلاق هذا إذا كان هناك الكثير من الأشخاص يواجهون مشكلات مع هذا؟
لقد فتحت سؤالاً حول stackoverflow: https://stackoverflow.com/questions/57906429/helm-init-says-tiller-is-already-on-cluster-but-its-not
هل جربتم جميعًا:
kubectl apply -f tiller.yaml
helm init --service-account tiller --upgrade
الحارث. yaml:
kind: ServiceAccount
apiVersion: v1
metadata:
name: tiller
namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: tiller
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: tiller
namespace: kube-system
هذا جزء من البرنامج النصي up.sh
لبدء مجموعة مطوري البرامج من البداية. كانت العلامة --upgrade
ضرورية للسماح بتنفيذها عدة مرات. أعتقد أن الخطأ الأصلي المتعلق بعدم القدرة على العثور على أداة الحرث مرتبط بتثبيتها ولكن لم يتم العثور على الكبسولة tiller-deploy-*
في kube-system
.
عملت من أجلي باتباع https://helm.sh/docs/using_helm/#tiller -and-role-based-access-control
فقط قم بإنشاء yaml وقم بتشغيل الأمر
النقطة هي أن الخطأ مضلل. هذه هي القضية في عيني.
حصلت على الخطأ أدناه
kubeflow @ masternode : ~ $ helm init --service-accountILLer --upgrade
تم تكوين HELM_HOME $ في /home/kubeflow/.helm.
خطأ: خطأ في التثبيت: تعذر على الخادم العثور على المورد المطلوب
kubeflow @ masternode : ~ $
نقدر أي مساعدة
kubectl -n kube-system حذف أداة نشر النشر
إنه يعمل ولكن مع تغيير بسيط
استخدم $ helm init
التعليق الأكثر فائدة
لقد استخدمت
kubectl -n kube-system delete deployment tiller-deploy
وkubectl -n kube-system delete service/tiller-deploy
. ثم عملhelm --init
. كنت أفتقد إزالة الخدمة سابقا.