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

K8S用戶管理體系介紹

這篇具有很好參考價值的文章主要介紹了K8S用戶管理體系介紹。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

1 K8S賬戶體系介紹

在k8s中,有兩類用戶,service account和user,我們可以通過創(chuàng)建role或clusterrole,再將賬戶和role或clusterrole進行綁定來給賬號賦予權(quán)限,實現(xiàn)權(quán)限控制,兩類賬戶的作用如下。

  • server account:k8s的進程、pod申請授權(quán)時使用的賬戶。類似于nginx服務(wù)會有一個nginx用戶。

  • user:k8s的管理人員使用的賬戶,也就是我們使用的賬戶。

2 service account

2.1 介紹

Kubernetes中所有的訪問,無論外部內(nèi)部,都會通過API Server處理,訪問Kubernetes資源前需要經(jīng)過認證與授權(quán)。

  • 在k8s中,service account(簡稱sa)是給集群中的進程使用的,當集群中的pod或進程需要跟apiserver申請調(diào)用資源時會使用到sa。

2.2 為什么需要sa

主要是為了權(quán)限控制,不同的sa賬戶對應(yīng)不同的權(quán)限,如增刪查等。

2.3 如何創(chuàng)建sa

  • 創(chuàng)建一個sa

[root@k8s-master01 ~]# kubectl create serviceaccount sa-example ##創(chuàng)建一個sa名為sa-example
serviceaccount/sa-example created
[root@k8s-master01 ~]#
[root@k8s-master01 ~]# kubectl describe sa sa-example
Name:                sa-example
Namespace:           default
Labels:              <none>
Annotations:         <none>
Image pull secrets:  <none>
Mountable secrets:   <none>
Tokens:              <none>
Events:              <none>
  • 給sa創(chuàng)建secret,v1.25版本后創(chuàng)建sa后不再自動創(chuàng)建secret,因此需要手動創(chuàng)建。secret中會包含一些認證信息,包括ca證書等。

[root@k8s-master01 ~]# cat sa-example-secret.yaml
apiVersion: v1
kind: Secret
metadata:
  name: secret-sa-example
  annotations:
    kubernetes.io/service-account.name: "sa-example"   # 這里填寫serviceAccountName
type: kubernetes.io/service-account-token
[root@k8s-master01 ~]# kubectl create -f sa-example-secret.yaml
secret/secret-sa-example created
[root@k8s-master01 ~]# kubectl describe sa sa-example ##檢查可以發(fā)現(xiàn)sa的token處已經(jīng)關(guān)聯(lián)上了剛創(chuàng)建的secret
Name:                sa-example
Namespace:           default
Labels:              <none>
Annotations:         <none>
Image pull secrets:  <none>
Mountable secrets:   <none>
Tokens:              secret-sa-example
Events:              <none>
[root@k8s-master01 ~]# kubectl describe secret secret-sa-example  ##查看secret的詳情
Name:         secret-sa-example
Namespace:    default
Labels:       <none>
Annotations:  kubernetes.io/service-account.name: sa-example
              kubernetes.io/service-account.uid: a4b9c0ea-2362-4bb3-abc7-10dc0fb795fc

Type:  kubernetes.io/service-account-token

