K8s 身份認證和權限

文章目錄

  • K8s 身份認證和權限
    • 認證
      • Service Accounts
      • Service Account Admission Controller
      • Token Controller
      • Service Account Controller
    • 授權(RBAC)
      • Role
      • ClusterRole
      • RoleBinding
      • ClusterRoleBinding

K8s 身份認證和權限

Kubernetes 中提供了良好的多租戶認證管理機制,如 RBAC、ServiceAccount 還有各種策略等。

通過該文件可以看到已經配置了 RBAC 訪問控制

/usr/lib/systemd/system/kube-apiserver.service

認證

所有 Kubernetes 集群有兩類用戶:由 Kubernetes 管理的Service Accounts (服務賬戶)和(Users Accounts) 普通賬戶。

普通賬戶是假定被外部或獨立服務管理的,由管理員分配 keys,用戶像使用 Keystone 或 google 賬號一樣,被存儲在包含 usernames 和 passwords 的 list 的文件里。

需要注意:在 Kubernetes 中不能通過 API 調用將普通用戶添加到集群中

  • 普通帳戶是針對(人)用戶的,服務賬戶針對 Pod 進程。
  • 普通帳戶是全局性。在集群所有namespaces中,名稱具有惟一性。
  • 通常,群集的普通帳戶可以與企業數據庫同步,新的普通帳戶創建需要特殊權限。服務賬戶創建目的是更輕量化,允許集群用戶為特定任務創建服務賬戶。
  • 普通帳戶和服務賬戶的審核注意事項不同。
  • 對于復雜系統的配置包,可以包括對該系統的各種組件的服務賬戶的定義。

Service Accounts

服務賬號以 ServiceAccount 對象的形式存在于 API 服務器中。服務賬號具有以下屬性:

  • 名字空間限定: 每個服務賬號都與一個 Kubernetes 名字空間綁定。 每個名字空間在創建時,會獲得一個名為 default 的 ServiceAccount。

  • 輕量級: 服務賬號存在于集群中,并在 Kubernetes API 中定義。你可以快速創建服務賬號以支持特定任務。

  • 可移植性: 復雜的容器化工作負載的配置包中可能包括針對系統組件的服務賬號定義。 服務賬號的輕量級性質和名字空間作用域的身份使得這類配置可移植。

服務賬號與用戶賬號不同,用戶賬號是集群中通過了身份認證的人類用戶。默認情況下, 用戶賬號不存在于 Kubernetes API 服務器中;相反,API 服務器將用戶身份視為不透明數據。 你可以使用多種方法認證為某個用戶賬號。某些 Kubernetes 發行版可能會添加自定義擴展 API 來在 API 服務器中表示用戶賬號。

Service Account Admission Controller

通過 Admission Controller 插件來實現對 pod 修改,它是 apiserver 的一部分。創建或更新 pod 時會同步進行修改 pod。當插件處于激活狀態(在大多數發行版中都默認情況)創建或修改 pod 時,會按以下操作執行:

  1. 如果 pod 沒有設置 ServiceAccount,則將 ServiceAccount 設置為 default。
  2. 確保 pod 引用的 ServiceAccount 存在,否則將會拒絕請求。
  3. 如果 pod 不包含任何 ImagePullSecrets,則將ServiceAccount 的 ImagePullSecrets 會添加到 pod 中。
  4. 為包含 API 訪問的 Token 的 pod 添加了一個 volume。
  5. 把 volumeSource 添加到安裝在 pod 的每個容器中,掛載在 /var/run/secrets/kubernetes.io/serviceaccount。

Token Controller

TokenController 作為 controller-manager 的一部分運行。異步執行:

  • 觀察 serviceAccount 的創建,并創建一個相應的 Secret 來允許 API 訪問。
  • 觀察 serviceAccount 的刪除,并刪除所有相應的ServiceAccountToken Secret
  • 觀察 secret 添加,并確保關聯的 ServiceAccount 存在,并在需要時向 secret 中添加一個 Token。
  • 觀察 secret 刪除,并在需要時對應 ServiceAccount 的關聯

Service Account Controller

Service Account Controller 在 namespaces 里管理ServiceAccount,并確保每個有效的 namespaces 中都存在一個名為 “default” 的 ServiceAccount。

授權(RBAC)

Role

代表一個角色,會包含一組權限,沒有拒絕規則,只是附加允許。它是 Namespace 級別的資源,只能作用與 Namespace 之內。

# 查看已有的角色信息
kubectl get role -n ingress-nginx -oyaml

demo文件

apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:labels:app.kubernetes.io/name: ingress-nginxapp.kubernetes.io/part-of: ingress-nginxname: nginx-ingressnamespace: ingress-nginx
roles:
- apiGroups:- ""resources:- configmaps- pods- secrets- namespacesverbs:- get
- apiGroups:- ""resourceNames:- ingress-controller-label-nginxresources:- configmapsverbs:- get- update
- apiGroups:- ""resources:- configmapsverbs:- create

