返回顶部
首页 > 资讯 > 精选 >k8s中各组件和kube apiserver通信时的认证和鉴权问题怎么解决
  • 762
分享到

k8s中各组件和kube apiserver通信时的认证和鉴权问题怎么解决

2023-07-02 11:07:00 762人浏览 安东尼
摘要

这篇文章主要介绍“k8s中各组件和kube apiserver通信时的认证和鉴权问题怎么解决”,在日常操作中,相信很多人在k8s中各组件和kube apiserver通信时的认证和鉴权问题怎么解决问题上存在疑惑,小编查阅

这篇文章主要介绍“k8s中各组件和kube apiserver通信时的认证和鉴权问题怎么解决”,在日常操作中,相信很多人在k8s中各组件和kube apiserver通信时的认证和鉴权问题怎么解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”k8s中各组件和kube apiserver通信时的认证和鉴权问题怎么解决”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

    背景

    和master节点kube api-server通信的组件有很多,包括:

    • kubelet

    • calico

    • scheduler

    • kubectl

    • 某些pod可能会和kube api-server通信

    这些组件和api-server通信时用的是什么身份,可以操作哪些api资源呢?

    本文使用的k8s集群是用kubekey搭建,命令是./kk create cluster --with-kubernetes v1.21.5 --with-kubesphere v3.2.1

    kubectl的身份和权限

    kubectl用的是什么身份?

    kubectl默认会用到.kube/config配置,其中包含证书信息

    root@ip-172-31-14-204:~# cat .kube/configapiVersion: v1...users:- name: kubernetes-admin  user:    client-certificate-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1jsURJVENDQWdtZ0F3SUJBZ0lJSm9rTE5qWVk0UG93RFFZSktvWklodmNOQVFFTEJRQXdGVEVUTUJFR0ExVUUKQXhNS2EzVmlaWEp1WlhSbGN6QWVGdzB5TWpBMU1qVXdNRE13TURWYUZ3MHlNekExTWpVd01ETXdNRFphTURReApGekFWQmdOVkJBb1REbk41YzNSbGJUcHRZWE4wWlhKek1Sa3DGd1lEVlFRREV4QnJkV0psY201bGRHVnpMV0ZrCmJXbHVNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQtI5L25vcEVJWE9JVXl0MngKRUFETUNod01idkhaWU90c2xYdFBsYnNYRXJPOXpmYzBIMi9UV2p2dUFHUDRwaVhPaG5sSnYvRmtKTVVCbk1HWgpmV3VrdU1vTStOSDZkMERFVjlsMUNYUk9BOEhlRStacXBtYmVvbTV3SWdsYlZIeXFzdTZNb2VySTZkYnFqcEdSCmpJUzVyb0tNQU94OFNYRlJxUFZaaEtIdkhFUTk2REt1UWNmMU84ZzlWKzVjYzQwZ295UzBsOHAxOWtBdU1JeTAKQktPWGZxTTMyRkNSSWZKOWJTSzZPQTBDek8wbWlJK0pidVhMMWFzNkE5M08xdWZCdUxOdURTTmZSR015WjJoQgpTdGU3eEZyOFZQRlFsRmJBUklBRnJjK0RvMXBUUk1xZ09kUS8xZVE0bk5iNXRRa0hnZG9raERVZ2owd2hHTmV6Clc0RFlrUUlEQVFBQm8xWXdWREFPQmdOVkhROEJBZjhFQkFNQ0JhQXdFd1lEVlIwbEJBd3dDZ1lJS3dZQkJRVUgKQXdJd0RBWURWUjBUQVFIL0JBSXdBREFMQmdOVkhTTUVHREFXZ0JUZnZPL1VlcDhWbnVmS3Q5QVpOY0tFV05vbApWakFOQmdrcWhraUc5dzBCQVFzRkFBT0NBUUVBdGQ5Q1RwajdEdUw2NDIxanhhMlYrcEhCV2tqRVhqaXdMQUdxCmI4UVpPT2llT2xUcjNPTVVXWWw1NEJpd3N2WmkxYi9pRDlMalhjUnhxR0d1ZytMUS9zNnVRVjBwSWhpL2U1MloKclB6Vm83V2VmSURZQm44RWhwSmsvbjdXYjhyRDJLUmNqNnRNanNFS3ViVkNSRXQyeWdYeFhvSnJ6a21xTkgvSwpGMFdqOGtFV2ZKVENQZnNmV1laNDBKMDJhbGZ4d05QQ080K1BoRDhoSm9xK1h7aitCNWl0TDVNZ2o0ZWFOZHpsCkxnUk4zc3hMZ0QvOVA4MW1NdTBnVDZ1V3d6c0U4VXZGdE9kOXkzOG50Q25HVUF5U2pTU1NOY0thRVVhWTd5KzIKTGxZeXFBZmJGN29pdEJsOWxSSnZmL2thR2trdGJoQ0dnNVk3eVMxSUVWNFVJdTZFb3c9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==...

    可以看到这个证书的CN是kubernetes-admin,O是system:masters。根据文档可以知道,这表示证书代表的用户是kubernetes-admin,用户组是system:masters。

    root@ip-172-31-14-204:~# echo LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURJVENDQWdtZ0F3SUJBZ0lJSm9rTE5qWVk0UG93RFFZSktvWklodmNOQVFFTEJRQXdGVEVUTUJFR0ExVUUKQXhNS2EzVmlaWEp1WlhSbGN6QWVGdzB5TWpBMU1qVXdNRE13TURWYUZ3MHlNekExTWpVd01ETXdNRFphTURReApGekFWQmdOVkJBb1REbk41YzNSbGJUcHRZWE4wWlhKek1Sa3dGd1lEVlFRREV4QnJkV0psY201bGRHVnpMV0ZrCmJXbHVNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQTI5L25vcEVJWE9JVXl0MngKRUFETUNod01idkhaWU90c2xYdFBsYnNYRXJPOXpmYzBIMi9UV2p2dUFHUDRwaVhPaG5sSnYvRmtKTVVCbk1HWgpmV3VrdU1vTStOSDZkMERFVjlsMUNYUk9BOEhlRStacXBtYmVvbTV3SWdsYlZIeXFzdTZNb2VySTZkYnFqcEdSCmpJUzVyb0tNQU94OFNYRlJxUFZaaEtIdkhFUTk2REt1UWNmMU84ZzlWKzVjYzQwZ295UzBsOHAxOWtBdU1JeTAKQktPWGZxTTMyRkNSSWZKOWJTSzZPQTBDek8wbWlJK0pidVhMMWFzNkE5M08xdWZCdUxOdURTTmZSR015WjJoQgpTdGU3eEZyOFZQRlFsRmJBUklBRnJjK0RvMXBUUk1xZ09kUS8xZVE0bk5iNXRRa0hnZG9raERVZ2owd2hHTmV6Clc0RFlrUUlEQVFBQm8xWXdWREFPQmdOVkhROEJBZjhFQkFNQ0JhQXdFd1lEVlIwbEJBd3dDZ1lJS3dZQkJRVUgKQXdJd0RBWURWUjBUQVFIL0JBSXdBREFmQmdOVkhTTUVHREFXZ0JUZnZPL1VlcDhWbnVmS3Q5QVpOY0tFV05vbApWakFOQmdrcWhraUc5dzBCQVFzRkFBT0NBUUVBdGQ5Q1RwajdEdUw2NDIxanhhMlYrcEhCV2tqRVhqaXdMQUdxCmI4UVpPT2llT2xUcjNPTVVXWWw1NEJpd3N2WmkxYi9pRDlMalhjUnhxR0d1ZytMUS9zNnVRVjBwSWhpL2U1MloKclB6Vm83V2VmSURZQm44RWhwSmsvbjdXYjhyRDJLUmNqNnRNanNFS3ViVkNSRXQyeWdYeFhvSnJ6a21xTkgvSwpGMFdqOGtFV2ZKVENQZnNmV1laNDBKMDJhbGZ4d05QQ080K1BoRDhoSm9xK1h7aitCNWl0TDVNZ2o0ZWFOZHpsCkxnUk4zc3hMZ0QvOVA4MW1NdTBnVDZ1V3d6c0U4VXZGdE9kOXkzOG50Q25HVUF5U2pTU1NOY0thRVVhWTd5KzIKTGxZeXFBZmJGN29pdEJsOWxSSnZmL2thR2trdGJoQ0dnNVk3eVMxSUVWNFVJdTZFb3c9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg== | base64 -d | openssl x509  -noout -textCertificate:    ...        Subject: O = system:masters, CN = kubernetes-admin

    那这个证书代表的用户能操作哪些资源呢?

    能操作哪些资源呢?

    这个需要看"用户kubernetes-admin"、"用户组system:masters"在集群中绑定了什么"角色"。

    可以看到它绑定了"ClusterRole/cluster-admin",这个角色可以对所有资源做任意操作。

    root@ip-172-31-14-204:~# kubectl get ClusterRoleBinding -A -o wide | grep system:masterscluster-admin                                          ClusterRole/cluster-admin                                                          33h                                    system:masters

    可以通过kubectl get ClusterRole/cluster-admin -o yaml查看角色的权限。

    所以,.kube/config证书中代表的用户身份可以对所有资源做任意操作。

    kube-scheduler的身份和权限

    kube-scheduler用的是什么身份?

    在master节点上查看scheduler进程,可以"大胆猜测"用的是/etc/kubernetes/scheduler.conf中的证书信息。

    在我的k8s环境中,kube-scheduler是运行在pod中的,不过pod和宿主机的/etc/kubernetes/scheduler.conf文件是一样的

    root@ip-172-31-14-33:~# ps aux|grep kube-schedulerroot     51897  0.2  0.7 753012 57736 ?        Ssl  May25   3:59 kube-scheduler --authentication-kubeconfig=/etc/kubernetes/scheduler.conf --authorization-kubeconfig=/etc/kubernetes/scheduler.conf --bind-address=0.0.0.0 --feature-gates=RotateKubeletServerCertificate=true,TTLAfterFinished=true,ExpandCSIVolumes=true,CSIStorageCapacity=true --kubeconfig=/etc/kubernetes/scheduler.conf --leader-elect=true --port=0

    查看证书的Subject信息,可以看到用户是system:kube-scheduler

    root@ip-172-31-14-33:~# echo LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUREVENDQWZXZ0F3SUJBZ0lJUWdERWp2Q3pZdGd3RFFZSktvWklodmNOQVFFTEJRQXdGVEVUTUJFR0ExVUUKQXhNS2EzVmlaWEp1WlhSbGN6QWVGdzB5TWpBMU1qVXdNRE13TURWYUZ3MHlNekExTWpVd01ETXdNRFphTUNBeApIakFjQmdOVkJBTVRGWE41YzNSbGJUcHJkV0psTFhOamFHVmtkV3hsY2pDQ0FTSXdEUVlKS29aSWh4Y05BUUVCCkJRQURnZ0VQQURDQ0FRb0NnZ0VCQUx3blRITU9scnMzMThjRVdoMkZFOUlmMDN1SXBTRmUxUU9jeFhXOFFmb1IKcUp6bS96ZWpwSUxNci82bXRERnp1WFhDWnhVNjA3eWN2VkprKzFCRzJLQjFtTEZDa0JlWlJVQTBjMk5udEhtVQpmVWkwNjhqeHdCeWFEbXlha2N0NENoT0I3K0xGT3I5WHozQ0owcUxaTXp0YnAxUk5nTWR4aE9IQmZZRFlXdWZ1Ckk3b3R0THdlQlZ0R3RNQlNjb1pOZ1lyWEFyb0MyVzBSYkVNUVhYV0pVMjFXUEdyRkxFQjVpZWo5SjRKWUxuRGQKdDcxK0NoWWQxcXA0bVJmZHhIcXB6dG8vSzdEWWo0UzJVS1BleGUxN2QwR25CcnJYajVWb2FPckhaWVRpNm5xRgptZk81eEdySEtqR1lncEdnYlBUTFNjbFdlcVMzbi9OQThCUE96OElEeWY4Q0F3RUFBYU5XTUZRd0RnWURWUjBQCkFRSC9CQVFEQWdXZ01CTUdBMVVkSlFRTU1Bb0dDQ3NHQVFVRkJ3TUNNQXdHQTFVZEV3RUIvd1FDTUFBd0h4WUQKVlIwakJCZ3dGb0FVMzd6djFIcWZGWjdueXJmUUdUWENORMphSlZZd0RRWUpLb1pJaHZjTkFRRUxCUUFEZ2dFQgpBRVdxaTY3M0tNZ0tyaHdPRTcxZm40YlBwUlJKY0hhdWNlaWF0d085S1dLRW9IbklRTWN5dlR5QW9DL3B1Y2RMCmN5MVNnVzZEdURjdERDTlhwdGNMc3VKaTltc3lXVFdWV09ONUgwUUpMTHBUblpoUnRUeU1rSU92MzdIekFHTHYKbFJVbzlaUWRuWEpmMS8yTlFsak5TUFNFZGwzYm1aRnh3ZjlDTFA3OVBqVWhCNzJET1N2RVJoYXBaanBCK0JxTwpHdjU1bEhyUG1nUGJicS90NndScUFEN1FSZ1M3ZnpOYjVOT0l3TU5pL29GU0k3anlNeEdleFJTcStrQWpUSHNZCnZlcUNSamszNkF6WUZSb0xsbFM3RURPZlVBWkJST3RicTN0dkpYM0NMemE5OVNyZlk3REpUL1c1N2dna0dFNkkKLzZNcUVOTzNTRlY0TzU2RmsvRGlxRTQ9Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K | base64 -d |openssl x509  -noout -textCertificate:    ...        Subject: CN = system:kube-scheduler

    可以看到"用户system:kube-scheduler"绑定了两个角色。

    root@ip-172-31-14-33:~# kubectl get ClusterRoleBindings -o wide |grep system:kube-schedulersystem:kube-scheduler                                  ClusterRole/system:kube-scheduler                                                  31h   system:kube-schedulersystem:volume-scheduler                                ClusterRole/system:volume-scheduler                                                31h   system:kube-scheduler

    kubelet的身份和权限

    kubelet用的是什么身份?

    root@ip-172-31-14-204:~# ps aux|grep kubeletroot     54396  7.7  2.8 1966128 113860 ?      Ssl  08:14  29:54 /usr/local/bin/kubelet ... --kubeconfig=/etc/kubernetes/kubelet.conf ...

    在worker节点上可以看到kubelet进程参数,api-server信息在/etc/kubernetes/kubelet.conf文件中

    可以看到是通过证书认证的

    root@ip-172-31-14-204:/etc/kubernetes/manifests# cat /etc/kubernetes/kubelet.confapiVersion: v1...users:- name: system:node:ip-172-31-14-33  user:    client-certificate: /var/lib/kubelet/pki/kubelet-client-current.pem    client-key: /var/lib/kubelet/pki/kubelet-client-current.pem

    查看证书的Subject信息,可以知道证书代表的"用户"是"system:node:ip-172-31-14-204","用户组"是"system:nodes"

    root@ip-172-31-14-204:~# openssl x509 -in /var/lib/kubelet/pki/kubelet-client-current.pem -noout -textCertificate:    ...        Subject: O = system:nodes, CN = system:node:ip-172-31-14-204

    那这个kubelet的证书代表的用户能操作哪些资源呢?它可以用来像"集群管理员"那样创建pod吗?

    kubelet能操作哪些资源?

    按照之前流程,我们来看一下"用户system:node:ip-172-31-14-204"、"用户组system:nodes"在集群中绑定了什么"角色"。

    root@ip-172-31-14-204:~# kubectl get ClusterRoleBinding -A|grep system:nodesroot@ip-172-31-14-204:~# kubectl get ClusterRoleBinding -A|grep "system:node:ip-172-31-14-204"root@ip-172-31-14-204:~#

    会发现"用户和用户组"没有绑定任何一个角色,这和kubectl、kube-scheduler就很不一样了。

    在 使用Node鉴权 文档中提到,kube apiserver对kubelet的鉴权比较特殊。

    当发现请求的用户在system:nodes组中,用户名是system:node:时,就限制这个请求只能做有限的操作,比如

    • 读操作

      • services

      • pod

      • 绑定到当前node的pod的secret、configMap

    • 写操作(如果开启了NodeRestriction准入插件,就只能修改kubelet所在node的资源)

      • 创建节点、修改节点状态

      • 创建pod、pod状态

    似乎如果没有开启NodeRestriction准入插件,就能让kubelet在任意node上创建pod。

    红蓝对抗中,如果能让kubelet在任意node上创建pod,就能用来横移

    文档中写到,这里的能力可能随着k8s版本变化而变化,以确保kubelet最小权限,默认安全。所以,kubelet到底能操作哪些资源,感觉还是来测试一下比较好,下面就来验证一下kubelet的权限。

    验证kubelet的权限

    我们先用kubelet配置文件覆盖kubectl的默认配置,然后就可以用kubectl命令来验证。

    root@ip-172-31-14-204:~# mv .kube/config .kube/config.bakroot@ip-172-31-14-204:~# ps aux|grep kubeleroot     59075  7.9  2.7 1956332 108712 ?      Ssl  03:37   2:51 /usr/local/bin/kubelet ... --kubeconfig=/etc/kubernetes/kubelet.conf ...root@ip-172-31-14-204:~# cp /etc/kubernetes/kubelet.conf .kube/config

    可以看到不能够创建pod

    root@ip-172-31-14-204:~# kubectl run Httpbin --image kennethreitz/httpbinError from server (Forbidden): pods "httpbin" is forbidden: pod does not have "kubernetes.io/config.mirror" annotation, node "ip-172-31-14-204" can only create mirror pod

    查看pod信息是可以的

    root@ip-172-31-14-204:~# kubectl get pods -ANAMESPACE                      NAME                                               READY   STATUS      RESTARTS   AGEdefault                        tail                                               1/1     Running     0          25hkube-system                    calico-kube-controllers-846b5f484d-vzlhw           1/1     Running     0          27h...root@ip-172-31-14-204:~# kubectl describe pod devops-27558900-m69pc -n kubesphere-devops-systemName:         devops-27558900-m69pc...

    查看secret和configMap是不允许的

    root@ip-172-31-14-204:~# kubectl get secrets -AError from server (Forbidden): secrets is forbidden: User "system:node:ip-172-31-14-204" cannot list resource "secrets" in API group "" at the cluster scope: can only read namespaced object of this typeroot@ip-172-31-14-204:~# kubectl get configmapError from server (Forbidden): configmaps is forbidden: User "system:node:ip-172-31-14-204" cannot list resource "configmaps" in API group "" in the namespace "default": No Object name foundroot@ip-172-31-14-204:~#

    小结:kubelet证书可以用来查看pod信息,不能创建pod、不能查看所有命名空间的secret和configMap。看起来和文档中的说明一致。

    calico

    calico用的是什么身份?

    root@ip-172-31-14-204:~# cat /etc/cni/net.d/calico-kubeconfig# Kubeconfig file for Calico CNI plugin. Installed by calico/node....users:- name: calico  user:    token: eyJhbGCiOiJSUzI1NiIsImtpZCI6ImV6bEstc2QtRTNTaE1ySFg2SWdxMjY2aHpkVFBEWU56SGdfaVdZRXZ4YncifQ.eyJhdWQiOlsiaHR0cHM6Ly9rdWJlcm5ldGVzLmRlZmF1bHQuc3ZjLmNsdXN0ZXIubG9jYWwiXSwiZXhwIjoxNjg1MDIyOTAwLCJpYXQiOjE2NTM0ODY5MDAsImlzcyI6Imh0dHBzOi8va3ViZXJuZXRlcy5kZWZhdWx0LnN2Yy5jbHVzdGVyLmxvY2FsIiwia3ViZXJuZXRlcy5pbyI6eyJuYW1lc3BhY2UiOiJrdWJlLXN5c3RlbSIsInBvZCI6eyJuYW1lIjoiY2FsaWNvLW5vZGUtcWR0ZmIiLCJ1aWQiOiI4N2U4ZmM3ZC0yYTg5LTQ1OTgtOWQyOC1mZDYyNGIwODk2MDMifSwic2VydmljZWFjY291bnQiOnsibmFtZSI6ImNhbGljby1ub2RlIiwidWlkIjoiOTEzNzUwZWItYmRhNC00YjJmLTgxNjctNDZjOTkxNjk5YWRkIn0sIndhcm5hZnRlciI6MTY1MzQ5MDUwN30sIm5iZiI6MTY1MzQ4NjkwMCwic3ViIjoic3lzdGVtOnNlcnZpY2VhY2NvdW50Omt1YmUtc3lzdGVtOmNhbGljby1ub2RlIn0.mF1Yek_sSBa2nlQIbdJlEZtv3anjIUFPFpj8Ta8Zn1t6vxYEZjswbPxrw-90sbEVGR30GWytUjr3X1tmJwtP0fL9ltAPvcM0tRg6MoLuGdC2uZFbt-zfKFEn42Yme-NuVOKO3K2otgZNt0ym0gYRT41wLCqOuKLq-SHAkHdvIOZ1eVAu0OsN3ccgSFf2nsuBqbDphd4ShqRPNXl1m66UEDlb4WiPmuSPuzRmMiV706YbBPxMUzn9Ve4o4IfBbeBufp_edSWPPW763EGqZmI7qZg-78SUbtAJ6m8Qkq6TrDIcaJbI3Mrl4EsrnE3v3MGMOogfXXs3-yU-NZl3ilQt6Q...

    可以看到用的是token令牌。这个token令牌是一个jwt字符串,base64解码后的payload部分如下,可以看到"ServiceAccount"是calico-node,命名空间是kube-system

    {"aud":["https://kubernetes.default.svc.cluster.local"],"exp":1685022900,"iat":1653486900,"iss":"https://kubernetes.default.svc.cluster.local","kubernetes.io":{"namespace":"kube-system","pod":{"name":"calico-node-qdtfb","uid":"87e8fc7d-2a89-4598-9d28-fd624b089603"},"serviceaccount":{"name":"calico-node","uid":"913750eb-bda4-4b2f-8167-46c991699add"},"warnafter":1653490507},"nbf":1653486900,"sub":"system:serviceaccount:kube-system:calico-nodeIn0

    可以看到,这个"ServiceAccount"被绑定到了"ClusterRole/calico-node"角色。

    root@ip-172-31-14-204:/home/ubuntu# kubectl get clusterrolebinding -o wide|grep kube-system/calico-nodecalico-node                                            ClusterRole/calico-node                                                            34h                                                                                      kube-system/calico-node

    pod

    pod用的是什么身份?

    大部分pod会挂载一个token在/var/run/secrets/kubernetes.io/serviceaccount/token位置,这个token也是一个jwt字符串。

    root@ip-172-31-14-204:/home/ubuntu# kubectl exec -ti tail -- sh/ # cat /var/run/secrets/kubernetes.io/serviceaccount/tokeneyJhbGciOiJSUzI1NiIsImtpZCI6ImV6bEstc2QtRTNTaE1ySFg2SWdxMjY2aHpkVFBEWU56SGdfaVdZRXZ4YncifQ.eyJhdWQiOlsiaHR0cHM6Ly9rdWJlcm5ldGVzLmRlZmF1bHQuc3ZjLmNsdXN0ZXIubG9jYWwiXSwiZXhwIjoxNjg1MDk4NTUwLCJpYXQiOjE2NTM1NjI1NTAsImlzcyI6Imh0dHBzOi8va3ViZXJuZXRlcy5kZWZhdWx0LnN2Yy5jbHVzdGVyLmxvY2FsIiwia3ViZXJuZXRlcy5pbyI6eyJuYW1lc3BhY2UiOiJkZWZhdWx0IiwicG9kIjp7Im5hbWUiOiJ0YWlsIiwidWlkIjoiYmQzZGRlZjAtODViYy00MmI4LThjZWYtMjQwZTkwMjViYWQ5In0sInNlcnZpY2VhY2NvdW50Ijp7Im5hbWUiOiJkZWZhdWx0IiwidWlkIjoiZGI5YjQ5MGMtYzU5MS00NDc0LTljOTAtY2U3ZjZmMmRjYjYzIn0sIndhcm5hZnRlciI6MTY1MzU2NjE1N30sIm5iZiI6MTY1MzU2MjU1MCwic3ViIjoic3lzdGVtOnNlcnZpY2VhY2NvdW50OmRlZmF1bHQ6ZGVmYXVsdCJ9.L388ZKZWvHYf7Yvt6tA7t8k2QMYcsI9BDcYtoxAGoJiEiwf3LKFQmdH8KF4PnI0kjM3Bg80WztFznotwZqCwCNfXMVMl4_iLGHDAgVB3tsdv9ljZ9FUJbn52PD5aWHSWRqjpyQzv8_89dlnnbGQLHg4M8Ly4OkGuWUOnE1x6vgSa1MkjhrnrJEPnnJo5Fy_vyRdvO2A9iyGh7cC97Ns6WWFkeD7741wSkGkoNkZKqJTyfaa_KScprPiVPYuisi4HkYrP71NzZA_i34Dk-IsomySR4h4WWw_88-kfL_lWZ8PDu5NuVekZZ4xfIQjA6oDhXT_Hx4iIlhwVwgYuTW4V-g

    base64解码后,payload中也能看到一个服务账号ServiceAccount,这个ServiceAccount也有可能和一个"角色"绑定。你可以动手查看一下自己的pod。

    到此,关于“k8s中各组件和kube apiserver通信时的认证和鉴权问题怎么解决”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

    --结束END--

    本文标题: k8s中各组件和kube apiserver通信时的认证和鉴权问题怎么解决

    本文链接: https://lsjlt.com/news/341466.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    猜你喜欢
    • k8s中各组件和kube apiserver通信时的认证和鉴权问题怎么解决
      这篇文章主要介绍“k8s中各组件和kube apiserver通信时的认证和鉴权问题怎么解决”,在日常操作中,相信很多人在k8s中各组件和kube apiserver通信时的认证和鉴权问题怎么解决问题上存在疑惑,小编查阅...
      99+
      2023-07-02
    • 浅析k8s中各组件和kube apiserver通信时的认证和鉴权问题
      目录背景kubectl的身份和权限kubectl用的是什么身份?能操作哪些资源呢?kube-scheduler的身份和权限kube-scheduler用的是什么身份?kubelet的...
      99+
      2024-04-02
    • 如何解决PHP开发中的安全认证和授权问题
      在PHP开发中,安全认证和授权问题是非常重要的,尤其是在涉及到用户登录、访问控制和权限管理等方面。本文将介绍一些解决PHP开发中安全认证和授权问题的方法,并提供具体的代码示例。一、安全认证(Authentication)安全认证是验证用户身...
      99+
      2023-10-21
    • React中的权限组件设计问题怎么解决
      这篇“React中的权限组件设计问题怎么解决”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“React中的权限组件设计问题怎么...
      99+
      2023-07-02
    • 在Go语言中如何解决并发网络请求的请求身份认证和访问授权问题?
      在Go语言中如何解决并发网络请求的请求身份认证和访问授权问题?随着互联网的快速发展,越来越多的应用需要进行网络请求,涉及到用户身份认证和访问授权问题。如何在Go语言中解决并发网络请求的请求身份认证和访问授权问题,成为了开发者们面临的一项重要...
      99+
      2023-10-22
      身份认证 并发 网络请求 关键词:Go语言 访问授权
    • 在Go语言中如何解决并发网络请求的请求认证和授权处理问题?
      在Go语言中如何解决并发网络请求的请求认证和授权处理问题?随着互联网的高速发展,网络请求在我们的日常开发中扮演着非常重要的角色。然而,随着系统规模的扩大和并发量的增加,请求认证和授权问题也逐渐变得复杂起来。在这篇文章中,我们将探讨在Go语言...
      99+
      2023-10-22
      Go语言 并发 关键词: 请求认证
    • 在Vue中使用dhtmlxGantt组件时遇到的问题怎么解决
      本文小编为大家详细介绍“在Vue中使用dhtmlxGantt组件时遇到的问题怎么解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“在Vue中使用dhtmlxGantt组件时遇到的问题怎么解决”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢...
      99+
      2023-07-05
    • vue组件和iframe页面的相互传参问题怎么解决
      这篇文章主要介绍“vue组件和iframe页面的相互传参问题怎么解决”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“vue组件和iframe页面的相互传参问题怎么解决”文章能帮助大家解决问题。vue组...
      99+
      2023-06-30
    • C++中vector和数组之间的转换及其效率问题怎么解决
      本文小编为大家详细介绍“C++中vector和数组之间的转换及其效率问题怎么解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“C++中vector和数组之间的转换及其效率问题怎么解决”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一...
      99+
      2023-07-05
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作