簡單一點
  • 首頁
  • 技術教程
  • 網絡資源
  • 軟件工具
  • 隨心所欲
  • 編程筆記
  • 問答社區
  • 單詞庫
登錄 註冊
投稿
  1. 簡單一點首頁
  2. 編程

k8s Service Account詳解

小藍 • 2024-12-21 13:03 • 編程

一、Service Account的基本概念

在 Kubernetes 中,所有的 Pod 的運行都是在一個 Namespace 中,不同的 Namespace 中的 Pod 是相互隔離的。為了讓 Pod 在 Kubernetes 中安全地運行,Kubernetes 引入了 Service Account 的概念。Service Account 是一個資源對象,它提供了一個安全的方式讓 Pod 訪問其它 Kubernetes API。

Service Account 可以使用 Kubernetes API 自身進行身份驗證,同時還可以分配所需的角色(可以訪問那些資源),從而提供 Kubernetes 集群中的訪問控制。在 Kubernetes 集群中,每個命名空間都能夠包含一個 “default” Service Account。


apiVersion: v1
kind: ServiceAccount 
metadata: 
  name: my-serviceaccount

二、Service Account 的創建、刪除及更新

可以使用 kubectl 命令行工具創建 Service Account:


$ kubectl create serviceaccount my-serviceaccount
serviceaccount "my-serviceaccount" created

也可以使用以下 YAML 定義創建:


apiVersion: v1
kind: ServiceAccount 
metadata: 
  name: my-serviceaccount

要刪除 Service Account:


$ kubectl delete serviceaccount my-serviceaccount
serviceaccount "my-serviceaccount" deleted

更新 Service Account 中的字段(比如 annotations):


$ kubectl patch serviceaccount my-serviceaccount -p '{"metadata": {"annotations":{"description" :"This is my service account"}}}' 

三、Service Account 與 RBAC

要訪問 Kubernetes API,必須將 Service Account 分配給擁有訪問 Kubernetes API 的角色。在授權時,需要區分不同的角色,給予他們適當的訪問權限。這就是 RBAC(Role-Based Access Control):通過策略來限制授權訪問。

首先,需要確定哪些角色可以訪問 Kubernetes API。可以使用 Role 或 ClusterRole 定義需要訪問的資源和操作。這些資源和操作通常在單個 Namespace 中可見,對於跨 Namespace 的操作需要 ClusterRole。

然後,需要為需要訪問 Kubernetes API 的 Service Account 分配這些角色。這可以使用 RoleBinding 或 ClusterRoleBinding 完成。


apiVersion: rbac.authorization.k8s.io/v1
kind: Role 
metadata: 
  name: serviceaccount-reader
rules: 
- apiGroups: [""]
  resources: ["serviceaccounts"]
  verbs: ["get", "watch", "list"]
  
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding 
metadata: 
  name: serviceaccount-reader-binding
roleRef: 
  apiGroup: rbac.authorization.k8s.io
  kind: Role
  name: serviceaccount-reader
subjects: 
- kind: ServiceAccount
  name: my-serviceaccount

四、使用 Service Account 的 Pod

在創建 Pod 時,可以指定要使用的 Service Account,也可以使用默認 Service Account。可以使用以下 YAML 定義 Pod:


apiVersion: v1
kind: Pod
metadata:
  name: my-pod
spec:
  serviceAccountName: my-serviceaccount
  containers:
  - name: my-container
    image: nginx

上面的 YAML 定義了一個名為 my-pod 的 Pod,並使用了名為 my-serviceaccount 的 Service Account。Pod 還創建了一個名為 my-container 的容器,使用了 nginx 鏡像。

五、總結

Service Account 是 Kubernetes 提供的微服務身份驗證的一種方式。通過分配角色,Service Account 可以訪問 Kubernetes API,並提供自動化身份驗證。每個命名空間均可擁有一個默認 Service Account。RBAC 可以幫助限制不同 Service Account 對 Kubernetes 資源和操作的訪問權限。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/280341.html