ClusterRole

功能與 Role 一樣,區別是資源類型為集群類型,而 Role 只在 Namespace

# 查看某個集群角色的信息
kubectl get clusterrole view -oyaml

RoleBinding

Role 或 ClusterRole 只是用于制定權限集合,具體作用與什么對象上,需要使用 RoleBinding 來進行綁定。

作用于 Namespace 內,可以將 Role 或 ClusterRole 綁定到 User、Group、Service Account 上。

# 查看 rolebinding 信息
kubectl get rolebinding --all-namespaces# 查看指定 rolebinding 的配置信息
kubectl get rolebinding <role_binding_name> --all-namespaces -oyaml

demo

apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:......
roleRef:apiGroup: rbac.authorization.k8s.iokind: Rolename: nginx-ingress
subjects:
- kind: ServiceAccountname: nginx-ingress-serviceaccountnamespace: ingress-nginx

ClusterRoleBinding

與 RoleBinding 相同,但是作用于集群之上,可以綁定到該集群下的任意 User、Group 或 Service Account

注:這塊內容更多是需要運維人員去處理,對于開發,有一定理論基礎即可,后期要用再深究吧

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/14847.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/14847.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/14847.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

二叉樹的鏈式結構

1.二叉樹的遍歷 2.二叉樹鏈式結構的實現 3.解決單值二叉樹題 1.二叉樹的遍歷 1.1前序&#xff0c;中序以及后序遍歷 二叉樹的遍歷是按照某種特定的規則&#xff0c;依次對二叉樹的結點進行相應的操作&#xff0c;并且每個結點只操作一次。 二叉樹的遍歷有這些規則&#xff…

主流電商平臺商品實時數據采集API接口||抖音電商數據分析實例|可視化

— 1 — 抖音電商數據【抖音電商API數據采集】分析場景 1. 這里&#xff0c;我們選擇“伊利”這個品牌作為案例進行分析&#xff0c;在短短的4個月里&#xff0c;從最初每月營收17.07萬&#xff0c;到6月份達到了2485.54 萬&#xff0c;伊利的牛奶&#xff0c;有點牛&#xff…

Spring 對 Junit4,Junit5 的支持上的運用

1. Spring 對 Junit4,Junit5 的支持上的運用 文章目錄 1. Spring 對 Junit4,Junit5 的支持上的運用每博一文案2. Spring對Junit4 的支持3. Spring對Junit5的支持4. 總結&#xff1a;5. 最后&#xff1a; 每博一文案 關于理想主義&#xff0c;在知乎上看到一句話&#xff1a;“…

在Windows下訪問WSL(Windows Subsystem for Linux)文件夾

在Windows下訪問WSL&#xff08;Windows Subsystem for Linux&#xff09;文件夾&#xff0c;可以按照以下步驟操作&#xff1a; 通過Windows文件資源管理器訪問&#xff1a; 打開文件資源管理器。在地址欄中輸入\\wsl$&#xff0c;然后按回車鍵。這將打開一個顯示WSL可用發行版…

kafka配置消費者重要參數

