পডগুলি সমাপ্তির স্থিতিতে আটকে আছে


244

আমি ReplicationController12 টি পোড দিয়ে একটি মুছতে চেষ্টা করেছি এবং দেখতে পেলাম যে কয়েকটি পোড Terminatingস্থিতিতে আটকে রয়েছে ।

আমার কুবেরনেটস ক্লাস্টারে একটি নিয়ন্ত্রণ বিমান নোড এবং উবুন্টু ভার্চুয়াল মেশিনে তিনটি কর্মী নোড ইনস্টল থাকে।

এই সমস্যার কারণ কী হতে পারে?

NAME        READY     STATUS        RESTARTS   AGE
pod-186o2   1/1       Terminating   0          2h
pod-4b6qc   1/1       Terminating   0          2h
pod-8xl86   1/1       Terminating   0          1h
pod-d6htc   1/1       Terminating   0          1h
pod-vlzov   1/1       Terminating   0          1h

সময়সূচী এবং নিয়ামক-পরিচালক পরিচালিত হয়?
এন্টোইন কোটেন

উত্তর:


471

আপনি পিওডিকে শক্তভাবে মোছার জন্য নিম্নলিখিত কমান্ডটি ব্যবহার করতে পারেন।

kubectl delete pod <PODNAME> --grace-period=0 --force --namespace <NAMESPACE>

3
এটি আমার জন্য একটি 1.2.4 এ সমাধান ছিল। পডস সারা রাত অবসান
ঘটাচ্ছে

6
আমার ক্ষেত্রে, আমাকে আরও একটি বিকল্প যুক্ত করতে হবে: --forceশুঁটি ছড়িয়ে দেওয়ার জন্য ated
BMW

17
আমি এটি আমার ক্লাস্টারে করেছি এবং শুঁটিটি মুছে ফেলা হবে বলে মনে হয়েছিল কিন্তু আমি নোডটি পরীক্ষা করে নিলে এটির ধারকটি এখনও চলছে। আমি নোডে নিজেই ডকার পুনরায় চালু করে শেষ করেছি। github.com/kubernetes/kubernetes/issues/25456 এই কমান্ডের সাহায্যে আপনি কোনও সিস্টেমিক সমস্যাটি গোপন করছেন না, সেদিকে খেয়াল রাখুন
mqsoh

4
@ এমকিউসোহ: এপিআই-সার্ভার স্টোর (ইত্যাদি) থেকে ফোর্স মুছুন কেবল মুছে ফেলা, মুছে ফেলা প্রকৃত সম্পদ অনির্দিষ্টকালের জন্য চলতে পারে।
বিটস

8
"সতর্কতা: তাত্ক্ষণিক মুছে ফেলা চলমান সংস্থানটি শেষ হয়ে গেছে তা নিশ্চিত হওয়ার জন্য অপেক্ষা করে না? রিসোর্স অনির্দিষ্টকালের জন্য গুচ্ছের উপর চালিয়ে যেতে পারে" কোন সংস্থান?
অক্ষয়

57

জোর করে পোড মুছুন:

kubectl delete pod --grace-period=0 --force --namespace <NAMESPACE> <PODNAME>

--forceপতাকা বাধ্যতামূলক।


41
তবে আমার কাছে আসল প্রশ্নটি হ'ল "কেন আমাদের প্রথম স্থানে এটিকে অবলম্বন করতে হবে?" অন্যান্য ধরণের স্বাভাবিক অপারেটিং শর্তে কোন ধরণের জিনিসগুলি এই আটকে থাকা অবস্থায় পোঁদ পেতে দেয়?
neverfox

2
ঠিক আছে, আমি আপনাকে একটি উদাহরণ দিতে পারি, আমাদের একটি জাভা পাত্রে ছিল যা বন্ধুত্বপূর্ণ শাটডাউন করেছিল, কিন্তু ময়লা আবর্জনা সংগ্রহ করে নিজেই মৃত্যুর মুখোমুখি হয়েছিল, এইভাবে সংকেতের প্রতিক্রিয়া দেখায় না।
অরেলিয়া

1
নামস্থান সরবরাহ করা ভাল, অন্যথায় একটি বহু-নামস্থান পরিবেশে আপনার শুঁটি পাওয়া যাবে না, ডিফল্টরূপে এটি kube-systemনেমস্পেসে সন্ধান করছে।
ড্যানিয়েল আন্দ্রে মিনসি