Data
====
ca.crt:     1099 bytes
namespace:  7 bytes
token:      eyJhbGciOiJSUzI1NiIsImtpZCI6IkhwYldkODNuZmNMczYzNlRiRmpQQndMTFJYSWZZODZQSFIxUFI0WW1fYWMifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJkZWZhdWx0Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZWNyZXQubmFtZSI6InNlY3JldC1zYS1leGFtcGxlIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQubmFtZSI6InNhLWV4YW1wbGUiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC51aWQiOiJhNGI5YzBlYS0yMzYyLTRiYjMtYWJjNy0xMGRjMGZiNzk1ZmMiLCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6ZGVmYXVsdDpzYS1leGFtcGxlIn0.OjGSORdrRchb-dOk56bIx9s2KfedIrcBHhWi4N7g1v2zDgbumF8DoIVUbDdSB3IXtSnrWu6ccF-NEXDkxTtsU3rRZCn4qLpYqxtmK-We0-JDqfPd6brSqv8SMOFpUhbTxOcCjsICLvGY0dE8iTNjRLjmlTlNENGJui3pYweLCV1Qe0Ry4hZs0BFaMVZn6dSjjNnPTTfaSNRk-4jcqqoOxC0qxVrpQb-LjLvBy9fi2omBZQnb4e98aGo8SN4U5tWNOr_QEfYO9h8B9w-Ub5eI2uZ9jan07ezjD9wathT4BP471m-8NFsFDO8PcRpvxDtNjl4XzMoQmjZA1wM0rseDrg

24.4 如何使用sa

Pod中使用ServiceAccount非常方便,只需要指定ServiceAccount的名稱即可。

[root@k8s-master01 ~]# cat nginx-alpine.yaml
apiVersion: v1
kind: Pod
metadata:
  name: nginx-test-pod  ##pod名
spec:
  serviceAccountName: sa-example  ##sa名
  containers:
  - image: nginx:alpine
    name: container-0
    resources:
      limits:
        cpu: 100m
        memory: 200Mi
      requests:
        cpu: 100m
        memory: 200Mi
  imagePullSecrets:
  - name: default-secret  ##下載鏡像使用到的secret名
[root@k8s-master01 ~]# kubectl create -f nginx-alpine.yaml
pod/nginx-test-pod created
[root@k8s-master01 ~]# kubectl get pod
NAME             READY   STATUS    RESTARTS   AGE
nginx-test-pod   1/1     Running   0          2m13s
[root@k8s-master01 ~]# kubectl describe pod nginx-test-pod|grep -i account
Service Account:  sa-example
      /var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-mb8cd (ro)
[root@k8s-master01 ~]# kubectl exec -it nginx-test-pod -- /bin/sh  ##進入pod,可以看到對應(yīng)的secret文件,ca證書和token
/ # ls /var/run/secrets/kubernetes.io/serviceaccount
ca.crt     namespace  token

創(chuàng)建好sa我們可以再綁定role或clusterrole來賦予更精細化的權(quán)限。

3 user account

3.1 介紹

前面說的service account在k8s集群中是給pod使用的,這里介紹的User Account,是給我們自己,也就是給人用的。

3.2 為什么需要user account

在k8s集群中跟linux操作系統(tǒng)是一樣的,我們默認的賬戶是:kubernetes-admin@kubernetes,管理員賬戶,權(quán)限也是最大的,在k8s集群中暢通無阻。

但是在企業(yè)中,并不是只有我們一個人使用k8s集群,還有很多的研發(fā)人員都是需要使用集群的;這時我們需要給他們創(chuàng)建一些賬號,但是這些賬號權(quán)限又不能太大,以防誤刪資源,這個時候我們就能使用user account了。

3.3 如何創(chuàng)建一個user account

步驟如下

  • 創(chuàng)建用戶所需的證書文件和密鑰

  • 創(chuàng)建用戶

  • 創(chuàng)建角色

  • 將角色和用戶進行綁定

3.3.1 為用戶生成證書

前面介紹的sa賬戶,secret創(chuàng)建時會創(chuàng)建好證書,對于用戶的話我們需要自己創(chuàng)建證書。