文章目錄 fetch.min.bytesfetch.max.wait.msfetch.max.bytesmax.poll.recordsmax.partition.fetch.bytessession.timeout.ms和heartbeat.interval.msmax.poll.interval.msrequest.timeout.msauto.offset.resetenable.auto.commitpartition.assignment.strategy區間(range)輪詢(…

Xline社區會議Call Up|在 CURP 算法中實現聯合共識的安全性

為了更全面地向大家介紹Xline的進展&#xff0c;同時促進Xline社區的發展&#xff0c;我們將于2024年5月31日北京時間11:00 p.m.召開Xline社區會議。 歡迎您屆時登陸zoom觀看直播&#xff0c;或點擊“閱讀原文”鏈接加入會議&#xff1a; 會議號: 832 1086 6737 密碼: 41125…

通過cmd命令行使用用3dmax自帶的vray渲染

有時調試需要使用vray渲染vrscene文件看效果&#xff0c;只裝有3dmax下可以使用自帶vray渲染&#xff0c;在3dmax的渲染日志里面看自帶引擎路徑 使用命令行進入到此目錄 執行命令指定vr文件即可看到效果&#xff0c;如&#xff1a;vray.exe -sceneFile“C:\test15\202405241…

pip安裝報錯解決之后,手動安裝太麻煩,怎么辦

在使用pip install package_name安裝公共庫的時候,經常會報錯: Microsoft Windows [版本 6.1.7601] 版權所有 (c) 2009 Microsoft Corporation。保留所有權利。C:\Users\Administrator>pip install hatch WARNING: Ignoring invalid distribution -ip (d:\soft\python\py…

記一次成功的性能調優

環境&#xff1a;mysql8&#xff0c;表A大小10G&#xff0c;dbeaver24.0.5 現象&#xff1a;查詢頁面加載數據慢 操作&#xff1a; 第一步&#xff1a;新建sql編輯器&#xff0c;把sql貼到編輯器&#xff0c;帶參數&#xff1b; 第二步&#xff1a;在sql前加explain空一個并…

Cesium與Three相機同步(2)

之前實現了將Three相機同步到Cesium相機Cesium與Three相機同步(1)-CSDN博客 現在是將Cesium相機同步到Three相機,從而實現了相機雙向同步。 <!DOCTYPE html> <html lang="en"><head><title>three.js webgl - orbit controls</title&g…

【教學類-58-03】黑白三角拼圖03(4*4宮格)總數算不出+隨機抽取10張

背景需求&#xff1a; 【教學類-58-01】黑白三角拼圖01&#xff08;2*2宮格&#xff09;256種-CSDN博客文章瀏覽閱讀318次&#xff0c;點贊10次&#xff0c;收藏12次。【教學類-58-01】黑白三角拼圖01&#xff08;2*2宮格&#xff09;256種https://blog.csdn.net/reasonsummer/…

【Jmeter】使用Jmeter進行接口測試、跨線程組獲取參數

Jmeter接口測試 Jmeter設置成中文實操練習-跨線程組提取參數&#xff0c;使用值HTTP請求默認值&HTTP信息頭管理器 相信打算從事測試工程師的同學們&#xff0c;肯定對Jmeter是耳熟能詳的。使用Jmeter可以進行接口測試、性能測試、壓力測試等等&#xff1b;這個章節介紹如何…

Cisco Catalyst 9000 9200 9300 9400 IOS software upgrade

1 背景 從Catalyst 3650 ,3850&#xff0c;Catalyst 9000開始, 更準確的說是IOS XE的交換機的系統鏡像安裝方式分為2種 ? Bundle mode ? Install mode 這2種方工啥區別&#xff1f; Bundle mode 傳統方式利用boot system flash:c9k.xx16.bin方式引導 Install mode 將bin文…

用友 存貨分類按層級取數SQL語句

SELECT cInvCCode 分類編碼, cInvCName 分類名稱, iInvCGrade 分類層級, ss.bInvCEnd 是否是末級, aa.* FROM InventoryClass ss LEFT JOIN ( SELECT * FROM ( SELECT cInvCCode AS 一級分類編碼, …

cocos 通過 electron 打包成 exe 文件,實現通信問題

cocos 通過 electron 打包成 exe 文件&#xff0c;實現通信問題 首先&#xff0c;我使用的 cocos 版本是 2.4.12&#xff0c;遇到一個問題&#xff0c;是啥子呢&#xff0c;就是我要把用 cocos 開發出來的項目打包成一個 exe 可執行程序&#xff0c;使用的是 electron &#xf…

【C++算法】BFS解決多源最短路問題相關經典算法題

1.01矩陣 既然本章是BFS解決多源最短路問題&#xff0c;也就是說有若干個起點&#xff0c;那我們就可以暴力一點&#xff0c;直接把多源最短路徑問題轉化成若干個單源最短路徑問題&#xff0c;然后將每次的步數比較一下&#xff0c;取到最短的就是最短路徑的結果&#xff0c;這…

arcgis 10.6 工具欄操作error 001143 后臺服務器拋出異常

arcgis 10.6 工具欄操作error 001143 后臺服務器拋出異常 環境 win10arcgis 10.6 問題 執行定義投影要素轉線出現 Error: 001143:后臺服務器拋出異常&#xff08;差點重裝10.6&#xff09; 如下圖所示&#xff1a; 解決方法 通過在菜單工具條上單擊地理處理 > 地理處…

設計模式使用(成本扣除)

前言 名詞解釋 基礎名詞 訂單金額&#xff1a;用戶下單時支付的金額&#xff0c;這個最好理解 產品分成&#xff1a;也就是跟其他人合做以后我方能分到的金額&#xff0c;舉個例子&#xff0c;比如用戶訂單金額是 100 塊&#xff0c;我方的分成是 80%&#xff0c;那么也就是…

OceanMind海睿思通過上海數交所數商認證,提供高質量數據治理和數據咨詢服務

近日&#xff0c;中新賽克海睿思成功通過上海數據交易所的數商認證&#xff0c;獲得上海數據交易所頒發的“數據產品開發服務商”、“數據治理服務商”和“數據咨詢服務商”三大證書。 作為由深圳市創新投資集團有限公司投資控股的高新技術企業&#xff0c;國家級專精特新“小巨…

如何通過OpenHarmony的音頻模塊實現錄音變速功能?

簡介 OpenAtom OpenHarmony&#xff08;以下簡稱“OpenHarmony”&#xff09;是由開放原子開源基金會孵化及運營的開源項目&#xff0c;是面向全場景、全連接、全智能時代的智能物聯網操作系統。 多媒體子系統是OpenHarmony系統中的核心子系統&#xff0c;為系統提供了相機、…