কিভাবে কুবেরনেটস ড্যাশবোর্ডে সাইন ইন করবেন?


127

আমি সবে কুবেয়াডম এবং কুবেলেটকে v1.8.0 এ আপগ্রেড করেছি। এবং অফিসিয়াল ডকুমেন্ট অনুসরণ করে ড্যাশবোর্ড ইনস্টল করুন ।

$ kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/recommended/kubernetes-dashboard.yaml

তারপরে, আমি চালিয়ে ড্যাশবোর্ড শুরু করলাম

$ kubectl proxy --address="192.168.0.101" -p 8001 --accept-hosts='^*$'

তারপরে সৌভাগ্যক্রমে, আমি http://192.168.0.101:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/ এর মাধ্যমে ড্যাশবোর্ড অ্যাক্সেস করতে সক্ষম হয়েছি

আমাকে এর আগে লগইন পৃষ্ঠায় পুনঃনির্দেশ করা হয়েছিল যা আগে কখনও দেখা হয়নি। এখানে চিত্র বর্ণনা লিখুনদেখে মনে হচ্ছে প্রমাণীকরণের দুটি উপায় রয়েছে।

আমি /etc/kubernetes/admin.confকুবিকনফিগ হিসাবে আপলোড করার চেষ্টা করেছি কিন্তু ব্যর্থ হয়েছি। তারপরে আমি kubeadm token listসাইন ইন করতে যে টোকেনটি পেয়েছিলাম তা ব্যবহার করার চেষ্টা করেছি তবে আবার ব্যর্থ হয়েছি ।

প্রশ্নটি কীভাবে আমি ড্যাশবোর্ডে সাইন করতে পারি। দেখে মনে হচ্ছে তারা আগের তুলনায় অনেক সুরক্ষা ব্যবস্থা যুক্ত করেছে। ধন্যবাদ।


6
আমি এখানে একটি প্রোগ্রামিং প্রশ্ন দেখতে পাচ্ছি না। পরিবর্তে সার্ভারফল্ট.কম চেষ্টা করুন।
জোলতা

আপনি যদি লোকালহোস্টে না থাকেন তবে আপনাকে কেবল https ব্যবহারের প্রয়োজন হতে পারে, অন্যথায় লগইন ফর্মটি নিঃশব্দে ব্যর্থ হবে (ভুল চিহ্ন ছাড়াই)) বিশদ: স্ট্যাকওভারফ্লো.com
পুতনিক

আপনাকে টোকেন তৈরি করতে হবে, এই গাইডটি অনুসরণ করুন - jhooq.com/setting-up-kubernetes- ড্যাশবোর্ড
রাহুল ওয়াগ

1
@ জোলতা ডিভোপস এখন একটি প্রোগ্রামিং ক্রিয়াকলাপ যা কুবেরনেটসকে ধন্যবাদ, আপনি এটির মুখোমুখি হবেন;)
ফ্যাবিয়েন কোয়াট্রাভাক্স

উত্তর:


165

প্রকাশের হিসাবে 1.7 ড্যাশবোর্ড এর ভিত্তিতে ব্যবহারকারী প্রমাণীকরণ সমর্থন করে:

- গিথুবের ড্যাশবোর্ড

টোকেন

এখানে Tokenহতে পারে Static Token, Service Account Token, OpenID Connect Tokenথেকে Kubernetes প্রমাণীকরণ , কিন্তু না kubeadm Bootstrap Token

কুবেক্টেল দিয়ে, আমরা ডিফল্টরূপে কুবেরনেটে তৈরি একটি পরিষেবা অ্যাকাউন্ট (যেমন। স্থাপনা নিয়ামক) পেতে পারি।

$ kubectl -n kube-system get secret
# All secrets with type 'kubernetes.io/service-account-token' will allow to log in.
# Note that they have different privileges.
NAME                                     TYPE                                  DATA      AGE
deployment-controller-token-frsqj        kubernetes.io/service-account-token   3         22h

$ kubectl -n kube-system describe secret deployment-controller-token-frsqj
Name:         deployment-controller-token-frsqj
Namespace:    kube-system
Labels:       <none>
Annotations:  kubernetes.io/service-account.name=deployment-controller
              kubernetes.io/service-account.uid=64735958-ae9f-11e7-90d5-02420ac00002