[root@k8s-master01 ~]# openssl genrsa -out singless.key 2048  ##給用戶創(chuàng)建一個私鑰
[root@k8s-master01 ~]# openssl req -new -key singless.key -out singless.csr -subj "/CN=singless/O=devops" ##用此私鑰創(chuàng)建一個csr(證書簽名請求)文件,其中我們需要在subject里帶上用戶信息(CN為用戶名,O為用戶組),其中/O參數(shù)可以出現(xiàn)多次,即可以有多個用戶組:
[root@k8s-master01 ~]# openssl x509 -req -in singless.csr -CA /etc/kubernetes/pki/ca.crt -CAkey /etc/kubernetes/pki/ca.key -CAcreateserial -out singless.crt -days 365 ##找到K8S集群(API Server)的CA證書文件,其位置取決于安裝集群的方式,通常會在/etc/kubernetes/pki/路徑下,會有兩個文件,一個是CA證書(ca.crt),一個是CA私鑰(ca.key)。通過集群的CA證書和之前創(chuàng)建的csr文件,來為用戶頒發(fā)證書。-CA和-CAkey參數(shù)需要指定集群CA證書所在位置,-days參數(shù)指定此證書的過期時間,這里為365天。最后將證書(tom.crt)和私鑰(tom.key)保存起來,這兩個文件將被用來驗證API請求。

K8S用戶管理體系介紹,kubernetes,容器

3.3.2 創(chuàng)建用戶

現(xiàn)在我們想要通過kubectl以singless的身份來操作集群,需要將singless的認證信息添加進kubectl的配置,即~/.kube/config中,通過以下命令將用戶singless的驗證信息添加進kubectl的配置:

[root@k8s-master01 ~]# kubectl config set-credentials singless --client-certificate=singless.crt --client-key=singless.key
User "singless" set.
[root@k8s-master01 ~]# cat ~/.kube/config |tail -4  ##添加完成后在~/.kube/config可以看到新增了
- name: singless
  user:
    client-certificate: /root/singless.crt
    client-key: /root/singless.key
[root@k8s-master01 ~]# kubectl config set-context singless --cluster=kubernetes --namespace=* --user=singless  ##創(chuàng)建context,通過context來綁定用戶,來實現(xiàn)精細化的權(quán)限控制。context可以理解為登錄用戶時所需的環(huán)境變量。刪除使用kubectl config delete-context命令
[root@k8s-master01 ~]# kubectl config get-contexts  ##查詢當前環(huán)境的context
CURRENT   NAME                          CLUSTER      AUTHINFO           NAMESPACE
*         kubernetes-admin@kubernetes   kubernetes   kubernetes-admin
          singless                      kubernetes   singless           *

3.3.3 創(chuàng)建角色

角色主要分為兩種:role和clusterrole,角色(role)是比較有限制性的,只針對于指定的資源生效。而集群角色(clusterrole)就權(quán)限就比較廣泛了,新建了一個集群角色之后,這個角色將對整個集群受影響。

創(chuàng)建角色有兩種方法

  • 通過命令行進行創(chuàng)建

[root@k8s-master01 ~]# kubectl create role myrole  --verb=get,list,watch --resource=pod,svc 創(chuàng)建了一個名叫myrole的角色,并且賦予它對pod、service有看的權(quán)限
role.rbac.authorization.k8s.io/myrole created
  • 通過yaml文件進行創(chuàng)建

[root@k8s-master01 ~]# cat myrole2.yaml
apiVersion: rbac.authorization.k8s.io/v1
#api版本,使用kubectl explain +【要查詢的資源,比如pod】
kind: Role
metadata:
  name: myrole2
rules:          #規(guī)則
- apiGroups: [""]  # 空字符串""表明使用支持所有的api版本,一般都放空
  resources: ["pods"]           #resources:資源,現(xiàn)在這些權(quán)限對哪些資源生效,這里寫的是pod,如果想要多寫幾個,就用逗號隔開,其實就是一個列表
  verbs: ["get", "watch", "list"]       #詳細的權(quán)限:這三個都是查看的權(quán)限。如果需要所有權(quán)限,直接填寫一個*號即可
[root@k8s-master01 ~]# kubectl create -f myrole2.yaml
role.rbac.authorization.k8s.io/myrole2 created

