Output dari helm version
: v2.14.3
Keluaran kubectl version
: client: v1.15.3, server: v1.16.0-rc.1
Penyedia / Platform Cloud (AKS, GKE, Minikube, dll.): Layanan IBM Cloud Kubernetes
$ helm init --service-account tiller
$HELM_HOME has been configured at /Users/xxxx/.helm.
Error: error installing: the server could not find the requested resource
$ helm init --debug --service-account tiller
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
creationTimestamp: null
labels:
app: helm
name: tiller
name: tiller-deploy
namespace: kube-system
spec:
.
.
.
Sepertinya helm mencoba membuat tiller
Deployment dengan: apiVersion: extensions/v1beta1
Menurut: https://kubernetes.io/blog/2019/07/18/api-deprecations-in-1-16
yang tidak lagi didukung.
Kami telah menghindari pembaruan tiller ke apps / v1 di masa lalu karena kerumitan karena memiliki helm init --upgrade
merekonsiliasi Deployment tiller extensions/v1beta1
dan apps/v1
. Sepertinya begitu kami mulai mendukung Kubernetes 1.16.0, kami harus menangani kasus tersebut ke depannya dan bermigrasi ke apiVersion yang lebih baru.
Berikut solusi jangka pendek:
helm init --output yaml | sed 's<strong i="6">@apiVersion</strong>: extensions/v1beta1<strong i="7">@apiVersion</strong>: apps/v1@' | kubectl apply -f -
Sebenarnya itu belum cukup. Saya masih mendapatkan kesalahan:
error validating data: ValidationError(Deployment.spec): missing required field "selector" in io.k8s.api.apps.v1.DeploymentSpec
Ini dapat ditambal dengan:
/usr/local/bin/kubectl patch --local -oyaml -f - -p '{"spec":{"selector": {"app":"helm","name":"tiller"}}}'
Bagus! Anda mungkin bisa mendapatkan efek yang sama dengan bendera --override
daripada hacks gila :)
Bagus! Anda mungkin bisa mendapatkan efek yang sama dengan bendera
--override
daripada hacks gila :)
Ya, tapi hacks gila nya saya bisa copy & paste, sedangkan helm init --override "apiVersion"="apps/v1"
ini tidak berfungsi. Ok, peretasan sed juga tidak berfungsi.
solusi saat ini tampaknya seperti ini:
helm init --output yaml> tiller.yaml
dan perbarui tiller.yaml:
---
apiVersion: apps/v1
kind: Deployment
metadata:
creationTimestamp: null
labels:
app: helm
name: tiller
name: tiller-deploy
namespace: kube-system
spec:
replicas: 1
strategy: {}
selector:
matchLabels:
app: helm
name: tiller
....
Sed berikut berfungsi untuk saya:
helm init --service-account tiller --output yaml | sed 's<strong i="6">@apiVersion</strong>: extensions/v1beta1<strong i="7">@apiVersion</strong>: apps/v1@' | sed 's@ replicas: 1@ replicas: 1\n selector: {"matchLabels": {"app": "helm", "name": "tiller"}}@' | kubectl apply -f -
Masalah dengan solusi @mattymo (menggunakan kubectl patch --local) adalah sepertinya tidak berfungsi ketika inputnya berisi banyak resource (di sini ada Deployment dan Service).
Kubernetes 1.16.0 dirilis kemarin: 18/9/2018.
Helm rusak pada rilis Kubernetes terbaru ini kecuali jika solusi di atas digunakan.
Kapan masalah ini akan diperbaiki dan kapan Helm 2.15.0
dirilis?
Jika Anda ingin menggunakan satu sed :)
helm init --service-account tiller --override spec.selector.matchLabels.'name'='tiller',spec.selector.matchLabels.'app'='helm' --output yaml | sed 's<strong i="6">@apiVersion</strong>: extensions/v1beta1<strong i="7">@apiVersion</strong>: apps/v1@' | kubectl apply -f -
Terima kasih!
Hari ini saya menemui masalah yang sama, saya mengganti labelnya sendiri. Saya mengubah label menjadi apps/v1
dan menambahkan selector
bagian, sekarang kinerjanya bagus, di bawah ini adalah file yaml saya:
apiVersion: apps/v1
kind: Deployment
metadata:
creationTimestamp: null
labels:
app: helm
name: tiller
name: tiller-deploy
namespace: kube-system
spec:
replicas: 1
strategy: {}
selector:
matchLabels:
app: helm
name: tiller
template:
metadata:
creationTimestamp: null
labels:
app: helm
name: tiller
spec:
automountServiceAccountToken: true
containers:
- env:
- name: TILLER_NAMESPACE
value: kube-system
- name: TILLER_HISTORY_MAX
value: "0"
image: gcr.io/kubernetes-helm/tiller:v2.14.3
imagePullPolicy: IfNotPresent
livenessProbe:
httpGet:
path: /liveness
port: 44135
initialDelaySeconds: 1
timeoutSeconds: 1
name: tiller
ports:
- containerPort: 44134
name: tiller
- containerPort: 44135
name: http
readinessProbe:
httpGet:
path: /readiness
port: 44135
initialDelaySeconds: 1
timeoutSeconds: 1
resources: {}
serviceAccountName: tiller
status: {}
@jbrette Anda adalah pahlawan saya! Saya bergumul dengan bait selector
.
Hari ini saya menemui masalah yang sama, saya mengganti labelnya sendiri. Saya mengubah label menjadi
apps/v1
dan menambahkanselector
bagian, sekarang kinerjanya bagus, di bawah ini adalah file yaml saya:apiVersion: apps/v1 kind: Deployment metadata: creationTimestamp: null labels: app: helm name: tiller name: tiller-deploy namespace: kube-system spec: replicas: 1 strategy: {} selector: matchLabels: app: helm name: tiller template: metadata: creationTimestamp: null labels: app: helm name: tiller spec: automountServiceAccountToken: true containers: - env: - name: TILLER_NAMESPACE value: kube-system - name: TILLER_HISTORY_MAX value: "0" image: gcr.io/kubernetes-helm/tiller:v2.14.3 imagePullPolicy: IfNotPresent livenessProbe: httpGet: path: /liveness port: 44135 initialDelaySeconds: 1 timeoutSeconds: 1 name: tiller ports: - containerPort: 44134 name: tiller - containerPort: 44135 name: http readinessProbe: httpGet: path: /readiness port: 44135 initialDelaySeconds: 1 timeoutSeconds: 1 resources: {} serviceAccountName: tiller status: {}
bagaimana cara mengubahnya? dapatkah Anda menjelaskan lebih detail?
Hari ini saya menemui masalah yang sama, saya mengganti labelnya sendiri. Saya mengubah label menjadi
apps/v1
dan menambahkanselector
bagian, sekarang kinerjanya bagus, di bawah ini adalah file yaml saya:apiVersion: apps/v1 kind: Deployment metadata: creationTimestamp: null labels: app: helm name: tiller name: tiller-deploy namespace: kube-system spec: replicas: 1 strategy: {} selector: matchLabels: app: helm name: tiller template: metadata: creationTimestamp: null labels: app: helm name: tiller spec: automountServiceAccountToken: true containers: - env: - name: TILLER_NAMESPACE value: kube-system - name: TILLER_HISTORY_MAX value: "0" image: gcr.io/kubernetes-helm/tiller:v2.14.3 imagePullPolicy: IfNotPresent livenessProbe: httpGet: path: /liveness port: 44135 initialDelaySeconds: 1 timeoutSeconds: 1 name: tiller ports: - containerPort: 44134 name: tiller - containerPort: 44135 name: http readinessProbe: httpGet: path: /readiness port: 44135 initialDelaySeconds: 1 timeoutSeconds: 1 resources: {} serviceAccountName: tiller status: {}
@ gm12367 bagaimana cara mengubah dan dapatkah Anda menjelaskan lebih detail?
Hari ini saya menemui masalah yang sama, saya mengganti labelnya sendiri. Saya mengubah label menjadi
apps/v1
dan menambahkanselector
bagian, sekarang kinerjanya bagus, di bawah ini adalah file yaml saya:apiVersion: apps/v1 kind: Deployment metadata: creationTimestamp: null labels: app: helm name: tiller name: tiller-deploy namespace: kube-system spec: replicas: 1 strategy: {} selector: matchLabels: app: helm name: tiller template: metadata: creationTimestamp: null labels: app: helm name: tiller spec: automountServiceAccountToken: true containers: - env: - name: TILLER_NAMESPACE value: kube-system - name: TILLER_HISTORY_MAX value: "0" image: gcr.io/kubernetes-helm/tiller:v2.14.3 imagePullPolicy: IfNotPresent livenessProbe: httpGet: path: /liveness port: 44135 initialDelaySeconds: 1 timeoutSeconds: 1 name: tiller ports: - containerPort: 44134 name: tiller - containerPort: 44135 name: http readinessProbe: httpGet: path: /readiness port: 44135 initialDelaySeconds: 1 timeoutSeconds: 1 resources: {} serviceAccountName: tiller status: {}
@ gm12367 bagaimana cara mengubah dan dapatkah Anda menjelaskan lebih detail?
Misalnya, Anda dapat menggunakan helm init --service-account tiller --tiller-namespace kube-system --debug
untuk mencetak manifes format YAML, opsi --debug
akan melakukan ini
@ gm12367 Ya, saya dapat melihat hasil cetak tetapi hanya keluaran. Jadi, perintah apa yang bisa saya ubah hasilnya?
@ gm12367 Saya ingin mengubah apps / v1 dan menambahkan bagian pemilih
@ puww1010 Saya baru saja mengarahkan output dalam sebuah file, dan kemudian menggunakan VIM untuk mengubahnya. Di bawah perintah sebagai referensi.
# helm init --service-account tiller --tiller-namespace kube-system --debug >> helm-init.yaml
# vim helm-init.yaml
# kubectl apply -f helm-init.yaml
jika go environment Anda sudah diatur dan Anda tidak bisa menunggu sampai PR berikut yang memperbaiki masalah ini [Helm init yang kompatibel dengan Kubernetes 1.16] # 6462 digabungkan, Anda selalu dapat melakukan:
Membangun
mkdir p ${GOPATH}/src/k8s.io
cd ${GOPATH}/src/k8s.io
git clone -b kube16 https://github.com/keleustes/helm.git
cd helm
make bootstrap build
Uji:
kubectl version
Client Version: version.Info{Major:"1", Minor:"16", GitVersion:"v1.16.0", GitCommit:"2bd9643cee5b3b3a5ecbd3af49d09018f0773c77", GitTreeState:"clean", BuildDate:"2019-09-18T14:36:53Z", GoVersion:"go1.12.9", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"16", GitVersion:"v1.16.0", GitCommit:"2bd9643cee5b3b3a5ecbd3af49d09018f0773c77", GitTreeState:"clean", BuildDate:"2019-09-18T14:27:17Z", GoVersion:"go1.12.9", Compiler:"gc", Platform:"linux/amd64"}
/bin/helm init --wait --tiller-image gcr.io/kubernetes-helm/tiller:v2.14.3
Creating /home/xxx/.helm
Creating /home/xxx/.helm/repository
Creating /home/xxx/.helm/repository/cache
Creating /home/xxx/.helm/repository/local
Creating /home/xxx/.helm/plugins
Creating /home/xxx/.helm/starters
Creating /home/xxx/.helm/cache/archive
Creating /home/xxx/.helm/repository/repositories.yaml
Adding stable repo with URL: https://kubernetes-charts.storage.googleapis.com
Adding local repo with URL: http://127.0.0.1:8879/charts
$HELM_HOME has been configured at /home/xxx/.helm.
Tiller (the Helm server-side component) has been installed into your Kubernetes Cluster.
Please note: by default, Tiller is deployed with an insecure 'allow unauthenticated users' policy.
To prevent this, run `helm init` with the --tiller-tls-verify flag.
For more information on securing your installation see: https://docs.helm.sh/using_helm/#securing-your-helm-installation
`` pesta
kubectl dapatkan deployment.apps / tiller-deploy -n kube-system -o yaml
```yaml
apiVersion: apps/v1
kind: Deployment
metadata:
annotations:
deployment.kubernetes.io/revision: "1"
creationTimestamp: "2019-09-22T01:01:11Z"
generation: 1
labels:
app: helm
name: tiller
name: tiller-deploy
namespace: kube-system
resourceVersion: "553"
selfLink: /apis/apps/v1/namespaces/kube-system/deployments/tiller-deploy
uid: 124001ca-6f31-417e-950b-2452ce70f522
spec:
progressDeadlineSeconds: 600
replicas: 1
revisionHistoryLimit: 10
selector:
matchLabels:
app: helm
name: tiller
strategy:
rollingUpdate:
maxSurge: 25%
maxUnavailable: 25%
type: RollingUpdate
template:
metadata:
creationTimestamp: null
labels:
app: helm
name: tiller
spec:
automountServiceAccountToken: true
containers:
- env:
- name: TILLER_NAMESPACE
value: kube-system
- name: TILLER_HISTORY_MAX
value: "0"
image: gcr.io/kubernetes-helm/tiller:v2.14.3
imagePullPolicy: IfNotPresent
livenessProbe:
failureThreshold: 3
httpGet:
path: /liveness
port: 44135
scheme: HTTP
initialDelaySeconds: 1
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 1
name: tiller
ports:
- containerPort: 44134
name: tiller
protocol: TCP
- containerPort: 44135
name: http
protocol: TCP
readinessProbe:
failureThreshold: 3
httpGet:
path: /readiness
port: 44135
scheme: HTTP
initialDelaySeconds: 1
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 1
resources: {}
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
dnsPolicy: ClusterFirst
restartPolicy: Always
schedulerName: default-scheduler
securityContext: {}
terminationGracePeriodSeconds: 30
status:
availableReplicas: 1
conditions:
- lastTransitionTime: "2019-09-22T01:01:23Z"
lastUpdateTime: "2019-09-22T01:01:23Z"
message: Deployment has minimum availability.
reason: MinimumReplicasAvailable
status: "True"
type: Available
- lastTransitionTime: "2019-09-22T01:01:11Z"
lastUpdateTime: "2019-09-22T01:01:23Z"
message: ReplicaSet "tiller-deploy-568db6b69f" has successfully progressed.
reason: NewReplicaSetAvailable
status: "True"
type: Progressing
observedGeneration: 1
readyReplicas: 1
replicas: 1
updatedReplicas: 1
@jbrette Masih mengalami masalah yang sama setelah mengikuti instruksi Anda
@jbrette Masih mengalami masalah yang sama setelah mengikuti instruksi Anda
Sepertinya Anda mengetik "helm" alih-alih "./bin/helm".... jadi Anda menggunakan biner versi lama.
Setelah init berhasil, Anda tidak akan dapat menginstal paket grafik dari repositori hingga mengganti extension / v1beta1 di dalamnya juga.
Berikut adalah cara mengadaptasi grafik apa pun dari repositori untuk k8s v1.16.0
Contohnya berdasarkan grafik prometheus.
git clone https://github.com/helm/charts
cd charts/stable
Ganti extensions / v1beta1 ke policy / v1beta1 PodSecurityPolicy:
sed -i 's<strong i="11">@apiVersion</strong>: extensions/v1beta1<strong i="12">@apiVersion</strong>: policy/v1beta1@' `find . -iregex ".*yaml\|.*yml" -exec awk '/kind:\s+PodSecurityPolicy/ {print FILENAME}' {} +`
ApiVersion NetworkPolicy ditangani dengan baik oleh _helpers.tpl untuk bagan tempat ia digunakan.
Ganti ekstensi / v1beta1 ke apps / v1 di Deployment, StatefulSet, ReplicaSet, DaemonSet
sed -i 's<strong i="17">@apiVersion</strong>: extensions/v1beta1<strong i="18">@apiVersion</strong>: apps/v1@' `find . -iregex ".*yaml\|.*yml" -exec awk '/kind:\s+(Deployment|StatefulSet|ReplicaSet|DaemonSet)/ {print FILENAME}' {} +`
sed -i 's<strong i="19">@apiVersion</strong>: apps/v1beta2<strong i="20">@apiVersion</strong>: apps/v1@' `find . -iregex ".*yaml\|.*yml" -exec awk '/kind:\s+(Deployment|StatefulSet|ReplicaSet|DaemonSet)/ {print FILENAME}' {} +`
Buat paket baru:
helm package ./prometheus
Successfully packaged chart and saved it to: /home/vagrant/charts/stable/prometheus-9.1.1.tgz
Instal itu:
helm install /home/vagrant/charts/stable/prometheus-9.1.1.tgz
Berdasarkan https://kubernetes.io/blog/2019/07/18/api-deprecations-in-1-16/
PS Untuk beberapa grafik dengan dependensi Anda mungkin perlu menggunakan helm dependency update
dan mengganti dependen tgz dengan yang telah ditambal jika ada.
Mendapatkan kesalahan yang sama saat menjalankan helm init --history-max 200
keluaran
$HELM_HOME has been configured at /Users/neil/.helm.
Error: error installing: the server could not find the requested resource
$ helm version
Client: &version.Version{SemVer:"v2.14.3", GitCommit:"0e7f3b6637f7af8fcfddb3d2941fcc7cbebb0085", GitTreeState:"clean"}
Error: could not find tiller
Cabang ini berfungsi https://github.com/keleustes/helm/tree/kube16. Anda dapat membangun cabang sendiri. Saya juga mengunggah biner di sini untuk kenyamanan Anda https://s3-us-west-2.amazonaws.com/bin.cryptexlabs.com/github.com/keleustes/helm/kube16/darwin/helm. Satu peringatan adalah Anda harus menggunakan bendera gambar kenari helm init --canary-image
karena build belum dirilis
Anda tidak perlu gambar kenari untuk membuat ini berfungsi. Saya akan menyarankan menggunakan helm init --tiller-image gcr.io/kubernetes-helm/tiller:v2.14.3
seperti yang disebutkan @jbrette sebelumnya jika Anda ingin mencoba # 6462.
Saya akan merekomendasikan pengguna untuk mencoba salah satu solusi yang disediakan sebelumnya terlebih dahulu sebelum mencoba PR; dengan begitu, mereka dapat terus menggunakan Helm 2.14.3 sebagai ganti cabang dev kustom yang masih dalam peninjauan.
Ketika saya melakukan perintah, ia akan menerapkannya tetapi setelah itu dapat melihatnya di pod dan mengatakan Kesalahan dari server (NotFound): pod "tiller-deploy" tidak ditemukan
helm init --service-account tiller --override spec.selector.matchLabels.'name'='tiller',spec.selector.matchLabels.'app'='helm' --output yaml | sed 's<strong i="7">@apiVersion</strong>: extensions/v1beta1<strong i="8">@apiVersion</strong>: apps/v1@' | kubectl apply -f -
deployment.apps / tiller-deploy dibuat
service / tiller-deploy dibuat
Tetapi ketika saya melakukan kubectl get pods --all-namespaces tidak dapat melihat pod tersebut
NAMESPACE NAMA STATUS SIAP DIMULAI USIA
kube-system coredns-5644d7b6d9-559hw 1/1 Berjalan 0 23h
kube-system coredns-5644d7b6d9-xcmjd 1/1 Berjalan 0 23h
kube-system etcd-fmp 1/1 Berjalan 0 24h
kube-system kube-apiserver-fmp 1/1 Berjalan 0 24j
kube-system kube-controller-manager-fmp 1/1 Berjalan 1 24jam
kube-system kube-flannel-ds-amd64-ffx2g 1/1 Berjalan 0 23h
kube-system kube-proxy-lfvrz 1/1 Berjalan 0 24h
kube-system kube-scheduler-fmp 1/1 Berjalan 0 24h
kubectl mendapatkan semua --all-namespaces | grep tiller
layanan kube-system / tiller-deploy ClusterIP xxx
kube-system deployment.apps / tiller-deploy 0/1 0 0 2m54s
kube-system replicaset.apps / tiller-deploy-77855d9dcf 1 0 0 2m54s
@DanielIvaylov Saya rasa Anda tidak memiliki akun layanan anakan. Harap buat, lalu penerapan akan membuat pod anakan juga.
Terima kasih!
@DanielIvaylov Saya rasa Anda tidak memiliki akun layanan anakan. Harap buat, lalu penerapan akan membuat pod anakan juga.
Terima kasih!
Maaf, saya baru saya pikir ini akan memulainya. Bagaimana saya memulai akun layanan anakan?
@Bayu_joo
kubectl --namespace kube-system create sa tiller
kubectl create clusterrolebinding tiller --clusterrole cluster-admin --serviceaccount=kube-system:tiller
Menambahkan tanda di bawah ini ke server api (/etc/kubernetes/manifests/kube-apiserver.yaml) yang untuk sementara mengaktifkan kembali API yang tidak digunakan lagi tersebut.
--runtime-config = apps / v1beta1 = true, apps / v1beta2 = true, extension / v1beta1 / daemonsets = true, extension / v1beta1 / deployments = true, extensions / v1beta1 / replicasets = true, extensions / v1beta1 / networkpolicies = true, extensions / v1beta1 / podsecuritypolicies = true
Ini memperbaiki helm v2
Untuk pengguna windows, kami dapat menginstal / mengupgrade tiller melalui PowerShell seperti:
$(helm init --output yaml) -replace "extensions/v1beta1","apps/v1"
Berikut solusi jangka pendek:
helm init --output yaml | sed 's<strong i="7">@apiVersion</strong>: extensions/v1beta1<strong i="8">@apiVersion</strong>: apps/v1@' | kubectl apply -f -
Sebenarnya itu belum cukup. Saya masih mendapatkan kesalahan:
error validating data: ValidationError(Deployment.spec): missing required field "selector" in io.k8s.api.apps.v1.DeploymentSpec
Ini dapat ditambal dengan:
/usr/local/bin/kubectl patch --local -oyaml -f - -p '{"spec":{"selector": {"app":"helm","name":"tiller"}}}'
bagi saya, kubectl patch sedang menggantung
tidak ada pesan di file / var / log / syslog
akun layanan sudah ada
kubeflow @ masternode : ~ $ kubectl --namespace kube-system membuat an tiller
Error dari server (AlreadyExists): "tiller" akun layanan sudah ada
kubeflow @ masternode : ~ $ kubectl buat clusterrolebinding tiller --clusterrole cluster-admin --serviceaccount = kube- system: tiller
Error dari server (AlreadyExists): clusterrolebindings.rbac.authorization.k8s.io "tiller" sudah ada
dapatkah Anda memberi saran
mengeksekusi di bawah ini
ekspor PATH = $ PATH: / usr / local / bin
helm yang mana
anakan yang mana
pemasangan helm \
--name nfs-client-provisioner \
--set nfs.server = 10.0.0.4 \
--set nfs.path = / nfsroot \
--set storageClass.name = nfs \
--set storageClass.defaultClass = true \
stable / nfs-client-provisioner
kembali kembali dengan
/ usr / local / bin / helm
/ usr / local / bin / tiller
Kesalahan: tidak dapat menemukan penggarap
menghargai bantuan apa pun karena ini sekarang menjadi penghenti acara
@cyrilthank Tampaknya kesalahan anakan adalah karena tidak ada penerapan anakan yang berjalan, coba jalankan perintah ini untuk menginstal anakan:
helm init --service-account tiller --override spec.selector.matchLabels.'name'='tiller',spec.selector.matchLabels.'app'='helm' --output yaml | sed 's<strong i="7">@apiVersion</strong>: extensions/v1beta1<strong i="8">@apiVersion</strong>: apps/v1@' | kubectl apply -f -
helm version -s
harus mengembalikan versi server (anakan) jika sudah aktif dan berjalan dengan baik
Terima kasih Pak.
Anda telah membantu kami untuk melanjutkan dengan kubeflow ke langkah berikutnya
ok sekarang saya pikir saya mendapat masalah ini
https://github.com/kubeflow/kubeflow/issues/4184
kembali sebagai pemblokir
Kami sangat menghargai jika Anda dapat membantu dengan nasihat tentang bagaimana saya dapat memperoleh bantuan di https://github.com/kubeflow/kubeflow/issues/4184
@cyrilthank coba langkah-langkah yang diberikan di atas: https://github.com/helm/helm/issues/6374#issuecomment -533853888
Anda perlu mengganti versi api yang tidak digunakan lagi dengan yang baru
kubeflow_workaround_and_error_traces.txt
Terima kasih Pak atas balasan pasien Anda terutama dalam menjaga masalah ini tetap terbuka
Maaf tentang ini, tetapi sepertinya saya melakukan kesalahan dalam langkah-langkah penyelesaian masalah
Hargai jika Anda dapat meninjau langkah-langkah dalam jejak terlampir dan memberi tahu saya tentang kesalahan yang saya lakukan
@cyrilterima kasih Anda hanya perlu menjalankan perintah sed
pada kubeflow yamls Anda untuk mengganti ekstensi api lama dengan yang baru (tidak perlu menggunakan prometheus sama sekali 😆). Maaf Jika saya tidak mengekspresikan diri saya dengan cukup baik.
Perbaikannya pada dasarnya mengganti extensions/v1beta1
dengan apps/v1
di kubeflow dpl yamls Anda
ah jadi saya melakukan salinan bodoh :(
KFAPP saya = / nfsroot / kf-poc
saya masih mendapatkan beberapa pesan dan kesalahan terakhir keluar
bisakah Anda membantu karena saya bergantung pada Anda sekarang untuk melanjutkan ke langkah berikutnya di kubeflow
@cyrilterima kasih Anda hanya perlu menjalankan perintah
sed
pada kubeflow yamls Anda untuk mengganti ekstensi api lama dengan yang baru (tidak perlu menggunakan prometheus sama sekali sambil tertawa). Maaf Jika saya tidak mengekspresikan diri saya dengan cukup baik.
Perbaikannya pada dasarnya menggantiextensions/v1beta1
denganapps/v1
di kubeflow dpl yamls Anda
apps/v1beta2
juga dengan apps/v1
https://kubernetes.io/blog/2019/07/18/api-deprecations-in-1-16/
Terima kasih banyak @uniuuu atas bantuannya
Bisakah Anda memberi tahu di mana / bagaimana mendapatkan file yaml yang dirujuk di https://github.com/helm/helm/files/3662328/kubeflow_workaround_sed_and_error_traces.txt
https://github.com/helm/helm/issues/6374#issuecomment -533840097
https://github.com/helm/helm/issues/6374#issuecomment -533185074
meminta sejak setelah membuat perubahan sed kami masih menemukan kesalahan yang dirujuk
dapatkah Anda memberi tahu jika langkah tersebut
kubectl convert -f
perlu dieksekusi untuk setiap
Jika Anda telah menerapkan solusi yang disebutkan di atas saat bekerja dengan helm init
, dan masih mendapatkan kesalahan berikut saat mencoba hal-hal seperti helm version
, itu karena helm
deployment
tidak dapat ditemukan.
Error: could not find tiller
Anda perlu menjalankan kubectl get events --all-namespaces | grep -i tiller
untuk mengetahui mengapa belum siap.
Misalnya, masalah saya adalah seperti di bawah ini, karena saya tidak memerlukan serviceaccount "tiller"
dengan microk8s
.
microk8s.kubectl get events --all-namespaces | grep -i tiller
kube-system 23m Warning FailedCreate replicaset/tiller-deploy-77855d9dcf Error creating: pods "tiller-deploy-77855d9dcf-" is forbidden: error looking up service account kube-system/tiller: serviceaccount "tiller" not found
Jadi saya melakukan pekerjaan tanpa akun layanan
- helm init --service-account tiller --override spec.selector.matchLabels.'name'='tiller',spec.selector.matchLabels.'app'='helm' --output yaml | sed 's<strong i="20">@apiVersion</strong>: extensions/v1beta1<strong i="21">@apiVersion</strong>: apps/v1@' | kubectl apply -f -
+ helm init spec.selector.matchLabels.'name'='tiller',spec.selector.matchLabels.'app'='helm' --output yaml | sed 's<strong i="22">@apiVersion</strong>: extensions/v1beta1<strong i="23">@apiVersion</strong>: apps/v1@' | kubectl apply -f -
@cyrilthank saya menghapus komentar Anda karena tidak relevan dengan diskusi yang terlibat di sini. Silakan lanjutkan untuk menindaklanjuti di kubeflow / kubeflow # 4184. Terima kasih!
helm init spec.selector.matchLabels.'name'='tiller',spec.selector.matchLabels.'app'='helm' --output yaml | sed 's<strong i="6">@apiVersion</strong>: extensions/v1beta1<strong i="7">@apiVersion</strong>: apps/v1@' | kubectl apply -f -
Koreksi sedikit
helm init --override spec.selector.matchLabels.'name'='tiller',spec.selector.matchLabels.'app'='helm' --output yaml | sed 's<strong i="11">@apiVersion</strong>: extensions/v1beta1<strong i="12">@apiVersion</strong>: apps/v1@' | kubectl apply -f -
+1
@ puww1010 Saya baru saja mengarahkan output dalam sebuah file, dan kemudian menggunakan VIM untuk mengubahnya. Di bawah perintah sebagai referensi.
# helm init --service-account tiller --tiller-namespace kube-system --debug >> helm-init.yaml # vim helm-init.yaml # kubectl apply -f helm-init.yaml
Saya mencoba melakukan ini. Setelah mengedit file di VIM saya menggunakan perintah kubectl apply
, tetapi sepertinya tidak melakukan apa-apa. Ketika saya menjalankan helm init --service-account tiller --tiller-namespace kube-system --debug >> helm-init.yaml
lagi atau helm init --output yaml
perubahan belum diterapkan. Ada lagi yang mengalami ini?
Jika Anda ingin menggunakan satu sed :)
helm init --service-account tiller --override spec.selector.matchLabels.'name'='tiller',spec.selector.matchLabels.'app'='helm' --output yaml | sed 's<strong i="7">@apiVersion</strong>: extensions/v1beta1<strong i="8">@apiVersion</strong>: apps/v1@' | kubectl apply -f -
Terima kasih!
Saya baru saja meningkatkan k8 kami dan saya menghadapi masalah ini dan saya menggunakan solusi di atas. Ini menciptakan penyebaran tetapi replicaset gagal dan inilah yang saya dapatkan dari kubectl describe -n kube-system replicasets.apps tiller-deploy-77855d9dcf
:
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Warning FailedCreate 41s (x14 over 82s) replicaset-controller Error creating: pods "tiller-deploy-77855d9dcf-" is forbidden: error looking up service account kube-system/tiller: serviceaccount "tiller" not found
Di mana saya dapat menemukan file yaml untuk membuat akun layanan itu?
@Bayu_joo
kubectl --namespace kube-system create sa tiller kubectl create clusterrolebinding tiller --clusterrole cluster-admin --serviceaccount=kube-system:tiller
Ini memecahkan masalah saya!
Terimakasih semuanya!
Gambar kenari masih menghasilkan kesalahan yang sama kecuali belum ada penggabungan ini,
@ puww1010 Saya baru saja mengarahkan output dalam sebuah file, dan kemudian menggunakan VIM untuk mengubahnya. Di bawah perintah sebagai referensi.
# helm init --service-account tiller --tiller-namespace kube-system --debug >> helm-init.yaml # vim helm-init.yaml # kubectl apply -f helm-init.yaml
Saya mencoba melakukan ini. Setelah mengedit file di VIM saya menggunakan perintah
kubectl apply
, tetapi sepertinya tidak melakukan apa-apa. Ketika saya menjalankanhelm init --service-account tiller --tiller-namespace kube-system --debug >> helm-init.yaml
lagi atauhelm init --output yaml
perubahan belum diterapkan. Ada lagi yang mengalami ini?
Ya, terjadi pada saya juga.
Anda mungkin perlu mengubah lokasi gambar menjadi gcr.azk8s.cn/kubernetes-helm/tiller:v2.14.3
lokasi gcr.io
tampaknya diblokir.
Anda mungkin perlu mengubah lokasi gambar ke gcr.azk8s.cn/kubernetes-helm/ tiller: v2.14.3 tampaknya lokasi gcr.io diblokir.
Meskipun masalah yang sepenuhnya valid, masalah tersebut sedikit ortogonal dengan masalah yang ada dalam terbitan ini, sayangnya gcr.io
diblokir di China. Lihat https://github.com/helm/charts/issues/14607 untuk informasi lebih lanjut.
kami dapat memperbaiki masalah ini dengan mengembalikan versi kubernetes ke 1.15.4
Terima kasih @UmamaheshMaxwell telah membagikan ini.
Bisakah Anda membagikan langkah-langkah yang Anda gunakan untuk melakukan rollback versi kubernetes?
@ cyrilterima kasih jika itu minikube, minikube config set kubernetes-version v1.15.4
Terima kasih @UmamaheshMaxwell telah membagikan ini.
Bisakah Anda membagikan langkah-langkah yang Anda gunakan untuk melakukan rollback versi kubernetes?
@cyrilterima kasih kami telah menggunakan VM kami sendiri (Ubuntu 18+), di bawah ini adalah setps untuk menginstal k8s versi 1.15.4
--pod-network-cidr=10.244.10.0/16
- flanel
--apiserver-advertise-address=x.x.x.x
- IP pribadi VM Anda (Master)
--apiserver-cert-extra-sans=x.x.x.x
- IP Publik VM Anda (Master) (Ini diperlukan, jika Anda mencoba mengakses Master dari mesin lokal Anda.
Catatan: Ikuti tautan di bawah ini untuk menyiapkan file kubeconfig untuk cluster Kubernetes yang dihosting sendiri (http://docs.shippable.com/deploy/tutorial/create-kubeconfig-for-self-hosted-kubernetes-cluster/)
Beri tahu saya jika Anda masih memiliki pertanyaan.
@ cyrilthank jika itu minikube, konfigurasi minikube set kubernetes-version v1.15.4
Terima kasih @MrSimonEmms milik saya tidak mini Saya rasa saya harus mengikuti langkah-langkah @UmamaheshMaxwell
Terima kasih @UmamaheshMaxwell telah membagikan ini.
Bisakah Anda membagikan langkah-langkah yang Anda gunakan untuk melakukan rollback versi kubernetes?@cyrilthank kami telah menggunakan VM kami sendiri (Ubuntu 18+), di bawah ini adalah setps untuk menginstal k8s versi 1.15.4
kubeadm reset
sudo apt-get install kubelet = 1.15.4-00 kubectl = 1.15.4-00 kubeadm = 1.15.4-00
sudo kubeadm init --pod-network-cidr = 10.244.10.0 / 16 --apiserver-advertise-address = xxxx --apiserver-cert-extra-sans = xxxx --kubernetes-version "1.15.4"--pod-network-cidr = 10.244.10.0 / 16 - flanel
--apiserver-advertise-address = xxxx - IP pribadi VM Anda (Master)
--apiserver-cert-extra-sans = xxxx - IP Publik VM Anda (Master) (Ini diperlukan, jika Anda mencoba mengakses Master dari mesin lokal Anda.
Catatan: Ikuti tautan di bawah ini untuk menyiapkan file kubeconfig untuk cluster Kubernetes yang dihosting sendiri (http://docs.shippable.com/deploy/tutorial/create-kubeconfig-for-self-hosted-kubernetes-cluster/)
Beri tahu saya jika Anda masih memiliki pertanyaan.
Terima kasih @UmamaheshMaxwell atas balasan kesabaran Anda
Saya memiliki penyiapan kubernetes 1.16, bisakah Anda mengonfirmasi apakah saya dapat mencoba menjalankan langkah-langkah ini?
Terima kasih @UmamaheshMaxwell telah membagikan ini.
Bisakah Anda membagikan langkah-langkah yang Anda gunakan untuk melakukan rollback versi kubernetes?
@cyrilthank kami telah menggunakan VM kami sendiri (Ubuntu 18+), di bawah ini adalah setps untuk menginstal k8s versi 1.15.4
kubeadm reset
sudo apt-get install kubelet = 1.15.4-00 kubectl = 1.15.4-00 kubeadm = 1.15.4-00
sudo kubeadm init --pod-network-cidr = 10.244.10.0 / 16 --apiserver-advertise-address = xxxx --apiserver-cert-extra-sans = xxxx --kubernetes-version "1.15.4"
--pod-network-cidr = 10.244.10.0 / 16 - flanel
--apiserver-advertise-address = xxxx - IP pribadi VM Anda (Master)
--apiserver-cert-extra-sans = xxxx - IP Publik VM Anda (Master) (Ini diperlukan, jika Anda mencoba mengakses Master dari mesin lokal Anda.
Catatan: Ikuti tautan di bawah ini untuk menyiapkan file kubeconfig untuk cluster Kubernetes yang dihosting sendiri (http://docs.shippable.com/deploy/tutorial/create-kubeconfig-for-self-hosted-kubernetes-cluster/)
Beri tahu saya jika Anda masih memiliki pertanyaan.Terima kasih @UmamaheshMaxwell atas balasan kesabaran Anda
Saya memiliki penyiapan kubernetes 1.16, bisakah Anda mengonfirmasi apakah saya dapat mencoba menjalankan langkah-langkah ini?
Ya @cyrilthank , meskipun kami memiliki kubernetes 1.16.1 tetapi kami harus mengembalikannya ke 1.15.4
, di bawah ini adalah tautan jika Anda ingin mengaturnya dari awal.
Versi OS VM
Distributor ID: Ubuntu
Description: Ubuntu 18.04.3 LTS
Release: 18.04
Codename: bionic
Bersihkan kuberenetes
kubeadm reset
sudo apt-get purge kubeadm kubectl kubelet kubernetes-cni kube*
sudo apt-get autoremove
sudo rm -rf ~/.kube
Siapkan Kubernetes (_Kedua Master dan Node_)
https://www.howtoforge.com/tutorial/how-to-install-kubernetes-on-ubuntu/
(Anda lebih baik mengotomatiskan langkah-langkah yang disarankan dalam tautan di atas sebanyak yang Anda bisa, untuk menghemat waktu Anda)
Beri tahu saya jika Anda masih membutuhkan bantuan lebih lanjut. Happy Journey with roll back :), semoga perjalananmu lancar.
Anda mungkin perlu mengubah lokasi gambar ke gcr.azk8s.cn/kubernetes-helm/ tiller: v2.14.3 tampaknya lokasi gcr.io diblokir.
Meskipun masalah yang sepenuhnya valid, masalah tersebut sedikit ortogonal dengan masalah yang ada dalam terbitan ini, sayangnya
gcr.io
diblokir di China. Lihat helm / grafik # 14607 untuk informasi lebih lanjut.
Saya bukan di China, tapi di AS. Tapi saya rasa VPN saya memblokir situs itu. Bagaimanapun, saya mengikuti semua langkah yang diuraikan di utas ini dan tidak dapat membuatnya berfungsi sampai saya mencoba mendapatkan gambar secara manual dan melihatnya tidak merespons - hanya sesuatu yang lain untuk dicoba jika orang lain terjebak di tempat yang sama dengan saya.
Saya juga mendapatkan kesalahan:
$ helm init
$HELM_HOME has been configured at C:\Users\user\.helm.
Error: error installing: the server could not find the requested resource
Saya mencoba solusi yang diusulkan dalam masalah ini, terutama yang ini . Namun, setelah memodifikasi file tiller.yaml, saya tidak dapat memperbarui konfigurasi. Saya mencoba perintah berikut untuk menerapkan perubahan / memperbarui konfigurasi:
$ kubectl apply -f tiller.yaml
deployment.apps/tiller-deploy configured
service/tiller-deploy configured
Tapi kemudian, jika saya menjalankan:
$ helm init --output yaml > tiller2.yaml
File tiller2.yaml menunjukkan:
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
creationTimestamp: null
labels:
app: helm
name: tiller
name: tiller-deploy
namespace: kube-system
spec:
replicas: 1
strategy: {}
template:
Pada dasarnya, perubahan tersebut tidak tercermin. Jadi saya berasumsi bahwa saya tidak memperbarui konfigurasi dengan benar. Apa cara yang benar untuk melakukannya?
EDIT : Saya berhasil menjalankannya. Saya menggunakan Minikube, dan untuk menjalankannya, pertama-tama saya menurunkan versi Kubernetes ke 1.15.4.
minikube delete
minikube start --kubernetes-version=1.15.4
Kemudian, saya menggunakan proxy, jadi saya harus menambahkan IP Minikube ke daftar NO_PROXY: 192.168.99.101
dalam kasus saya. Lihat: https://minikube.sigs.k8s.io/docs/reference/networking/proxy/
Catatan: Setelah beberapa pengujian lebih lanjut, mungkin downgrade tidak diperlukan, dan mungkin yang saya lewatkan hanyalah langkah NO_PROXY. Saya menambahkan semua 192.168.99.0/24
, 192.168.39.0/24
dan 10.96.0.0/12
ke pengaturan NO_PROXY dan sekarang tampaknya berfungsi dengan baik.
helm init --service-account tiller --override spec.selector.matchLabels.'name '=' tiller ', spec.selector.matchLabels.'app' = 'helm' --output yaml | sed 's @ apiVersion : extensions / v1beta1 @ apiVersion : apps / v1 @ '| kubectl apply -f -
Ini berhasil untuk saya, Terima kasih banyak
Seiring dengan berkembangnya Kubernetes API, API diatur ulang atau ditingkatkan secara berkala. Saat API berkembang, API lama tidak digunakan lagi dan akhirnya dihapus.
Rilis v1.16 akan berhenti menyajikan versi API yang sudah tidak digunakan lagi berikut untuk mendukung versi API yang lebih baru dan lebih stabil:
NetworkPolicy (in the extensions/v1beta1 API group)
Migrate to use the networking.k8s.io/v1 API, available since v1.8. Existing persisted data can be retrieved/updated via the networking.k8s.io/v1 API.
PodSecurityPolicy (in the extensions/v1beta1 API group)
Migrate to use the policy/v1beta1 API, available since v1.10. Existing persisted data can be retrieved/updated via the policy/v1beta1 API.
DaemonSet, Deployment, StatefulSet, and ReplicaSet (in the extensions/v1beta1 and apps/v1beta2 API groups)
Migrate to use the apps/v1 API, available since v1.9. Existing persisted data can be retrieved/updated via the apps/v1 API.
Rilis v1.20 akan berhenti menyajikan versi API yang tidak digunakan lagi berikut ini untuk mendukung versi API yang lebih baru dan lebih stabil:
Ingress (in the extensions/v1beta1 API group)
Migrate to use the networking.k8s.io/v1beta1 API, serving Ingress since v1.14. Existing persisted data can be retrieved/updated via the networking.k8s.io/v1beta1 API.
Mengacu pada :
Sebagai helm n00b yang menggunakan minikube, saya bisa mengatasi masalah ini dengan mengatur versi kubernetes seperti ini:
$ minikube delete
$ minikube start --kubernetes-version=1.15.4
Semoga membantu!
@PierreF Saya menggunakan solusi Anda (https://github.com/helm/helm/issues/6374#issuecomment-533186177) dengan k8s v1.16.1 dan helm v2.15.0 dan anakan tidak berfungsi.
Readiness probe failed: Get http://10.238.128.95:44135/readiness: dial tcp 10.238.128.95:44135: connect: connection refused
@ joshprzybyszewski-wf Saya menggunakan perintah berikut
minikube start --memory=16384 --cpus=4 --kubernetes-version=1.15.4
kubectl create -f istio-1.3.3/install/kubernetes/helm/helm-service-account.yaml
helm init --service-account tiller
helm install istio-1.3.3/install/kubernetes/helm/istio-init --name istio-init --namespace istio-system
helm install istio-1.3.3/install/kubernetes/helm/istio --name istio --namespace istio-system
Dan sekarang dapatkan,
Error: validation failed: [unable to recognize "": no matches for kind "DestinationRule" in version "networking.istio.io/v1alpha3", unable to recognize "": no matches for kind "DestinationRule" in version "networking.istio.io/v1alpha3", unable to recognize "": no matches for kind "attributemanifest" in version "config.istio.io/v1alpha2", unable to recognize "": no matches for kind "attributemanifest" in version "config.istio.io/v1alpha2", unable to recognize "": no matches for kind "handler" in version "config.istio.io/v1alpha2", unable to recognize "": no matches for kind "handler" in version "config.istio.io/v1alpha2", unable to recognize "": no matches for kind "instance" in version "config.istio.io/v1alpha2", unable to recognize "": no matches for kind "instance" in version "config.istio.io/v1alpha2", unable to recognize "": no matches for kind "instance" in version "config.istio.io/v1alpha2", unable to recognize "": no matches for kind "instance" in version "config.istio.io/v1alpha2", unable to recognize "": no matches for kind "instance" in version "config.istio.io/v1alpha2", unable to recognize "": no matches for kind "instance" in version "config.istio.io/v1alpha2", unable to recognize "": no matches for kind "instance" in version "config.istio.io/v1alpha2", unable to recognize "": no matches for kind "instance" in version "config.istio.io/v1alpha2", unable to recognize "": no matches for kind "instance" in version "config.istio.io/v1alpha2", unable to recognize "": no matches for kind "rule" in version "config.istio.io/v1alpha2", unable to recognize "": no matches for kind "rule" in version "config.istio.io/v1alpha2", unable to recognize "": no matches for kind "rule" in version "config.istio.io/v1alpha2", unable to recognize "": no matches for kind "rule" in version "config.istio.io/v1alpha2", unable to recognize "": no matches for kind "rule" in version "config.istio.io/v1alpha2", unable to recognize "": no matches for kind "rule" in version "config.istio.io/v1alpha2"]
Berikut solusi jangka pendek:
helm init --output yaml | sed 's<strong i="7">@apiVersion</strong>: extensions/v1beta1<strong i="8">@apiVersion</strong>: apps/v1@' | kubectl apply -f -
Sebenarnya itu belum cukup. Saya masih mendapatkan kesalahan:
error validating data: ValidationError(Deployment.spec): missing required field "selector" in io.k8s.api.apps.v1.DeploymentSpec
Ini dapat ditambal dengan:
/usr/local/bin/kubectl patch --local -oyaml -f - -p '{"spec":{"selector": {"app":"helm","name":"tiller"}}}'
Anda melewatkan untuk menambahkan pemilih postingan macthLabels
.
Saya diteruskan ke solusi @jbrette . Inilah yang saya dapatkan saat menjalankannya
error: error parsing STDIN: error converting YAML to JSON: yaml: line 11: mapping values are not allowed in this context
Ini telah diperbaiki di Helm 2.16.0 .
Saya diteruskan ke solusi @jbrette . Inilah yang saya dapatkan saat menjalankannya
error: error parsing STDIN: error converting YAML to JSON: yaml: line 11: mapping values are not allowed in this context
Periksa file yaml, dalam banyak kasus baris yang direferensikan memiliki {} atau [] dan masih memiliki hal lain yang ditentukan di bawahnya yang menyebabkan kesalahan. Dalam kebanyakan kasus, masalahnya ada di dalam values.yaml, jika tidak, periksa bagian templat pada bagan.
Sekadar catatan untuk solusi @PierreF dan @mihivagyok . Itu tidak berhasil untuk saya ketika saya menggunakan repo helm pribadi.
$ helm repo add companyrepo https://companyrepo
Error: Couldn't load repositories file (/home/username/.helm/repository/repositories.yaml).
Saya rasa itu terjadi karena helm init tidak berjalan, hanya menghasilkan file yaml. Saya memperbaikinya dengan menjalankan helm init -c
sebagai tambahan.
di k8s v1.16.6, otput helm init membutuhkan spec.selector fyi.
solusi saat ini tampaknya seperti ini:
helm init --output yaml> tiller.yaml
dan perbarui tiller.yaml:
- ubah ke apps / v1
- tambahkan bidang pemilih
--- apiVersion: apps/v1 kind: Deployment metadata: creationTimestamp: null labels: app: helm name: tiller name: tiller-deploy namespace: kube-system spec: replicas: 1 strategy: {} selector: matchLabels: app: helm name: tiller ....
Ini berfungsi, karena kubernetes mengubah apiVersion apps / v1 menjadi Deployment, ada satu hal yang perlu diubah adalah kita perlu menambahkan selector matchLabels untuk spesifikasi
Solusi lain bisa dengan menggunakan helm 3, yang tidak menggunakan anakan.
helm init --output yaml | sed 's @ apiVersion : extensions / v1beta1 @ apiVersion : apps / v1 @ '| kubectl apply -f -
Hai, saat mencoba ini saya mendapatkan ini:
jenkins @ jenkin : ~ / .kube $ helm init --output yaml | sed 's @ apiVersion : extensions / v1beta1 @ apiVersion : apps / v1 @ '| kubectl apply -f -
Perintah 'kubectl' tidak ditemukan, tetapi dapat diinstal dengan:
snap instal kubectl
Silakan tanya administrator Anda.
jenkins @ jenkin : ~ / .kube $
Output dari
helm version
: v2.14.3
Keluarankubectl version
: client: v1.15.3, server: v1.16.0-rc.1
Penyedia / Platform Cloud (AKS, GKE, Minikube, dll.): Layanan IBM Cloud Kubernetes$ helm init --service-account tiller $HELM_HOME has been configured at /Users/xxxx/.helm. Error: error installing: the server could not find the requested resource $ helm init --debug --service-account tiller --- apiVersion: extensions/v1beta1 kind: Deployment metadata: creationTimestamp: null labels: app: helm name: tiller name: tiller-deploy namespace: kube-system spec: . . .
Sepertinya helm mencoba membuat
tiller
Deployment dengan:apiVersion: extensions/v1beta1
Menurut: https://kubernetes.io/blog/2019/07/18/api-deprecations-in-1-16
yang tidak lagi didukung.
saya mendapatkan kesalahan ini: bagaimana saya bisa mengatasinya ???
root @ jenkin : ~ # helm init --service-account tiller
$ HELM_HOME telah dikonfigurasi di /root/.helm.
Kesalahan: kesalahan menginstal: tidak diketahui (post deployments.extensions)
root @ jenkin : ~ #
Berikut solusi jangka pendek:
helm init --output yaml | sed 's<strong i="7">@apiVersion</strong>: extensions/v1beta1<strong i="8">@apiVersion</strong>: apps/v1@' | kubectl apply -f -
Sebenarnya itu belum cukup. Saya masih mendapatkan kesalahan:
error validating data: ValidationError(Deployment.spec): missing required field "selector" in io.k8s.api.apps.v1.DeploymentSpec
Ini dapat ditambal dengan:
/usr/local/bin/kubectl patch --local -oyaml -f - -p '{"spec":{"selector": {"app":"helm","name":"tiller"}}}'
Saya mendapatkan kesalahan ini:
jenkins @ jenkin : ~ / .helm $ helm init --output yaml | sed 's @ apiVersion : extensions / v1beta1 @ apiVersion : apps / v1 @ '| kubectl apply -f -
Perintah 'kubectl' tidak ditemukan, tetapi dapat diinstal dengan:
snap instal kubectl
Silakan tanya administrator Anda.
jenkins @ jenkin : ~ / .helm $
Solusi, menggunakan jq
:
helm init -o json | jq '(select(.apiVersion == "extensions/v1beta1") .apiVersion = "apps/v1")' | jq '(select(.kind == "Deployment") .spec.selector.matchLabels.app = "helm")' | jq '(select(.kind == "Deployment") .spec.selector.matchLabels.name = "tiller")' | kubectl create -f -
Solusi, menggunakan
jq
:
helm init -o json | jq '(select(.apiVersion == "extensions/v1beta1") .apiVersion = "apps/v1")' | jq '(select(.kind == "Deployment") .spec.selector.matchLabels.app = "helm")' | jq '(select(.kind == "Deployment") .spec.selector.matchLabels.name = "tiller")' | kubectl create -f -
Anda tidak dapat memperbarui sumber daya dengan kubectl create
@ikarlashov cukup mudah untuk mengganti 'buat' dengan 'terapkan.' Satu baris di atas menganggap seseorang belum mencoba membuat sumber daya.
Komentar yang paling membantu
Sed berikut berfungsi untuk saya:
Masalah dengan solusi @mattymo (menggunakan kubectl patch --local) adalah sepertinya tidak berfungsi ketika inputnya berisi banyak resource (di sini ada Deployment dan Service).