国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【Kubernetes運維篇】RBAC認證授權(quán)詳解(一)

這篇具有很好參考價值的文章主要介紹了【Kubernetes運維篇】RBAC認證授權(quán)詳解(一)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一、RBAC授權(quán)認證理論知識

1、什么是RBAC授權(quán)?

RBAC是一種基于角色訪問控制方式,它將權(quán)限和角色相關(guān)聯(lián),用戶加入到角色中,就會擁有角色中的權(quán)限,RBAC的核心思想是,將權(quán)限賦予給角色,角色中加入多個用戶,加入進來的用戶會具有角色的權(quán)限,如果修改權(quán)限也是針對角色進行操作,而不是針對每個用戶進行權(quán)限操作,這樣效率太低了。

【Kubernetes運維篇】RBAC認證授權(quán)詳解(一),# 3-Kubernetes容器編排,kubernetes,運維,RBAC授權(quán),K8S準入控制,serviceaccount,useraccount

2、認證基本流程

第一步:認證,針對用戶做認證,判斷用戶是否符合要求

K8S中主要通過APIservice對外提供服務(wù),那么就需要針對apiserver做用戶認證,如果任何用戶都可以訪問apiserver,那么就可以隨意在K8S集群中創(chuàng)建、刪除等操作,這就很危險了,也容易遭到黑客的攻擊,所以我們需要針對apiserver做用戶授權(quán)認證,確保是合法符合要求的用戶。

第二步:授權(quán),認證通過,針對用戶做權(quán)限控制,賦予那些權(quán)限

認證通過后僅僅表示此用戶是被apiserver進行的用戶,可以訪問apiserver,但是不一定擁有刪除資源,創(chuàng)建資源的權(quán)限,需要進行授權(quán)操作,常見的授權(quán)方式有rbac授權(quán)。

第三步:準入控制

用戶認證授權(quán)通過后,最后一步就是準入控制,K8S提供多種準入控制,有點類似于插件,為apiserver提供更好的 “可拓展性”。請求apiserver時,通過認證,鑒權(quán)后、持久化(api對象,保存到etcd前),會經(jīng)過"準入控制",它可以做變更和驗證。

比如:如果我們創(chuàng)建Pod時定義了資源上下限制,但不滿足LimitRange規(guī)則中定義的資源上下限制,此時LimitRange就會拒絕我們的請求,假如我們定義了一個名稱空間叫test,這個名稱空間做下資源限制:限制最多可以使用10vCPU、10Gi內(nèi)存,在這個名稱空間下創(chuàng)建的所有Pod都不能超過這個限制。

3、K8S客戶端訪問apiserver的認證幾方式

1、第一種:客戶端認證

客戶端認證也稱雙向TLS認證,kubectl在訪問apiserver的時候,apiserver要經(jīng)過CA認證kubectl用戶是否合法的,如下圖:

【Kubernetes運維篇】RBAC認證授權(quán)詳解(一),# 3-Kubernetes容器編排,kubernetes,運維,RBAC授權(quán),K8S準入控制,serviceaccount,useraccount

2、第二種:Bearertoken方式

Bearetoken方式,可以理解為apiserver將一個密碼通過非對稱加密方式告訴你了kubectl,然后通過該密碼進行相互訪問,如下圖:

【Kubernetes運維篇】RBAC認證授權(quán)詳解(一),# 3-Kubernetes容器編排,kubernetes,運維,RBAC授權(quán),K8S準入控制,serviceaccount,useraccount

3、第三種:Serviceaccount方式

上面客戶端認證、Bearertoken都是外部訪問apiserver的時候使用的方式,而Serviceaccount這種方式是內(nèi)部訪問Pod和apiserver交互采用的一種方式。

Serviceaccount包括了Namespace、Token、CA、且通過目錄掛載的方式給予Pod,當(dāng)Pod運行起來的時候,會讀取到這些信息,從而使用該方式和apiserver進行通信,如下圖:

【Kubernetes運維篇】RBAC認證授權(quán)詳解(一),# 3-Kubernetes容器編排,kubernetes,運維,RBAC授權(quán),K8S準入控制,serviceaccount,useraccount

