সংস্করণ "এক্সটেনশানগুলি / ভি 1 বেটা 1 এ ধরণের" স্থাপনার জন্য কোনও মিল নেই


27

মোজালুপ মোতায়েন করার সময় আমি এই সমস্যাটি নিয়ে এসেছি k

আমি আমার কুবেরনেটস সংস্করণটি পরীক্ষা করে দেখেছি এবং ১.১16 সংস্করণ তাই আমি কীভাবে এপিআই সংস্করণ দিয়ে এ জাতীয় সমস্যাটি সমাধান করতে পারি investigating বর্তমানে অবহেলিত সংস্করণ বা সমর্থিত সংস্করণ ব্যবহার করুন আমি কুবেরনেটসের সাথে নতুন এবং যে কেউ আমাকে সমর্থন করতে পারে আমি খুশি

ত্রুটি: বৈধতা ব্যর্থ হয়েছে: ["" সনাক্ত করতে অক্ষম: "অ্যাপ্লিকেশন / v1beta2" সংস্করণে "ডিপ্লোয়মেন্ট" এর জন্য কোনও মিল নেই, "" সনাক্ত করতে অক্ষম: সংস্করণ "এক্সটেনশানস / ভি 1 বিটা 1" তে "ডিপ্লোয়মেন্ট" এর জন্য কোনও মিল নেই, অক্ষম "" সনাক্ত করুন: "অ্যাপস / ভি 1 বেটা 2" সংস্করণে "স্টেটফুলসেট" এর জন্য কোনও মিল নেই, "" সনাক্ত করতে অক্ষম: সংস্করণ "অ্যাপস / ভি 1 বিটা 1" তে "স্টেটফুলসেট" এর জন্য কোনও মিল নেই]]


1
বর্তমানে সমর্থিত API গুলি ব্যবহার করার জন্য আপনার স্পষ্ট ফাইল লেখা kubernetes.io/blog/2019/07/18/api-deprecations-in-1-16
zerkms

আমি কিভাবে বিষয়টি প্রজনন করতে পারে তুমি কি আমাকে ভাগ করে নিতে পারেন কিছু পদক্ষেপ
ড্যান

উত্তর:


56

কুবেরনেটস ১.১16-তে কিছু apiগুলি পরিবর্তন করা হয়েছে।

কোন এপিআইএস বর্তমান কুবেরনেটস অবজেক্ট ব্যবহার করে তা সমর্থন করতে পারে

$ kubectl api-resources | grep deployment
deployments                       deploy       apps                           true         Deployment

এর অর্থ হ'ল ডিপ্লাইমেন্টস apps( extensionsসমর্থন করছে না Deployment) এর জন্য শুধুমাত্র এপিভিশনটি সঠিক । স্টেটফুলসেটের একই অবস্থা।

আপনার কেবলমাত্র ডিপ্লোয়মেন্ট এবং স্টেটফিউসেট এপিআই সংস্করণটি পরিবর্তন করতে হবে apiVersion: apps/v1

এটি যদি সহায়তা না করে, দয়া করে আপনার YAML প্রশ্নের সাথে যুক্ত করুন।

সম্পাদনা হিসাবে ইস্যুটি এইচএইএলএম টেমপ্লেটগুলির কারণে ডিপ্লয়মেন্টগুলিতে পুরানো এপিভিশনগুলি অন্তর্ভুক্ত করে যা সংস্করণ 1.16 সমর্থিত নয়, এর জন্য 2 টি সম্ভাব্য সমাধান রয়েছে:

1. git clone পুরো রেপো এবং apiVersion প্রতিস্থাপন apps/v1সব টেমপ্লেট / deployment.yaml ব্যবহার লিপিতে
2. Kubernetes পুরানো সংস্করণটি ব্যবহার (1.15) যখন গ্রহণ যাচাইকারী extensionsযেমন apiVersionজন্য Deployentএবং StatefulSet


আমি কি কুবারনেটসকে ডাউনগ্রেড করতে পারি যেহেতু মোজালুপের জন্য সমস্ত মোতায়েনের ইয়ামল ফাইলটি কুবার্নেটস সংস্করণ 1.15 এর সাথে তুলনামূলক তাই আমি কীভাবে ডাউনগ্রেড করতে পারি বা ডাউনগ্রেড করে কীভাবে আমি তখন একটি সলান পেতে পারি
ড্যান

1
আমি এই মোজালুপ / ​​মোজালুপ হেলম চার্টটি চেক করেছি। দুর্ভাগ্যবশত, স্থাপনার সঙ্গে সমস্ত টেমপ্লেট apiVersions আছে: extensions/v1beta1। সম্ভব কার্যসংক্রান্ত এক হিসাবে git cloneপুরো রেপো এবং apiVersion প্রতিস্থাপন apps/v1সব টেমপ্লেট / deployment.yaml usinc লিপিতে find . -name 'deployment.yaml' | xargs -n 1 perl -pi -e 's/(apps\/v1beta2)|(extensions\/v1beta1)/apps\/v1/g'.দ্বিতীয় কার্যসংক্রান্ত শুধু Kubernetes পুরোনো সংস্করণ (1.15) ব্যবহার হতে পারে যখন যাচাইকারী Deployent এবং StatefulSet জন্য apiVersion যেমন এক্সটেনশন গ্রহণ।
পজোটারস

