最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2022年04月01日 11:43:24   作者:癡者工良  
這篇文章介紹了Dashboard管理Kubernetes集群與API訪問配置的方法,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(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 是一個(gè) 管理 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)建后會(huì)在 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ò)默認(rèn)是 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 中,即可進(jìn)入控制臺(tái)。

RESTful API

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

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

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

注:使用 -k 可以忽略證書問題;k8smaster 是筆者配置 hosts 的,具體要以你的 主節(jié)點(diǎn) 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,只介紹幾個(gè)對調(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)限才能訪問,所以實(shí)際上用戶使用 kubectl 工具時(shí),也需要權(quán)限才能執(zhí)行命令。

kubectl auth can-i 命令用來確定一個(gè)用戶是否能夠訪問 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 這個(gè) API 來獲得權(quán)限信息資源,它將 API 服務(wù)器鑒權(quán)公開給外部服務(wù),其 API 說明文檔地址:

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

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

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

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

注解

我們可以使用 Kubernetes 注解為對象附加任意的非標(biāo)識(shí)的元數(shù)據(jù),注解使用 annotations 標(biāo)識(shí)。客戶端程序(例如工具和庫)能夠獲取這些元數(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ā)布鏡像時(shí)的信息、日志記錄等。

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

value=my test

重新查看 describe,可以看到:

Annotations:              description: my test

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

如果要?jiǎng)h除一個(gè) key:

kubectl annotate service kubernetes-dashboard description-

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

這是一個(gè)簡單的 YAML 文件:

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

k8s 的 YAML 必須包含四個(gè)部分:

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

配置

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

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

client 密鑰,就在這個(gè) config 文件的 client-certificate-data 字段中存儲(chǔ)。

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

key,在 client-key-data 字段中存儲(chǔ):

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

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

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

意思就是三個(gè)重要的 密鑰數(shù)據(jù),這里為了方便,分別使用 client、key、auth 三個(gè)變量存儲(chǔ)查詢的數(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

然后訪問的時(shí)候就可以通過證書安全地訪問 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)文章

  • Kubernetes關(guān)鍵組件與結(jié)構(gòu)組成介紹

    Kubernetes關(guān)鍵組件與結(jié)構(gòu)組成介紹

    這篇文章介紹了Kubernetes的關(guān)鍵組件與結(jié)構(gòu)組成,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-03-03
  • Dashboard管理Kubernetes集群與API訪問配置

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

    這篇文章介紹了Dashboard管理Kubernetes集群與API訪問配置的方法,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-04-04
  • Kubernetes控制節(jié)點(diǎn)的部署

    Kubernetes控制節(jié)點(diǎn)的部署

    這篇文章介紹了Kubernetes控制節(jié)點(diǎn)的部署,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-04-04
  • kubernetes數(shù)據(jù)持久化PV?PVC深入分析詳解

    kubernetes數(shù)據(jù)持久化PV?PVC深入分析詳解

    這篇文章主要為大家介紹了kubernetes數(shù)據(jù)持久化PV?PVC分析詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • kubernetes中的namespace、node、pod介紹

    kubernetes中的namespace、node、pod介紹

    這篇文章介紹了kubernetes中的namespace、node、pod,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-03-03
  • Kubernetes集群的組成介紹

    Kubernetes集群的組成介紹

    這篇文章介紹了Kubernetes集群的組成,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-03-03
  • Kubernetes Informer數(shù)據(jù)存儲(chǔ)Index與Pod分配流程解析

    Kubernetes Informer數(shù)據(jù)存儲(chǔ)Index與Pod分配流程解析

    這篇文章主要為大家介紹了Kubernetes Informer數(shù)據(jù)存儲(chǔ)Index與Pod分配流程解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • k8s集群部署時(shí)etcd容器不停重啟問題以及處理詳解

    k8s集群部署時(shí)etcd容器不停重啟問題以及處理詳解

    一次在k8s集群中創(chuàng)建實(shí)例發(fā)現(xiàn)etcd集群狀態(tài)出現(xiàn)連接失敗狀況,導(dǎo)致創(chuàng)建實(shí)例失敗,下面這篇文章主要給大家介紹了關(guān)于k8s集群部署時(shí)etcd容器不停重啟問題以及處理的相關(guān)資料,需要的朋友可以參考下
    2023-01-01
  • Kubernetes Visitor設(shè)計(jì)模式及發(fā)送pod創(chuàng)建請求解析

    Kubernetes Visitor設(shè)計(jì)模式及發(fā)送pod創(chuàng)建請求解析

    這篇文章主要為大家介紹了Kubernetes Visitor設(shè)計(jì)模式及發(fā)送pod創(chuàng)建請求解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • CKAD認(rèn)證中部署k8s并配置Calico插件

    CKAD認(rèn)證中部署k8s并配置Calico插件

    這篇文章介紹了CKAD認(rèn)證中部署k8s并配置Calico插件的方法,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-03-03

最新評(píng)論

巫溪县| 龙游县| 沐川县| 肇庆市| 友谊县| 邛崃市| 谢通门县| 登封市| 玉龙| 奉新县| 时尚| 基隆市| 伊春市| 阿拉善左旗| 古蔺县| 江孜县| 百色市| 山东省| 兴业县| 聊城市| 日照市| 涟水县| 宜兰县| 南乐县| 兰坪| 仁化县| 右玉县| 溆浦县| 襄垣县| 高陵县| 交城县| 金昌市| 克拉玛依市| 汽车| 田林县| 疏勒县| 湖口县| 桃园市| 光泽县| 习水县| 东丽区|