當(dāng)我們使用kubectl操作K8S資源時,需要確定我們使用那個用戶進行1訪問那個K8S集群,kubectl操作默認讀取 /root/.kube/config文件,也可以使用 kubectl config view 命令進行差看config文件內(nèi)容。

如果config文件沒有在/root/.kube/config ,可以使用 --kubeconfig 參數(shù)進行指定文件位置:

kubectl get nodes --kubeconfig=/root/.kube/config 

config文件內(nèi)容如下:

【Kubernetes運維篇】RBAC認證授權(quán)詳解(一),# 3-Kubernetes容器編排,kubernetes,運維,RBAC授權(quán),K8S準入控制,serviceaccount,useraccount

4、RBAC授權(quán)常見角色綁定方式

1、第一種:用戶基于RoleBinding綁定到Role上

特點:RoleBinding是具有名稱空間限制的,這種方式只限定在Rolebinding的名稱空間下,如下圖:

【Kubernetes運維篇】RBAC認證授權(quán)詳解(一),# 3-Kubernetes容器編排,kubernetes,運維,RBAC授權(quán),K8S準入控制,serviceaccount,useraccount

2、第二種:用戶基于RoleBinding綁定到ClusterRole上

特點:沒有名稱空間限制,如下圖:

【Kubernetes運維篇】RBAC認證授權(quán)詳解(一),# 3-Kubernetes容器編排,kubernetes,運維,RBAC授權(quán),K8S準入控制,serviceaccount,useraccount

3、第三種:用戶基于ClusterRoleBinding綁定到ClusterRole上

特點:對任何名稱空間下用戶都具有ClusteRrole所具有的權(quán)限,如下圖:

【Kubernetes運維篇】RBAC認證授權(quán)詳解(一),# 3-Kubernetes容器編排,kubernetes,運維,RBAC授權(quán),K8S準入控制,serviceaccount,useraccount

5、準入控制插件基本介紹

官方中文參考文檔

在K8S中準入控制器的模塊有很多,其中比較常用的有LimitRanger、ResourceQuota、ServiceAccount,也是K8S默認啟用的準入模塊(具體看K8S版本),我們只需要定義對應(yīng)的規(guī)則即可。

如果是使用kubeadm方式搭建的K8S集群,我們可以修改 /etc/kubernetes/manifests/kube-apiserver.yaml文件中--enable-admission-plugins 參數(shù)定義使用的準入插件,多個使用逗號隔開,改完重啟kubelet即可生效。

二、Useraccount、Serviceaccount基本使用

1、Useraccount、Serviceaccount介紹

Useraccount:用戶賬戶,是給K8S集群外部用戶使用的,如kubectl訪問K8S集群要用useraccount用戶,kubeadm搭建的K8s集群默認useraccount用戶是kubernetes-admin。

apiserver需要對客戶端做認證,使用kubeadm安裝的K8s,會在用戶家目錄下創(chuàng)建一個認證配置文件 .kube/config 這里面保存了客戶端訪問API Server的密鑰相關(guān)信息,這樣當(dāng)用kubectl訪問k8s時,它就會自動讀取該配置文件,向API Server發(fā)起認證,然后完成操作請求。

Serviceaccount:服務(wù)賬戶,是給Pod使用的賬戶,就是在Pod容器內(nèi)可以訪問到apiserver,serviceaccount僅局限它所在的名稱空間,每個名稱空間創(chuàng)建是都會自動創(chuàng)建一個默認的serviceaccount,在創(chuàng)建Pod時,指定了此名稱空間,且沒有指定serviceaccount,那么這個Pod會使用此名稱空間下默認的serviceaccount。

如下圖,是在創(chuàng)建Pod時沒有指定serviceaccount,會使用名稱空間下默認的serviceaccount。

【Kubernetes運維篇】RBAC認證授權(quán)詳解(一),# 3-Kubernetes容器編排,kubernetes,運維,RBAC授權(quán),K8S準入控制,serviceaccount,useraccount

2、案例:創(chuàng)建ServiceAccount綁定到Pod

第一步:創(chuàng)建名為sa-test的ServiceAccount

 kubectl create sa sa-test

第二步:創(chuàng)建Pod指定ServiceAccount

