欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Dashboard管理Kubernetes集群與API訪問配置

 更新時間:2022年04月01日 11:43:24   作者:癡者工良  
這篇文章介紹了Dashboard管理Kubernetes集群與API訪問配置的方法,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

Kubectl 命令大全

下面列出了 kubectl 的所有命令以及其縮寫形式,供翻閱查詢。

kubectl 命令格式:

kubectl [command] [type] [Name] [flag]
allevents (ev)podsecuritypolicies (psp)
certificatesigningrequests (csr)horizontalpodautoscalers (hpa)podtemplates
clusterrolebindingsingresses (ing)replicasets (rs)
clusterrolesjobsreplicationcontrollers (rc)
clusters (valid only for federation apiservers)limitranges (limits)resourcequotas (quota)
componentstatuses (cs)namespaces (ns)rolebindings
configmaps (cm)networkpolicies (netpol)roles
controllerrevisionsnodes (no)secrets
cronjobspersistentvolumeclaims (pvc)serviceaccounts (sa)
customresourcedefinition (crd)persistentvolumes (pv)services (svc)
daemonsets (ds)poddisruptionbudgets (pdb)statefulsets
deployments (deploy)podpresetstorageclasses
endpoints (ep)pods (po) 

安裝 Kubernetes-Dashboard

Kubernetes-Dashboard 是一個 管理 Kubernetes 集群的 Web UI,跟 kubectl 一樣,其后端是 API-Server,使用在線的 YAML 文件部署 Kubernetes-Dashboard :

kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.2.0/aio/deploy/recommended.yaml

dashboard 創(chuàng)建后會在 kubernetes-dashboard 命名空間中。

root@instance-1:~# kubectl get pods --namespace=kubernetes-dashboard
NAME                                         READY   STATUS    RESTARTS   AGE
dashboard-metrics-scraper-856586f554-4nd9v   1/1     Running   0          9d
kubernetes-dashboard-78c79f97b4-288js        1/1     Running   0          9d

root@instance-1:~# kubectl get services --namespace=kubernetes-dashboard
NAME                            TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)         AGE
dashboard-metrics-scraper       ClusterIP   10.98.50.123     <none>        8000/TCP        9d
kubernetes-dashboard            NodePort    10.111.44.44     <none>        443/TCP   9d

由于其網(wǎng)絡(luò)默認是 NodePort 的方式,沒有配置外界打開,所以為了能夠被外界訪問,可以修改其 service:

kubectl edit service kubernetes-dashboard --namespace=kubernetes-dashboard
  ports:
  - nodePort: 30633
    port: 443
    protocol: TCP
    targetPort: 8443
  selector:
    k8s-app: kubernetes-dashboard
  sessionAffinity: None
  type: NodePort

或者把 type 修改為 LoadBalancer。

在集群內(nèi)網(wǎng)可以通過 443 訪問,在外網(wǎng)可以通過 30633 訪問,訪問方式是 https。

可以看到,訪問方式有 Token 和配置文件方式(kubeconfing),這兩者后面再講。

通過下面這條命令我們可以查看 Token:

kubectl -n kube-system describe $(kubectl -n kube-system get secret -n kube-system -o name | grep namespace) | grep token

復(fù)制,填寫到 Web UI 中,即可進入控制臺。

RESTful API

我們可以集群中的任意節(jié)點訪問 API-Server ,其端口是 6443。

API 可以使用 Token 和 證書方式 進行認證,我們可以使用上一小節(jié)查詢出來的 token,對 API 進行訪問:

curl https://k8smaster:6443/api/v1/pods -k --header "Authorization: bearer {此處填寫你的token}"

注:使用 -k 可以忽略證書問題;k8smaster 是筆者配置 hosts 的,具體要以你的 主節(jié)點 ip為準(zhǔn)。

也可以使用證書訪問 API,其格式如下:

curl --cert /tmp/client.pem --key /tmp/client-key.pem \
--cacert /tmp/ca.pem -v -XGET \ 
https://k8smaster:6443/api/v1/pods

這里不多介紹 k8s 的 API,只介紹幾個對調(diào)試有用的 API。

GET /api/v1/namespaces/{namespace}/pods/{name}/exec

GET /api/v1/namespaces/{namespace}/pods/{name}/log