একবারে একটি নেমসপেসে সমস্ত শুঁটি মুছে ফেলার জন্য জোর করতেktl get pods -o custom-columns=:metadata.name | xargs kubectl delete pod --force --grace-period=0
ডিপডাইভ

21

সংস্থান থেকে চূড়ান্তকরণকারীদের ব্লক মুছুন (পড, স্থাপনা, ডিএস ইত্যাদি ...) ইয়ামল:

"finalizers": [
  "foregroundDeletion"
]

1
এর পরে ক্রমাগত ভলিউম মুছে ফেলা হয়েছে। এটা আসলে কি করে?
রায়য়ান

আমার শুঁটি টার্মিনেটিং স্টেশনে আটকে তাৎক্ষণিকভাবে সরানো হয়েছিল।
কুবেরচাঁন

এটি তখনই delete -grace-period=0 --forceছিল না যখন আমার জন্য স্টকড পোড স্থির করে । যদিও এটি ঠিক কী করে তার কিছু বিশদ প্রশংসা করব।
ভালোরেল

এই পৃষ্ঠাটি ফোরগ্রাউন্ড মুছে ফেলার ব্যাখ্যা করে। এটি একটি মেটা ডেটা মান যা নির্দেশ করে যে বস্তুটি মোছার প্রক্রিয়াধীন। kubernetes.io/docs/concepts/workloads/controllers/…
শান

14

ব্যবহারিক উত্তর - আপনি সর্বদা চালিয়ে একটি সমাপ্তি পোড মুছতে পারেন:

kubectl delete pod NAME --grace-period=0

Answerতিহাসিক উত্তর - সংস্করণ ১.১ এ একটি সমস্যা ছিল যেখানে কখনও কখনও শুঁটি টার্মিনেটিং স্টেটে আটকা পড়ে যদি তাদের নোডগুলি ক্লাস্টার থেকে অশুচিভাবে মুছে ফেলা হয়।


1
আমার ধারণা এটিই সমস্যা। আমি নোডগুলি অপসারণ না করে একটি মিনিয়ন ভিএম চালিত করেছি। এটি কি গ্রহণযোগ্য আচরণ? বা কুবারনেটগুলি থেকে pod শাঁসগুলি অপসারণ করার কোনও সমাধান আছে?
দিমুথু

হ্যাঁ, সংস্করণ ১.২ না আসা অবধি ওয়ার্কআউন্ডটি হ'ল শুঁটি মুছে ফেলা।
অ্যালেক্স রবিনসন

36
আপনি সর্বদা একটি kubectl delete pod NAME --grace-period=0
ক্লিটন

3
দস্তাবেজ বলছেন যে kubectl delete ...কোনও SIG_TERMঅনুরোধ চালানোর সময় পাত্রে প্রেরণ করা হবে। তবে যদি গ্রেস পিরিয়ড পরে, ধারকটি এখনও চলছে? আমার কাছে একগুচ্ছ Terminatingপোঁদ আটকে গেল , কিছু গো লিখেছিল, কিছু নোডেজে। প্রতিলিপি নিয়ন্ত্রণকারীকে সরানো হয়েছে, এবং
ধারকটি

4
kubectl delete pod PODNAME --grace-period=0ক্লেটন প্রস্তাবিত হিসাবে আমার জন্য কাজ।
যোগেশ জিলহওয়ার

13

আমি এই আদেশটি আরও সহজবোধ্যভাবে পেয়েছি:

for p in $(kubectl get pods | grep Terminating | awk '{print $1}'); do kubectl delete pod $p --grace-period=0 --force;done

এটি ডিফল্ট নেমস্পেসে সমাপ্তি স্থিতির সমস্ত শুঁটি মুছে ফেলবে।


1
আপনি যদি এটি kube-systemব্যবহারের মতো অন্য নেমস্পেসে চালাতে চান :for p in $(kubectl get pods -n kube-system| grep Terminating | awk '{print $1}'); do kubectl delete pod $p --grace-period=0 --force -n kube-system;done
অ্যাক্রোজেনেসিস

8

আমার ক্ষেত্রে --forceবিকল্পটি কার্যকর হয়নি। আমি তখনও পোদ দেখতে পেতাম! এটি টার্মিনেটিং / অজানা মোডে আটকে গিয়েছিল। তাই দৌড়ানোর পরে

kubectl delete pods <pod> -n redis --grace-period=0 --force

আমি দৌড়ে গেলাম