查看創(chuàng)建的角色

[root@k8s-master01 ~]# kubectl get role
NAME      CREATED AT
myrole    2023-07-18T09:22:51Z
myrole2   2023-07-18T09:33:24Z

3.3.4 角色綁定用戶

[root@k8s-master01 ~]# kubectl create rolebinding myrole-binding --role=myrole2 --user=singless  ##將用戶和角色進行綁定
[root@k8s-master01 ~]# kubectl get rolebinding -owide  ##查看綁定關(guān)系
NAME             ROLE           AGE   USERS      GROUPS   SERVICEACCOUNTS
myrole-binding   Role/myrole2   57s   singless

3.4 使用賬戶

下面的例子表明使用singless用戶可以看到pod,但是看不到svc,符合我們的前面創(chuàng)建role myrole2時所做的權(quán)限設(shè)置

[root@k8s-master01 ~]# kubectl config use-context singless
Switched to context "singless".
[root@k8s-master01 ~]# kubectl get pod
NAME             READY   STATUS    RESTARTS   AGE
nginx-test-pod   1/1     Running   0          124m
[root@k8s-master01 ~]# kubectl get svc
Error from server (Forbidden): services is forbidden: User "singless" cannot list resource "services" in API group "" in the namespace "default"

使用下列命令可以將context切換回管理員用戶

[root@k8s-master01 ~]# kubectl config use-context kubernetes-admin@kubernetes

?文章來源地址http://www.zghlxwxcb.cn/news/detail-653562.html