GET /api/v1/watch/namespaces/{namespace}/pods/{name}

鑒權(quán)

由于 API-Server 需要一定權(quán)限才能訪問,所以實際上用戶使用 kubectl 工具時,也需要權(quán)限才能執(zhí)行命令。

kubectl auth can-i 命令用來確定一個用戶是否能夠訪問 API。

如果要確定當(dāng)前用戶是否有權(quán)限訪問 deployments,可以使用:

kubectl auth can-i create deployments
kubectl auth can-i {命令}

如果要檢查其它用戶是否有權(quán)限,可以使用 --as

kubectl auth can-i create deployments --as ddddd
kubectl auth can-i create deployments --as ddddd --namespace kube-system

為了更加方便地獲得權(quán)限,我們可以使用 SelfSubjectAccessReview 這個 API 來獲得權(quán)限信息資源,它將 API 服務(wù)器鑒權(quán)公開給外部服務(wù),其 API 說明文檔地址:

https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.21/#selfsubjectaccessreview-v1-authorization-k8s-io

另外還有三個相關(guān)的 API:

  • SubjectAccessReview - 對任意用戶的訪問進行評估,而不僅僅是當(dāng)前用戶。 當(dāng)鑒權(quán)決策被委派給 API 服務(wù)器時很有用。例如,kubelet 和擴展 API 服務(wù)器使用 它來確定用戶對自己的 API 的訪問權(quán)限。
  • LocalSubjectAccessReview - 與 SubjectAccessReview 類似,但僅限于特定的 名字空間。
  • SelfSubjectRulesReview - 返回用戶可在名字空間內(nèi)執(zhí)行的操作集的審閱。 用戶可以快速匯總自己的訪問權(quán)限,或者用于 UI 中的隱藏/顯示動作。

這里只需要了解,不需要深入。

注解

我們可以使用 Kubernetes 注解為對象附加任意的非標(biāo)識的元數(shù)據(jù),注解使用 annotations 標(biāo)識。客戶端程序(例如工具和庫)能夠獲取這些元數(shù)據(jù)信息。

我們查看 dashboard 的相關(guān) annotations :

kubectl describe services -n kubernetes-dashboard
... ...
Labels:                   k8s-app=kubernetes-dashboard
Annotations:              <none>
... ...

annotations 由 key/value 組成,類似 label,但是 annotations 支持一些特殊字符,可以用作構(gòu)建發(fā)布鏡像時的信息、日志記錄等。

kubectl annotate service kubernetes-dashboard -n kubernetes-dashboard description='my test'
key=description

value=my test

重新查看 describe,可以看到:

Annotations:              description: my test

如果要覆蓋 key 的值,需要加上 --overwrite 。

如果要刪除一個 key:

kubectl annotate service kubernetes-dashboard description-

Pod YAML 結(jié)構(gòu)

這是一個簡單的 YAML 文件:

apiVersion: v1
kind: Pod
metadata:
    name: firstpod
spec:
    containers:
    - image: nginx
      name: stan 

k8s 的 YAML 必須包含四個部分:

  • apiVersion:API 組的版本
  • kind:創(chuàng)建的對象類型
  • metadata:元數(shù)據(jù),name 字段必填
  • spec:怎么創(chuàng)建對象,如果是 pod,則 container 必填。

配置

在 $HOME/.kube/config 文件中存儲了 Kubernetes 的配置信息,可以直接打開文件查看,也可以通過 kubectl config view 查看(只顯示部分信息)。

前面我們訪問 API 時,使用了 token,現(xiàn)在我們可以通過這個 config,來創(chuàng)建證書文件,通過證書訪問。。

client 密鑰,就在這個 config 文件的 client-certificate-data 字段中存儲。

grep client-cert $HOME/.kube/config |cut -d" " -f 6

key,在 client-key-data 字段中存儲:

grep client-key-data $HOME/.kube/config |cut -d " " -f 6

API-Server 的公鑰(auth),就在 certificate-authority-data 字段中存儲:

grep certificate-authority-data $HOME/.kube/config |cut -d " " -f 6

意思就是三個重要的 密鑰數(shù)據(jù),這里為了方便,分別使用 client、key、auth 三個變量存儲查詢的數(shù)據(jù)。

