কুবেরনেটস চাকরিটি পুনরায় চালু করা কি সম্ভব?


35

আমার কাছে নিম্নলিখিত কুবেরনেটস কাজের কনফিগারেশন রয়েছে:

---
apiVersion: batch/v1
kind: Job
metadata:
  name: dbload
  creationTimestamp: 
spec:
  template:
    metadata:
      name: dbload
    spec:
      containers:
      - name: dbload
        image: sdvl3prox001:7001/pbench/tdload
        command: ["/opt/pbench/loadTpcdsData.sh",  "qas0063", "dbc", "dbc", "1"]
      restartPolicy: Never
      imagePullSecrets: 
        - name: pbenchregkey
status: {}

যখন আমি kubectl create -f dbload-deployment.yml --recordকাজটি করি এবং একটি পড তৈরি হয়, ডকারের ধারকটি সমাপ্তির দিকে চলে এবং আমি এই স্থিতিটি পাই:

$ kubectl get job dbload
NAME      DESIRED   SUCCESSFUL   AGE
dbload    1         1            1h
$ kubectl get pods -a
NAME           READY     STATUS      RESTARTS   AGE
dbload-0mk0d   0/1       Completed   0          1h

এই কাজটি এক সময়ের চুক্তি এবং আমার এটি পুনরায় চালু করতে সক্ষম হওয়া দরকার। যদি আমি kubectl createকমান্ড দিয়ে এটি পুনরায় চালু করার চেষ্টা করি তবে আমি এই ত্রুটিটি পেয়েছি

$ kubectl create -f dbload-deployment.yml --record
Error from server: error when creating "dbload-deployment.yml": jobs.batch "dbload" already exists

অবশ্যই আমি করতে পারি kubectl delete job dbloadএবং তারপরে দৌড়াতে পারি kubectl createতবে আমি ভাবছি যে ইতিমধ্যে বিদ্যমান কাজটি কি আমি আবার জাগাতে পারি?

উত্তর:


22

না। কুবেরনেটস চাকরিটি পুনরায় চালুর কোনও উপায় নেই। আপনাকে প্রথমে এটি মুছতে হবে।


23

আপনি নিজের সাথে কাজটি প্রতিস্থাপন করে পুনরায় কাজ করতে পারেন:

  • kubectl get job "your-job" -o json | kubectl replace --force -f -

যদি আপনি স্বয়ংক্রিয়ভাবে উত্পাদিত লেবেল বা নির্বাচকগুলির কারণে ত্রুটি পান তবে আপনি এটিকে JQ দিয়ে মুছতে বা সম্পাদনা করতে পারেন:

  • kubectl get job "your-job" -o json | jq 'del(.spec.selector)' | jq 'del(.spec.template.metadata.labels)' | kubectl replace --force -f -

1
প্রথমে জব জসনের একটি অনুলিপি একটি ফাইলে সংরক্ষণ করার পরামর্শ দিন। kubectl replaceত্রুটিগুলি পুনরুদ্ধার করার আগে কাজটি মুছে ফেলার আগে।
জেরেমি হুইস্ক্যাম

প্রথমে জসনকে সেভ করুন এবং তারপরে পুনরায় তৈরি করুন !!
ডিপডাইভ

14

আপনি উল্লেখ করে ত্রুটিটি এড়াতে পারেন

metadata: generateName: dbload

পরিবর্তে সহজভাবে name

সেক্ষেত্রে, আপনি এই ইয়ামল ফাইলের সাথে জমা প্রতিটি কাজের একটি স্বতন্ত্র নাম থাকবে যা দেখতে কিছুটা সুন্দর দেখাবে dbloada1b2c। তারপর আপনি সিদ্ধান্ত নিতে পারেন কিনা আপনি পুরানো কাজ মোছার প্রয়োজন, কিন্তু আপনি করা হবে না আছে এটা করতে।


আমি বিশ্বাস করি জেনারেটনাম কেবল প্রকারের = পোড এবং জব নয় to
ব্যবহারকারী518066

2
না, এটি অবজেক্টমিটার একটি স্ট্যান্ডার্ড অংশ এবং পোড এবং কাজ উভয় ক্ষেত্রে প্রযোজ্য: কে 8 এস রেফারেন্স । আমি এটি সর্বদা ব্যবহার করে যাচ্ছি, এটি আমি যা করছি তার মূল বিষয়।
ভিপি 124

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