Type:  kubernetes.io/service-account-token

Data
====
ca.crt:     1025 bytes
namespace:  11 bytes
token:      eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlLXN5c3RlbSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJkZXBsb3ltZW50LWNvbnRyb2xsZXItdG9rZW4tZnJzcWoiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoiZGVwbG95bWVudC1jb250cm9sbGVyIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQudWlkIjoiNjQ3MzU5NTgtYWU5Zi0xMWU3LTkwZDUtMDI0MjBhYzAwMDAyIiwic3ViIjoic3lzdGVtOnNlcnZpY2VhY2NvdW50Omt1YmUtc3lzdGVtOmRlcGxveW1lbnQtY29udHJvbGxlciJ9.OqFc4CE1Kh6T3BTCR4XxDZR8gaF1MvH4M3ZHZeCGfO-sw-D0gp826vGPHr_0M66SkGaOmlsVHmP7zmTi-SJ3NCdVO5viHaVUwPJ62hx88_JPmSfD0KJJh6G5QokKfiO0WlGN7L1GgiZj18zgXVYaJShlBSz5qGRuGf0s1jy9KOBt9slAN5xQ9_b88amym2GIXoFyBsqymt5H-iMQaGP35tbRpewKKtly9LzIdrO23bDiZ1voc5QZeAZIWrizzjPY5HPM1qOqacaY9DcGc7akh98eBJG_4vZqH2gKy76fMf0yInFTeNKr45_6fWt8gRM77DQmPwb3hbrjWXe1VvXX_g

Kubeconfig

ড্যাশবোর্ডে কুবিকনফিগ ফাইলের ব্যবহারকারী প্রয়োজন হয় username & passwordবা আছে token, তবে admin.confকেবল আছে client-certificate। উপরের পদ্ধতিটি ব্যবহার করে উত্তোলিত টোকেন যুক্ত করতে আপনি কনফিগার ফাইলটি সম্পাদনা করতে পারেন।

$ কুবেক্টেল কনফিগারেশন সেট-শংসাপত্রসমূহ ক্লাস্টার-অ্যাডমিন - টোকেন = বহনকারী_ টোকেন

বিকল্প (উত্পাদনের জন্য প্রস্তাবিত নয়)

প্রমাণীকরণটিকে বাইপাস করার দুটি উপায় এখানে রয়েছে তবে সতর্কতার জন্য ব্যবহার করুন।

এইচটিটিপি দিয়ে ড্যাশবোর্ড স্থাপন করুন

$ kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/alternative/kubernetes-dashboard.yaml

ড্যাশবোর্ড এ লোড করা যাবে // স্থানীয় হোস্ট: HTTP 8001 / UI সঙ্গে kubectl proxy

ড্যাশবোর্ডের পরিষেবা অ্যাকাউন্টে অ্যাডমিন সুবিধা প্রদান করা

$ cat <<EOF | kubectl create -f -
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
  name: kubernetes-dashboard
  labels:
    k8s-app: kubernetes-dashboard
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
- kind: ServiceAccount
  name: kubernetes-dashboard
  namespace: kube-system
EOF

এরপরে আপনি Skipড্যাশবোর্ড অ্যাক্সেস করতে লগইন পৃষ্ঠায় বিকল্পটি ব্যবহার করতে পারেন ।

আপনি যদি ড্যাশবোর্ড সংস্করণ v1.10.1 বা তার পরে ব্যবহার করেন তবে আপনাকে অবশ্যই --enable-skip-loginডিপ্লোয়মেন্টের কমান্ড লাইন যুক্তি যুক্ত করতে হবে। আপনি এটি argsইন-এ যোগ করে এটি করতে পারেন kubectl edit deployment/kubernetes-dashboard --namespace=kube-system

উদাহরণ:

      containers:
      - args:
        - --auto-generate-certificates
        - --enable-skip-login            # <-- add this line
        image: k8s.gcr.io/kubernetes-dashboard-amd64:v1.10.1

3
আপনি কীভাবে একটি ব্যবহারকারী তৈরি করবেন তারপরে টোকেন দিয়ে লগইন করতে আমাদের একটি উদাহরণ দিতে পারেন? আমি এখনও টোকন ব্যবহারকারীর মতো ব্যবহার করতে জানি না।
xren