export client=(grep client-cert $HOME/.kube/config |cut -d" " -f 6)
export key=(grep client-key-data $HOME/.kube/config |cut -d " " -f 6)
export auth=(grep certificate-authority-data $HOME/.kube/config |cut -d " " -f 6)

創(chuàng)建證書文件:

echo $client | base64 -d - > ./client.pems
echo $key | base64 -d - > ./client-key.pem
echo $auth | base64 -d - > ./ca.pem

然后訪問的時候就可以通過證書安全地訪問 API-Server:

curl --cert ./client.pem --key ./client-key.pem --cacert ./ca.pem https://k8smaster:6443/api/v1/pod

到此這篇關(guān)于Dashboard管理Kubernetes集群與API訪問配置的文章就介紹到這了。希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • CentOS 出現(xiàn)no space left on device錯誤解決辦法

    CentOS 出現(xiàn)no space left on device錯誤解決辦法

    這篇文章主要介紹了CentOS 出現(xiàn)no space left on device錯誤解決辦法的相關(guān)資料,需要的朋友可以參考下
    2017-04-04
  • Docker與K8s關(guān)系介紹不會Docker也可以使用K8s

    Docker與K8s關(guān)系介紹不會Docker也可以使用K8s

    想學(xué)K8s,必須得先學(xué)會Docker嗎?這是很多網(wǎng)友在開始有想法想要學(xué)?K8s的時候都會冒出來的想法,要回答這個問題,我們需要先搞清楚?Docker?和?K8s?他們的角色是什么,相互之間是什么關(guān)系
    2022-06-06
  • 部署k8s集群的超詳細實踐步驟

    部署k8s集群的超詳細實踐步驟

    k8s是一個可移植的、可擴展的開源平臺,用于管理容器化的工作負載和服務(wù),可以促進聲明式配置和自動化,下面這篇文章主要給大家介紹了關(guān)于部署k8s集群的實踐步驟,文中通過圖文介紹的非常詳細,需要的朋友可以參考下
    2022-08-08
  • kubectl操作命令及使用說明總結(jié)

    kubectl操作命令及使用說明總結(jié)

    這篇文章主要為大家介紹了kubectl操作命令及使用說明總結(jié),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-03-03
  • Kubernetes kubectl中Pod創(chuàng)建流程源碼解析

    Kubernetes kubectl中Pod創(chuàng)建流程源碼解析

    這篇文章主要為大家介紹了Kubernetes kubectl中Pod創(chuàng)建流程源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-11-11
  • Kubernetes(K8S)容器集群管理環(huán)境完整部署詳細教程-上篇

    Kubernetes(K8S)容器集群管理環(huán)境完整部署詳細教程-上篇

    本系列文章主要介紹了Kubernetes(K8S)容器集群管理環(huán)境完整部署的詳細教程,分為上中下三篇文章,此為上篇,需要的朋友可以參考下
    2022-01-01
  • 配置Kubernetes外網(wǎng)訪問集群

    配置Kubernetes外網(wǎng)訪問集群

    這篇文章介紹了配置Kubernetes外網(wǎng)訪問集群的方法,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-03-03
  • Kubernetes ApiServer三大server權(quán)限與數(shù)據(jù)存儲解析

    Kubernetes ApiServer三大server權(quán)限與數(shù)據(jù)存儲解析

    這篇文章主要為大家介紹了Kubernetes ApiServer三大server權(quán)限與數(shù)據(jù)存儲解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-11-11
  • 使用kubeadm命令行工具創(chuàng)建kubernetes集群

    使用kubeadm命令行工具創(chuàng)建kubernetes集群

    這篇文章介紹了使用kubeadm命令行工具創(chuàng)建kubernetes集群的方法,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-03-03
  • Kubernetes(K8S)容器集群管理環(huán)境完整部署詳細教程-下篇

    Kubernetes(K8S)容器集群管理環(huán)境完整部署詳細教程-下篇

    本系列文章主要介紹了Kubernetes(K8S)容器集群管理環(huán)境完整部署的詳細教程,分為上中下三篇文章,此為中篇,主要講解了K8S部署metrics-server插件,K8S部署集群dashboard插件,K8S部署集群coredns插件,K8S部署kube-state-metrics插件,K8S部署harbor私有倉庫
    2022-01-01

最新評論