kubectl patch pod <pod> -p '{"metadata":{"finalizers":null}}'

2
এটি করার আগে, চূড়ান্তকরণকারী কী তা বোঝার জন্য kubernetes.io/docs/concepts/workloads/controllers/… পড়ার মূল্য । এছাড়াও, নির্দিষ্ট finalizer দিকে তাকিয়ে আটকে শক্তি দিতে নির্দেশ হল যে কেন এটা আটকে এবং তা বাইপাস নিরাপদ ...
বেনি Cherniavsky-Paskin

5

যদি --grace-period=0কাজ না করে থাকে তবে আপনি এটি করতে পারেন:

kubectl delete pods <pod> --grace-period=0 --force

কিছু পরিস্থিতি রয়েছে যেখানে এটি কাজ করে বলে মনে হচ্ছে তবে এটি আসলে মুছবে না। এটা তোলে সমস্যা সঙ্গে কাজ করতে যেখানে kubelet শুঁটি রাজ্যের হারায় থাকতে পারে এবং তাই এটি পাতার রাষ্ট্র পেতে পারে না .. (যেমন github.com/kubernetes/kubernetes/issues/51835 )। এখনও পর্যন্ত এটি শুদ্ধ করার কোনও উপায় আমি পাইনি।
cgseller

3

রুক সিফ নেমস্পেসটি সরিয়ে দেওয়ার সময় আমি এটিকে হোঁচট খেয়েছি - এটি টার্মিনেটিং অবস্থায় আটকে গেছে।

একমাত্র যে জিনিসটি এখানে পরামর্শ অনুসারে কার্ল দিয়ে সরাসরি k8s এপি কল করে কুবেরনেটস ফাইনালাইজারটি সরিয়ে ফেলতে সহায়তা করেছিল ।

  • kubectl get namespace rook-ceph -o json > tmp.json
  • এতে কুবারনেটস ফাইনালাইজারটি মুছুন tmp.json(খালি অ্যারে ছেড়ে দিন "finalizers": [])
  • চালানোর kubectl proxyপ্রমাণীকরণ উদ্দেশ্যে অন্য টার্মিনাল এবং ফিরে পোর্টের নিম্নলিখিত কার্ল অনুরোধ চালানো
  • curl -k -H "Content-Type: application/json" -X PUT --data-binary @tmp.json 127.0.0.1:8001/k8s/clusters/c-mzplp/api/v1/namespaces/rook-ceph/finalize
  • নামস্থান চলে গেছে

বিশদ রুক সিফ টিয়ারডাউন এখানে


3

মূল প্রশ্নটি " এই সমস্যার কারণ কী হতে পারে? " এবং উত্তরটি https://github.com/kubernetes/kubernetes/issues/51835 এবং https://github.com/kubernetes/kubernetes/issues এ আলোচনা করা হয়েছে / 65569 দেখুন এবং https://www.bountysource.com/issues/33241128- ব্যবহারযোগ্য- to-remove-a-stopped-container-device-or-resource-busy দেখুন

এটি ডকার মাউন্টের কারণে অন্য কোনও নেমস্পেসে ফাঁস হয়ে গেছে।

আপনি তদন্ত করতে পড হোস্টে লগইন করতে পারেন।

minikube ssh
docker container ps | grep <id>
docker container stop <id> 

আমি বিশ্বাস করতে পারি না যে এটি সর্বনিম্ন আপডভয়েটেড উত্তর এবং একটি মন্তব্য নেই। অন্য সমস্ত উত্তরগুলি সমস্যার চারপাশে কাজ করার বা সমাধান করার উপায়গুলি জানায়, ওপিতে শর্তটি প্রথম স্থানে কেন হয় তার কারণটি স্পষ্টভাবে জিজ্ঞাসা করেছিল।
মিস্টারস্ট্রিকল্যান্ড

0

আমি আমার ক্লাস্টারে রিসোর্স মুক্ত করার জন্য সম্প্রতি এটিতে হোঁচট খেয়েছি। এখানে সমস্ত মুছে ফেলার আদেশ দেওয়া আছে।

kubectl get pods --all-namespaces | grep Terminating | while read line; do 
pod_name=$(echo $line | awk '{print $2}' ) name_space=$(echo $line | awk 
'{print $1}' ); kubectl delete pods $pod_name -n $name_space --grace-period=0 --force; 
done

আশা করি এটি পড়তে সাহায্যকারী কেউ help

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