AccountK8sService詳解
贊 (0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
0 0
生成海報
java語言楊輝三角,java寫楊輝三角
上一篇 2024-12-21 13:03
CMS在線識別:如何讓你的網站更具吸引力和可訪問性?
下一篇 2024-12-21 13:03

相關推薦

  • 如何解決Docker+k8s報錯413 Request Entity Too Large

    對於使用Docker容器和Kubernetes集群的開發人員,在處理HTTP請求時,常常會遇到413 Request Entity Too Large的報錯。這通常是由於請求的大小…

    RDKLZ的頭像 RDKLZ
    編程 2025-04-27
  • k8s節點設置cpu高於多少就不調度

    本文將從以下幾個方面詳細闡述k8s節點設置cpu高於多少就不調度的相關內容: 一、k8s節點設置的概念和原理 k8s是Google開源的容器集群管理系統,用於自動化部署、擴展和管理…

    JTWEI的頭像 JTWEI
    編程 2025-04-27
  • 神經網絡代碼詳解

    神經網絡作為一種人工智能技術,被廣泛應用於語音識別、圖像識別、自然語言處理等領域。而神經網絡的模型編寫,離不開代碼。本文將從多個方面詳細闡述神經網絡模型編寫的代碼技術。 一、神經網…

    XNBEQ的頭像 XNBEQ
    編程 2025-04-25
  • Linux sync詳解

    一、sync概述 sync是Linux中一個非常重要的命令,它可以將文件系統緩存中的內容,強制寫入磁盤中。在執行sync之前,所有的文件系統更新將不會立即寫入磁盤,而是先緩存在內存…

    BPORF的頭像 BPORF
    編程 2025-04-25
  • Linux修改文件名命令詳解

    在Linux系統中,修改文件名是一個很常見的操作。Linux提供了多種方式來修改文件名,這篇文章將介紹Linux修改文件名的詳細操作。 一、mv命令 mv命令是Linux下的常用命…

    HCOQE的頭像 HCOQE
    編程 2025-04-25
  • nginx與apache應用開發詳解

    一、概述 nginx和apache都是常見的web服務器。nginx是一個高性能的反向代理web服務器,將負載均衡和緩存集成在了一起,可以動靜分離。apache是一個可擴展的web…

    TFXRP的頭像 TFXRP
    編程 2025-04-25
  • 詳解eclipse設置

    一、安裝與基礎設置 1、下載eclipse並進行安裝。 2、打開eclipse,選擇對應的工作空間路徑。 File -> Switch Workspace -> [選擇…

    QWCOK的頭像 QWCOK
    編程 2025-04-25
  • Python安裝OS庫詳解

    一、OS簡介 OS庫是Python標準庫的一部分,它提供了跨平台的操作系統功能,使得Python可以進行文件操作、進程管理、環境變量讀取等系統級操作。 OS庫中包含了大量的文件和目…

    QOCNF的頭像 QOCNF
    編程 2025-04-25
  • MPU6050工作原理詳解

    一、什麼是MPU6050 MPU6050是一種六軸慣性傳感器,能夠同時測量加速度和角速度。它由三個傳感器組成:一個三軸加速度計和一個三軸陀螺儀。這個組合提供了非常精細的姿態解算,其…

    AINVH的頭像 AINVH
    編程 2025-04-25
  • Python輸入輸出詳解

    一、文件讀寫 Python中文件的讀寫操作是必不可少的基本技能之一。讀寫文件分別使用open()函數中的’r’和’w’參數,讀取文件…

    LEJKS的頭像 LEJKS
    編程 2025-04-25

發表回復

請登錄後評論...
登錄後才能評論
小藍
小藍的頭像
小藍

這個人很懶,什麼都沒有留下~

75.5K 文章
0 評論
0 粉絲

最近文章

  • 探究request.session()
  • 深入淺出JS解構賦值
  • Python函數編寫:提高代碼模塊性和重複利用性
  • javajson聚合(java組合和聚合)
  • mysql數據庫中間表如何設計,mysql數據庫表的設計

繁體

不轉換 繁體中文 港澳繁體 台灣正體

文章目錄Toggle Table of ContentToggle

  • 一、Service Account的基本概念
  • 二、Service Account 的創建、刪除及更新
  • 三、Service Account 與 RBAC
  • 四、使用 Service Account 的 Pod
  • 五、總結

可能喜歡

  • 可靈AI悄然上線獨立APP!

    可靈AI悄然上線獨立APP!

  • 一款去中心化的 YouTube 彈幕插件

    一款去中心化的 YouTube 彈幕插件

  • 提升敲命令體驗的 Raycast 插件:快命令

    提升敲命令體驗的 Raycast 插件:快命令

  • Epic免費領遊戲:荒野的召喚:垂釣者+無敵少俠:原子伊芙

    Epic免費領遊戲:荒野的召喚:垂釣者+無敵少俠:原子伊芙

  • 4核8G雲服務器適合裝寶塔MySQL 那個版本

    4核8G雲服務器適合裝寶塔MySQL 那個版本

  • AI Logo 製作工具 LogoAI.ai,快速生成高質量 Logo

    AI Logo 製作工具 LogoAI.ai,快速生成高質量 Logo

  • 剪映識別的字幕文件在哪裡?

    剪映識別的字幕文件在哪裡?

  • 騰訊雲遨馳終端(OrcaTerm)輕量(2折)和CVM(5折)服務器續費券

    騰訊雲遨馳終端(OrcaTerm)輕量(2折)和CVM(5折)服務器續費券

  • 超過 3 萬個公開可用的 IPTV 頻道列表

    超過 3 萬個公開可用的 IPTV 頻道列表

  • 0基礎入門實戰深度學習Pytorch

    0基礎入門實戰深度學習Pytorch

  • Base64編碼解碼
  • 剪映字幕導出工具
  • 導入剪映字幕工具

Copyright © 2024 簡單一點 版權所有 滇ICP備2024022404號-1 Powered by 506064.Com