@dan আপনি ব্যবহার করছেন Minikubeবা Kubeadm?
পজোটারস

kubeadm আমি মিনিক्यूब ব্যবহার করি নি
ড্যান্সেট

আপনি কি আমাকে কুবেড্মন স্পেসিফিকের সংস্করণ ১.১৫ ইনস্টল করার কয়েকটি পদক্ষেপ ভাগ করে নিতে পারেন? কুবাআডম্ন ১.১৫ ইনস্টল করার বিষয়ে বিবেচনা করে স্পিফিক রিসোর্সটি আমি খুঁজে পাচ্ছি না
এবং

4

আপনি বিকল্প হিসাবে ম্যানুয়ালি পরিবর্তন করতে পারেন। শিরোনাম চার্ট আনুন:

helm fetch --untar stable/metabase

চার্ট ফোল্ডারে অ্যাক্সেস করুন:

cd ./metabase

এপিআই সংস্করণ পরিবর্তন করুন:

sed -i 's|extensions/v1beta1|apps/v1|g' ./templates/deployment.yaml

যুক্ত করুন spec.selector.matchLabels:

spec:
[...]
selector:
    matchLabels:
    app: {{ template "metabase.name" . }}
[...]

অবশেষে আপনার পরিবর্তিত চার্টটি ইনস্টল করুন:

helm install ./ \
  -n metabase \
  --namespace metabase \
  --set ingress.enabled=true \
  --set ingress.hosts={metabase.$(minikube ip).nip.io}

উপভোগ করুন!


0

এটি আমাকে বিরক্ত করছিল কারণ আমি প্রচুর হেলম প্যাকেজগুলি পরীক্ষা করছি তাই আমি একটি দ্রুত স্ক্রিপ্ট লিখেছিলাম - যা আপনার ওয়ার্কফ্লো বাছাই করতে সংশোধন করা যেতে পারে সম্ভবত নীচে দেখুন

নতুন কর্মপ্রবাহ আপনার চার্জ ডিরেক্টরিতে প্রথমে tgz হিসাবে চার্টটি আনুন ch

helm fetch repo/chart

তারপরে আপনার কার্যক্রমে সরাসরি নীচে বাশ স্ক্রিপ্টটি চালান - যার নাম আমি হেল্ম্ক করেছি

helmk myreleasename mynamespace chart.tgz [any parameters for kubectl create]

শিরোনামের বিষয়বস্তু - আপনার কুবাইকফিগ ক্লাস্টারনেমকে কাজ করতে সম্পাদনা করতে হবে

#!/bin/bash
echo usage $0 releasename namespace chart.tgz [createparameter1] [createparameter2] ... [createparameter n]
echo This will use your namespace then shift back to default so be careful!!
kubectl create namespace $2   #this will create harmless error if namespace exists have to ignore
kubectl config set-context MYCLUSTERNAME --namespace $2
helm template -n $1 --namespace $2 $3 | kubectl convert -f /dev/stdin | kubectl create --save-config=true ${@:4}  -f /dev/stdin
#note the --namespace parameter in helm template above seems to be ignored so we have to manually switch context
kubectl config set-context MYCLUSTERNAME --namespace default

এটি সামান্য বিপজ্জনক হ্যাক যেহেতু আমি ম্যানুয়ালি আপনার নতুন পছন্দসই নেমস্পেস প্রসঙ্গে স্যুইচ করে আবার ফিরে এসেছি তাই কেবলমাত্র একক ব্যবহারকারীর ডেভস ব্যবহার করতে বা মন্তব্য করতে পারব না।

আপনি এইভাবে কুবেক্টেল রূপান্তর সুবিধা ব্যবহার সম্পর্কে একটি সতর্কতা পাবেন

আপনার যদি কাস্টমাইজ করার জন্য ওয়ামএএমএল সম্পাদনা করতে হয় - কেবলমাত্র একটি / ডিভ / স্টিডিনকে মধ্যবর্তী ফাইলগুলিতে প্রতিস্থাপন করুন তবে এটি সম্ভবত আমার নিজের মতো একটি সেভ-কনফিগারেশন দিয়ে "তৈরি" ব্যবহার করে তৈরি করা ভাল এবং তারপরে আপনার পরিবর্তনগুলি কেবল "প্রয়োগ" করুন যার অর্থ তারা কুবারনেটেও রেকর্ড করা হবে। শুভকামনা


0

এটিকে সরল রাখার জন্য আপনি বর্তমান ইনস্টলেশনটিকে API এর পুরানো সংস্করণ ব্যবহার করতে বাধ্য করবেন না, তবে আপনি যদি আপনার বর্তমান কুবের সমর্থন করে কোন সংস্করণটি পরীক্ষা করতে চান তবে আপনার কনফিগার ফাইলগুলিতে কেবল সংস্করণটি ঠিক করুন:

রুট @ ubn64: ~ # কুবেক্টেল এপিআই-সংস্করণ | গ্রেপ -i অ্যাপস

অ্যাপস / v1 এ

রুট @ ubn64: ~ #

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.