কুবেরনেটস প্রমাণীকরণে স্ট্যাটিক টোকন ফাইলটি দেখুন
সিলভারফক্স

96

টি এল; ডিআর

একক অনলাইনারে টোকেন পেতে:

kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | awk '/^deployment-controller-token-/{print $1}') | awk '$1=="token:"{print $2}'

এটি ধরে নিয়েছে যে আপনার ~ / .kube / কনফিগারেশন উপস্থিত এবং বৈধ। এবং এটিও kubectl config get-contextsইঙ্গিত করে যে আপনি যে ড্যাশবোর্ডে লগ ইন করছেন তার জন্য সঠিক প্রসঙ্গ (ক্লাস্টার এবং নামস্থান) ব্যবহার করছেন।

ব্যাখ্যা

@ সিলভারফক্সের উত্তর থেকে আমি যা শিখেছি তা থেকে আমি এই উত্তরটি পেয়েছি। এটি একটি খুব তথ্যপূর্ণ লেখার আপ। দুর্ভাগ্যক্রমে এটি কীভাবে তথ্যকে বাস্তবে প্রয়োগ করা যায় তা বলার অপেক্ষা রাখে না। হতে পারে আমি ডিভোপসটি খুব দীর্ঘ সময় করে চলেছি, তবে আমি শেল মনে করি। আমার পক্ষে ইংরেজি শেখা বা শেখানো আরও অনেক কঠিন difficult

এখানে পঠনযোগ্যতার জন্য লাইন ব্রেক এবং ইনডেন্টগুলির সাথে অনেলাইনারটি এখানে রয়েছে:

kubectl -n kube-system describe secret $(
  kubectl -n kube-system get secret | \
  awk '/^deployment-controller-token-/{print $1}'
) | \
awk '$1=="token:"{print $2}'

এখানে 4 টি পৃথক কমান্ড রয়েছে এবং তারা এই ক্রমে কল পেয়ে থাকে:

  • লাইন 2 - এটি @ সিলভারফক্সের টোকেন বিভাগ থেকে প্রথম আদেশ ।
  • লাইন 3 - লাইনটির প্রথম ক্ষেত্রটি প্রিন্ট করুন deployment-controller-token-(যা পডের নাম) দিয়ে শুরু করুন
  • লাইন 1 - এটি @ সিলভারফক্সের টোকেন বিভাগের দ্বিতীয় আদেশ ।
  • লাইন 5 - রেখার কেবল দ্বিতীয় ক্ষেত্রটি মুদ্রণ করুন যার প্রথম ক্ষেত্রটি "টোকেন:"

2
অ্যাডকের সমতুল্য কোনও পাওয়ারশেল আছে?
duct_tape_coder

1
@duc_tape_coder just kubectl -n kube-system গোপনীয়তা অর্জন করে এবং নাম স্থাপনার-নিয়ামক-টোকেন-সোমেশ্যাশ নামের একটি টোকেন সন্ধান করে, তারপরে কেবল কুবেটেল-এন কুবের-সিস্টেম গোপন স্থাপনা-নিয়ন্ত্রক-টোকেন-কিছুহেশ বর্ণনা করে। এটাই আজকের কাজটি করে।
qubits

2
দুর্দান্ত উত্তর। এটি আরও একটি পদক্ষেপ নিতে: kubectl describe secret $(kubectl get secret | awk '/^dashboard-token-/{print $1}') | awk '$1=="token:"{print $2}' বা আপনার ক্লিপবোর্ডের ডানদিকে ধাক্কা kubectl describe secret $(kubectl get secret | awk '/^dashboard-token-/{print $1}') | awk '$1=="token:"{print $2}' | xclip -selection clipboard -i
javajon

@duct_tape_coder kubectl -n kubernetes-dashboard describe secret $(kubectl -n kubernetes-dashboard get secret | sls admin-user | ForEach-Object { $_ -Split '\s+' } | Select -First 1)থেকে github.com/kubernetes/dashboard/blob/master/docs/user/...
Putnik

48