cat sa-test.yaml 
---
apiVersion: v1
kind: Pod
metadata:
  name: sa-test
  namespace: default
spec:
  serviceAccountName: sa-test  # 指定sa
  containers:
  - name: sa-nginx
    image: nginx
    imagePullPolicy: IfNotPresent
kubectl apply -f sa-test.yaml

第三步:進入容器測試是否可以調(diào)用apiserver接口

kubectl exec -it sa-test  -- /bin/bash

指定sa后證書存放在/var/run/secrets/kubernetes.io/serviceaccount/目錄

cd /var/run/secrets/kubernetes.io/serviceaccount/
ls
ca.crt	namespace  token

我們指定證書調(diào)用apiserver接口

curl --cacert ./ca.crt -H "Authorization: Bearer $(cat ./token)" https://kubernetesapi/v1/namespaces/kube-system

返回信息如下:就是被拒絕訪問了,原因是我們只創(chuàng)建了sa用戶,沒進行授權(quán)

【Kubernetes運維篇】RBAC認證授權(quán)詳解(一),# 3-Kubernetes容器編排,kubernetes,運維,RBAC授權(quán),K8S準入控制,serviceaccount,useraccount

第四步:對sa做授權(quán),然后在進行訪問

創(chuàng)建一個 ClusterRoleBinding(集群角色綁定)來授予名為 sa-test 的服務(wù)賬號在 default 命名空間下?lián)碛?cluster-admin 集群角色的權(quán)限。通過這個綁定,sa-test 可以在整個集群中擁有最高權(quán)限,包括對集群節(jié)點、命名空間、Pod 等資源的管理權(quán)限。

kubectl create clusterrolebinding sa-test-admin --clusterrole=cluster-admin  --serviceaccount=default:sa-test

進入容器在請求一下:

kubectl exec -it sa-test  -- /bin/bash
cd /var/run/secrets/kubernetes.io/serviceaccount/

curl --cacert ./ca.crt -H "Authorization: Bearer $(cat ./token)" https://kubernetesapi/v1/namespaces/kube-system

進行授權(quán)后就可以訪問到apiserver接口了如下圖:

【Kubernetes運維篇】RBAC認證授權(quán)詳解(一),# 3-Kubernetes容器編排,kubernetes,運維,RBAC授權(quán),K8S準入控制,serviceaccount,useraccount

由于RBAC授權(quán)內(nèi)容較多,分兩次進行講解,請關(guān)下篇文章,感謝支持~文章來源地址http://www.zghlxwxcb.cn/news/detail-596401.html

