kubectl লগ - ক্রমাগত


99
kubectl logs <pod-id>

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

সম্পাদনা: শেষে প্রশ্ন সংশোধন করা হয়েছে।

উত্তর:


176
kubectl logs -f <pod-id>

আপনি -fপতাকাটি ব্যবহার করতে পারেন :

-f, --follow=false: Specify if the logs should be streamed.

https://kubernetes.io/docs/references/generated/kubectl/kubectl- কম্যান্ডস# লগস


পরিষেবা জন্য লগ বা পোড ছাড়া অন্য কিছু সম্পর্কে কি?
আলেকজান্ডার মিলস

4
এটি অল্প সময়ের জন্য কাজ করে তবে লগগুলি বন্ধ হয়। কুবেক্টেল থেকে বেরিয়ে আসতে আমাকে সিটিআরএল-সি করতে হবে, তারপরে সেগুলি পুনরায় চালু করতে হবে। এটি পরে আরও লগ দেখায় কিন্তু আবার থামে। যে কেউ জানেন যে লগগুলি স্পষ্টত এখনও শুঁটি দ্বারা উত্পন্ন করা হয় কেন এলোমেলো দাগগুলিতে থামে?
পেফারেল

20

kubectl logs --help আপনাকে গাইড করবে:

উদাহরণ:

# Begin streaming the logs of the ruby container in pod web-1
kubectl logs -f -c ruby web-1

পতাকা:

-f, --follow[=false]: Specify if the logs should be streamed.

আপনি --since=10mসেই তুলনামূলক সময় আগে যোগ করতে বা শুরু করতে পারেন ।


একটি পোদে একাধিক ধারক থাকতে পারে?
আলেকজান্ডার মিলস

@ আলেকজান্ডারমিলস হ্যাঁ, এটি "
সিডিকার

6

আমার একটি দীর্ঘ চলমান পডের লগগুলি অ্যাক্সেস করার দরকার ছিল এবং কয়েক -fদিন আগে থেকেই লগগুলি স্ট্রিম করা শুরু করেছিল, যেখানে আমার দেখার দরকার যেখানে পৌঁছাতে কয়েক ঘন্টা সময় লেগেছিল (ঠিক শেষ কয়েক মিনিট বা তার বেশি সময়)।

এখানে একটি --since=10mপতাকা রয়েছে, তবে এটি আমার পক্ষে কাজ করবে বলে মনে হচ্ছে না।

আশ্চর্য কি ছিল --tail=100, 100প্রদর্শন করার জন্য সাম্প্রতিক লাইনের সংখ্যাটি কোথায় ।


4

কুডস পোড স্পিন করার জন্য অপেক্ষা করুন এবং তারপর এগিয়ে যান ...

k8s_pod=some_pod
kubectl get pods -w $k8s_pod | while read LOGLINE
do
   [[ "${LOGLINE}" == *"Running"* ]] && pkill -P $$ kubectl
done

লেজ লগ

for line in $(kubectl get pods | grep $k8s_pod | awk '{print $1}'); do
    kubectl logs -f $line | tee logfile
done

সাফল্য সূচক জন্য সন্ধান করুন

tail logfile | grep successful! 
RESULT=$?
exit $RESULT

'সফল!' আপনার পডের উপর নির্ভর করে পরিবর্তনের প্রয়োজন হতে পারে।
ddtraveller

আমি অন্যান্য দুটি স্ট্যাকওভারফ্লো পোস্টগুলি থেকে প্রথম দুটি অংশ নিয়েছি যাতে আমি সম্পূর্ণরূপে তাদের কৃতিত্ব নিতে পারি না তবে আমি আশা করি যে কম্বো অন্যদের ভালভাবে সেবা করবে ...
ddtraveller

4

আপনি যদি কোনও বহু পড অ্যাপ্লিকেশন থেকে লগগুলির প্রবাহ পেতে চান তবে আপনি কুবেটাইল ব্যবহার করতে পারেন , উদাহরণস্বরূপ:

kubectl get pods

NAME                   READY     STATUS    RESTARTS   AGE
app2-v31-9pbpn         1/1       Running   0          1d
app2-v31-q74wg         1/1       Running   0          1d

kubetail app2

যে কমান্ড দিয়ে, kubetail হয় পিছাড়ী শুঁটি থেকে লগগুলি app2-v31-9pbpn এবং app2-v31-q74wg


1

এটা চেষ্টা কর,

শুঁটি থেকে লেজ লগ

kubectl --tail <"লাইনের কোনও নয়"> লগ <"পড_নাম">

উদাহরণ :

kubectl - টেল 100 লগ অ্যাপ_পড


0

kubctl লগ -f = সত্য [পোড-নাম] -সি [ধারক-নাম]

পডের উপরে যদি আপনার কেবল একটি একক ধারক থাকে তবে ধারকটির নাম প্রয়োজন হয় না অন্যথায় -c বিকল্প সহ ধারকটির নাম ব্যবহার করুন। -f অর্থাৎ ডিফল্টরূপে অনুসরণ করা মিথ্যা। যদি আপনি এটি সত্যে সেট না করেন আপনি আপনার ধারক লগগুলির একটি স্ন্যাপশট পাবেন।


0

আপনি -f এর সাথে লগগুলি অনুসরণ করতে পারেন

kubectl logs -f <pod_name>

যদি লগগুলি বন্ধ হয়ে যায় তবে সম্ভবত পড ক্রাশ হচ্ছে, আপনি কি পডটি আসলে চলছে কিনা তা পরীক্ষা করতে পারেন? বয়স যাচাই করতে পারেন বা:

kubectl describe deploy/ds <deploy_or_ds_name>?

অথবা আপনি একাধিক পাত্রে পডের ভিতরে পাত্রের জন্য লগগুলিও পরীক্ষা করতে পারেন

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