আপনি যদি ড্যাশবোর্ড পরিষেবা অ্যাকাউন্টে প্রশাসকের অনুমতি দিতে না চান তবে আপনি ক্লাস্টার অ্যাডমিন পরিষেবা অ্যাকাউন্ট তৈরি করতে পারেন।

$ kubectl create serviceaccount cluster-admin-dashboard-sa
$ kubectl create clusterrolebinding cluster-admin-dashboard-sa \
  --clusterrole=cluster-admin \
  --serviceaccount=default:cluster-admin-dashboard-sa

এবং তারপরে, আপনি স্রেস্ট তৈরি ক্লাস্টার অ্যাডমিন পরিষেবা অ্যাকাউন্টের টোকেন ব্যবহার করতে পারেন।

$ kubectl get secret | grep cluster-admin-dashboard-sa
cluster-admin-dashboard-sa-token-6xm8l   kubernetes.io/service-account-token   3         18m
$ kubectl describe secret cluster-admin-dashboard-sa-token-6xm8l

আমি এটি জায়ান্টসওয়ার্ম গাইড থেকে উদ্ধৃত করেছি - https://docs.giantswarm.io/guides/install-kubernetes-dashboard/


5
এইটি আমার পক্ষে ঠিক কাজ করেছে যখন গ্রহণযোগ্য উত্তরটি আমার মধ্যে সাইন ইন ছিল তবে কিছু অনুমোদনের ত্রুটি ছিল।
জেডটাক্স

3
মনে রাখবেন যে এই আদেশটি পরিষেবা অ্যাকাউন্টটিকে প্রচুর অধিকার দেয় এবং উত্পাদন পরিবেশে এটি উপযুক্ত নয়।
এক্স ওয়াং

4
ড্যাশবোর্ড যেখানে থাকে
সেহেতুও কিউব

আমার জন্য কাজ! আমি 8001 বন্দর দিয়ে পরিষেবাটি উন্মোচন করছি এবং আমার স্থানীয় মেশিন থেকে অ্যাক্সেসের জন্য একটি এসএসএইচ টানেল ব্যবহার করেছি।
অনুরাধা ফার্নান্দো

18

দুটি উত্তর মিলিত: 49992698 এবং 47761914 :

# Create service account
kubectl create serviceaccount cluster-admin-dashboard-sa

# Bind ClusterAdmin role to the service account
kubectl create clusterrolebinding cluster-admin-dashboard-sa \
  --clusterrole=cluster-admin \
  --serviceaccount=default:cluster-admin-dashboard-sa

# Parse the token
TOKEN=$(kubectl describe secret $(kubectl -n kube-system get secret | awk '/^cluster-admin-dashboard-sa-token-/{print $1}') | awk '$1=="token:"{print $2}')

8

কুবেরনেটস ড্যাশবোর্ড লগইনের জন্য টোকেন নিষ্কাশনের জন্য একটি স্ব-ব্যাখ্যামূলক সহজ ওয়ান-লাইনার।

kubectl describe secret -n kube-system | grep deployment -A 12

টোকেনটি অনুলিপি করুন এবং টোকেন সাইন ইন বিকল্পের অধীনে কুবেরনেটস ড্যাশবোর্ডে আটকান এবং আপনি কুবেরনেটস ড্যাশবোর্ড ব্যবহার করা ভাল


5

পূর্ববর্তী সমস্ত উত্তর আমার কাছে ভাল। তবে আমার পক্ষে সরাসরি উত্তর দেওয়া হবে https://github.com/kubernetes/dashboard/wiki/Creating-sample-user#bearer-token থেকে । শুধু ব্যবহার kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep admin-user | awk '{print $1}')। আপনি কিছু কী জন্য অনেক মান হবে ( Name, Namespace, Labels, ..., token)। সর্বাধিক গুরুত্বপূর্ণটি হ'ল এটি tokenআপনার নামের সাথে সম্পর্কিত। সেই টোকেনটি অনুলিপি করুন এবং টোকেন বাক্সে এটি আটকে দিন। আশাকরি এটা সাহায্য করবে.


উপরের বেশ কয়েকটি উত্তর চেষ্টা করার পরে, এই একটি উত্তর কাজ করেছে। আমি একটি টোকন আউট অনুলিপি করেছি, এটি আটকানো, এবং প্রেস্টো, ইন ইন।
সেন্টার