到了這里,關(guān)于K8S用戶管理體系介紹的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • Kubernetes(K8S) kubesphere 介紹

    Kubernetes(K8S) kubesphere 介紹

    使用 Kubeadm 部署 Kubernetes(K8S) 安裝--附K8S架構(gòu)圖 Kubernetes(K8S) kubesphere 安裝 官網(wǎng)地址:https://kubesphere.com.cn/ KubeSphere 是個全棧的Kubernetes容器云PaaS解決方案 KubeSphere 是在目前主流容器調(diào)度平臺 Kubernetes 之上構(gòu)建的企業(yè)級分布式多租戶容器平臺,提供簡單易用的操作界面以及向?qū)?/p>

    2023年04月26日
    瀏覽(25)
  • 云原生_kubernetes(k8s)介紹

    云原生_kubernetes(k8s)介紹

    目錄 一、應(yīng)用部署方式演變 二、k8s介紹 三、k8s的組件 四、k8s中的概念 五、k8s資源管理方式 1、命令式對象管理 2、命令式對象配置 3、聲明式對象配置 在部署應(yīng)用程序的方式上,主要經(jīng)歷了三個時代: 1 、物理機部署: 互聯(lián)網(wǎng)早期,會直接將應(yīng)用程序部署在物理機上 優(yōu)點

    2023年04月13日
    瀏覽(104)
  • yum部署kubernetes(k8s)集群、k8s常用資源管理

    目錄 一、環(huán)境搭建 1、準備環(huán)境 1)計算機說明,建議系統(tǒng)版本7.4或者7.6 2)修改所有主機的計算機名設(shè)置host文件 ?2、安裝master節(jié)點 1)安裝etcd配置etcd 2)安裝k8s-master節(jié)點 3)配置apiserver 4)配置controller和scheduler 5)啟動k8s服務(wù) 3、安裝k8s-master上的node 1)安裝node 2)配置kube

    2024年02月13日
    瀏覽(35)
  • (kubernetes)k8s常用資源管理

    (kubernetes)k8s常用資源管理

    目錄 k8s常用資源管理 1、創(chuàng)建一個pod 1)創(chuàng)建yuml文件 2)創(chuàng)建容器 3)查看所有pod創(chuàng)建運行狀態(tài) 4)查看指定pod資源 5)查看pod運行的詳細信息 6)驗證運行的pod 2、pod管理 1)刪除pod 2)查看刪除pod無法找到 3)創(chuàng)建pod 4)發(fā)現(xiàn)最先創(chuàng)建的pod運行在k8s-master節(jié)點上,下載鏡像速度太

    2024年02月13日
    瀏覽(52)
  • kubernetes/k8s配置資源管理

    kubernetes/k8s配置資源管理

    配置資源管理 Secret Configmap*.1.2加入新特征 1.18 Secret:保存密碼,token,敏感的k8s資源 這類數(shù)據(jù)可以存放在鏡像當中,但是防止secret可以更方便的控制,減少暴漏風(fēng)險。 保存加密的信息 Secret的類型: docker-registry:存儲docker倉庫認證信息,以及docker組件的認證信息(私有的) generic:是

    2024年01月17日
    瀏覽(24)
  • K8S:Rancher管理 Kubernetes 集群

    K8S:Rancher管理 Kubernetes 集群

    Rancher 是一個開源的企業(yè)級多集群 Kubernetes 管理平臺,實現(xiàn)了 Kubernetes 集群在混合云+本地數(shù)據(jù)中心的集中部署與管理, 以確保集群的安全性,加速企業(yè)數(shù)字化轉(zhuǎn)型。超過 40000 家企業(yè)每天使用 Rancher 快速創(chuàng)新。 官網(wǎng):https://docs.rancher.cn/ Rancher 和 k8s 都是用來作為容器的調(diào)度與

    2024年02月07日
    瀏覽(28)
  • Kubernetes(k8s)容器編排Pod介紹和使用

    Kubernetes(k8s)容器編排Pod介紹和使用

    Pod是kubernetes中你可以創(chuàng)建和部署的最小也是最簡的單位,一個Pod代表著集群中運行的一個進程。 Pod有兩個必須知道的特點 通過yaml文件或者json描述Pod和其內(nèi)容器的運行環(huán)境和期望狀態(tài),例如一個最簡單的運行nginx應(yīng)用的pod,定義如下 3.1.1 參數(shù)描述 下面簡要分析一下上面的

    2024年02月08日
    瀏覽(119)
  • 云原生Kubernetes:K8S配置資源管理

    云原生Kubernetes:K8S配置資源管理

    目錄 一、理論 1.Secret 2.Secret創(chuàng)建 3.Secret使用 4.Configmap 5.Configmap創(chuàng)建 6.Configmap使用 二、實驗 1.Secret創(chuàng)建 2.Secret使用 3.Configmap創(chuàng)建 4.Configmap使用 三、問題 1.變量引用生成資源報錯 2.查看pod日志失敗 3.創(chuàng)建configmap報錯 4.YAML創(chuàng)建configmap報錯 5. 生成資源報錯 6.文件掛載pod報錯Error 四

    2024年02月07日
    瀏覽(25)
  • Kubernetes/k8s之包管理器helm

    Kubernetes/k8s之包管理器helm

    在沒有helm之前,我們要部署一個服務(wù),deployment、service ingress 的作用通過打包的方式。把deployment、service ingress打包在一塊,一鍵式部署服務(wù)。類似于yum功能。是官方提供的類似安裝倉庫的功能,可以實現(xiàn)一鍵化部署應(yīng)用 helm的概念 由三個部分組成 chart:helm的軟件包,部署包,

    2024年01月23日
    瀏覽(24)
  • 【云原生、k8s】管理Kubernetes應(yīng)用搭建與部署

    官方提供Kubernetes部署3種方式 (一)minikube Minikube是一個工具,可以在本地快速運行一個單點的Kubernetes,嘗試Kubernetes或日常開發(fā)的用戶使用。不能用于生產(chǎn)環(huán)境。 官方文檔:https://kubernetes.io/docs/setup/minikube/ (二)二進制包 從官方下載發(fā)行版的二進制包,手動部署每個組件,

    2024年01月21日
    瀏覽(122)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包