到了這里,關(guān)于【Kubernetes運維篇】RBAC認證授權(quán)詳解(一)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 【Kubernetes運維篇】ingress-nginx實現(xiàn)業(yè)務(wù)灰度發(fā)布詳解

    【Kubernetes運維篇】ingress-nginx實現(xiàn)業(yè)務(wù)灰度發(fā)布詳解

    1、場景一:將新版本灰度給部分用戶 假設(shè)線上運行了一套對外提供 7 層服務(wù)的 Service A 服務(wù),后來開發(fā)了個新版本 Service AA需要上線,但不想直接替換掉原來的 Service A,希望先灰度一小部分用戶,等運行一段時間足夠穩(wěn)定了再逐漸全量上線新版本,最后平滑下線舊版本。 這

    2024年02月15日
    瀏覽(23)
  • K8s RBAC認證授權(quán)深度解析

    K8s RBAC認證授權(quán)深度解析

    ? ??明明跟你說過:個人主頁 ??個人專欄:《Kubernetes航線圖:從船長到K8s掌舵者》??? ??行路有良友,便是天堂?? 目錄 一、前言 1、k8s簡介 2、RBAC簡介? 二、RBAC核心概念 1、角色(Role)與集群角色(ClusterRole) 2、角色綁定(RoleBinding)與集群角色綁定(ClusterRoleBindin

    2024年04月28日
    瀏覽(26)
  • 【容器編排】初識 Kubernetes

    【容器編排】初識 Kubernetes

    目錄 1.簡介 2.為什么需要 k8s 3.k8s 能做什么? 4.k8s 不是什么? 1.簡介 摘取官網(wǎng): 概述 | Kubernetes ????????Kubernetes 這個名字源于希臘語,意為 舵手 或 飛行員 。k8s 這個縮寫是因為 k 和 s 之間有八個字符的關(guān)系。 Google 在 2014 年開源了 Kubernetes 項目。 Kubernetes 建立在 Google 大規(guī)模

    2024年02月14日
    瀏覽(24)
  • 【云原生】容器編排工具Kubernetes

    【云原生】容器編排工具Kubernetes

    目錄 一、 K8S介紹 官網(wǎng)地址: 1.1docker編排與k8s編排相比 1.2特性 1.3功能 二、K8S重要組件 2.1核心組件 (1)Kube-apiserver (2)Kube-controller-manager (3)Kube-scheduler (4)Node ①kubelet ②kube-proxy ③docker (5)etcd 2.2Kubernetes工作原理 三、Pod 3.1 Pod控制器 (1)Deployment (2)ReplicaSet (3)

    2024年02月09日
    瀏覽(32)
  • 【云原生】Kubernetes容器編排工具

    【云原生】Kubernetes容器編排工具

    目錄 1. K8S介紹 1.1 k8s的由來 下載地址 1.2 docker編排與k8s編排相比 1.3 傳統(tǒng)后端部署與k8s 的對比 傳統(tǒng)部署 k8s部署? ?2. k8s的集群架構(gòu)與組件 (1) Kube-apiserver (2)Kube-controller-manager? (3)Kube-scheduler?? 2.2?k8s的配置存儲中心 2.3? k8s的Node 組件? ?(1)Kubelet? ?(2)Kube-Proxy?

    2024年02月10日
    瀏覽(24)
  • 容器編排的未來:探索基于Kubernetes的微服務(wù)編排解決方案

    容器編排的未來:探索基于Kubernetes的微服務(wù)編排解決方案

    作者:禪與計算機程序設(shè)計藝術(shù) 當(dāng)今的云計算環(huán)境下,容器技術(shù)正在成為主流,越來越多的公司選擇基于容器技術(shù)實現(xiàn)應(yīng)用部署及運行。容器編排技術(shù)也逐漸被普遍采用。通過容器編排工具可以將復(fù)雜的分布式系統(tǒng)架構(gòu)部署、管理及擴展起來,從而提供一個高可用、易于維護

    2024年02月14日
    瀏覽(27)
  • Docker和Kubernetes:構(gòu)建現(xiàn)代應(yīng)用容器編排系統(tǒng)

    作者:禪與計算機程序設(shè)計藝術(shù) Docker是一個開源的應(yīng)用容器引擎,可以輕松打包、部署及運行應(yīng)用程序。Kubernetes(簡稱K8s)是一個開源的,用于管理云平臺中多個主機上的容器化的應(yīng)用的容器集群管理系統(tǒng)。通過對Docker和Kubernetes的結(jié)合,能夠更高效地自動化地部署和管理容

    2024年02月07日
    瀏覽(37)
  • 【容器化應(yīng)用程序設(shè)計和開發(fā)】2.2 容器編排和Kubernetes調(diào)度

    往期回顧: 第一章:【云原生概念和技術(shù)】 第二章:2.1 容器化基礎(chǔ)知識和Docker容器 第二章:2.2 Dockerfile 的編寫和最佳實踐 容器編排是指自動化部署、管理和運行容器化應(yīng)用程序的過程。Kubernetes 是一個流行的容器編排平臺,它提供了一種自動化的方式來創(chuàng)建、部署和管理容

    2024年02月03日
    瀏覽(27)
  • 容器編排工具的比較:Kubernetes、Docker Swarm、Nomad

    容器編排工具的比較:Kubernetes、Docker Swarm、Nomad

    隨著容器化技術(shù)的普及,容器編排工具成為了現(xiàn)代應(yīng)用部署和管理的重要組成部分。容器編排工具能夠自動化容器的部署、擴展和管理,從而提高應(yīng)用的可靠性和可伸縮性。在眾多的容器編排工具中,Kubernetes、Docker Swarm和Nomad是三個備受關(guān)注的主要候選。本文將對這三個工具

    2024年02月09日
    瀏覽(31)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包