5

টোকেন প্রমাণীকরণের আগে আপনাকে এই পদক্ষেপগুলি অনুসরণ করতে হবে

  1. একটি ক্লাস্টার প্রশাসন পরিষেবা অ্যাকাউন্ট তৈরি করুন

    kubectl create serviceaccount dashboard -n default
    
  2. আপনার ড্যাশবোর্ড অ্যাকাউন্টে ক্লাস্টার বাইন্ডিং বিধি যুক্ত করুন

    kubectl create clusterrolebinding dashboard-admin -n default --clusterrole=cluster-admin --serviceaccount=default:dashboard
    
  3. এই আদেশের সাথে গোপন টোকেন পান

    kubectl get secret $(kubectl get serviceaccount dashboard -o jsonpath="{.secrets[0].name}") -o jsonpath="{.data.token}" | base64 --decode
    
  4. কুবেরনেটস ড্যাশবোর্ড লগইন পৃষ্ঠাতে টোকেন প্রমাণীকরণ চয়ন করুন এখানে চিত্র বর্ণনা লিখুন

  5. এখন আপনি লগইন করতে পারবেন


0

Https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/al متبادل/ kubernetes- dashboard.yaml ডাউনলোড করুন

যোগ

type: NodePort for the Service

এবং তারপরে এই কমান্ডটি চালান:

kubectl apply -f kubernetes-dashboard.yaml

কমান্ডটি সহ উন্মুক্ত বন্দরটি সন্ধান করুন:

kubectl get services -n kube-system

আপনি ড্যাশবোর্ডটি http: // হোস্টনাম: এক্সপোর্টপোর্ট / কোনও প্রমাণীকরণ ছাড়াই পেতে সক্ষম হবেন


এটি একেবারে ভয়ানক পরামর্শ। এমনকি এটি প্রযুক্তিগতভাবে সঠিক
ক্রিস্টোফার টমাস

0

সুরক্ষা সমস্যার কারণে স্কিপ লগইনটি ডিফল্টরূপে অক্ষম করা হয়েছে। https://github.com/kubernetes/dashboard/issues/2672

আপনার ড্যাশবোর্ডে ইয়ামলটি এই আরগটি যুক্ত করুন

- --enable-skip-login

এটি ফিরে পেতে


1
যদিও এই লিঙ্কটি প্রশ্নের উত্তর দিতে পারে, উত্তরের প্রয়োজনীয় অংশগুলি এখানে অন্তর্ভুক্ত করা এবং রেফারেন্সের জন্য লিঙ্কটি সরবরাহ করা ভাল। লিঙ্কযুক্ত পৃষ্ঠাগুলি পরিবর্তিত হলে লিঙ্ক-শুধুমাত্র উত্তরগুলি অবৈধ হতে পারে।
স্টিফান বেকার

1
যদিও এই লিঙ্কটি প্রশ্নের উত্তর দিতে পারে, উত্তরের প্রয়োজনীয় অংশগুলি এখানে অন্তর্ভুক্ত করা এবং রেফারেন্সের জন্য লিঙ্কটি সরবরাহ করা ভাল। লিঙ্কযুক্ত পৃষ্ঠাগুলি পরিবর্তিত হলে লিঙ্ক-শুধুমাত্র উত্তরগুলি অবৈধ হতে পারে। - পর্যালোচনা থেকে
রিক

@ স্টেফানবেকার লিঙ্কটি উত্তর নয় তবে প্রমাণ করার উত্স The skip login has been disabled by default due to security issues। উত্তর চেষ্টা হয় - --enable-skip-login। এটি সম্ভবত সেরা উত্তর নাও হতে পারে তবে এটি কেবল একটি লিঙ্ক উত্তর নয়।
derHugo

@ রিক লিঙ্কটি উত্তর নয় তবে এটি প্রমাণ করার উত্স The skip login has been disabled by default due to security issues। উত্তর চেষ্টা হয় - --enable-skip-login। এটি সম্ভবত সেরা উত্তর নাও হতে পারে তবে এটি কেবল একটি লিঙ্ক উত্তর নয়।
derHugo
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.