15.kubernetes认证及serviceaccount

kubernetes认证及serviceaccount

认证

授权:
RBAC(目前的主流授权方式)

准入控制:
了解即可

--> 认证
授权 准入控制

客户端 --》api-server:
user: username,uid
group:
extra:

API
Request path

serviceaccount

k8s的资源如果支持create 那么可以使用--dry-run来生成清单配置
--dry-run

获取单个pod的清单配置
[[email protected] ~]# kubectl get pods pod-cm-nginx-3 -o yaml --export

[[email protected] ~]# kubectl get sa
NAME SECRETS AGE
default 1 6d17h
[[email protected] ~]# kubectl create serviceaccount admin
serviceaccount/admin created

kubernetes集群有两类认证值的用户账号
1.useraccount 用户,人的账号
2.serviceaccount 服务账号,pod等资源想访问k8s中apiservice时候里面需要用到的认证信息,包括用户名,密码等

为pod获取私有镜像images的两种方式:
1.使用imagepullsecreit字段指定
2.使用sa(serviceaccount)

kubectl 是怎么认证
kubectl config

kubeconfig

[[email protected] ~]# kubectl config view

连接apiserver

[[email protected] pki]# (umask 077 ; openssl genrsa -out magedu.key 2048)
Generating RSA private key, 2048 bit long modulus
............+++
.......+++
e is 65537 (0x10001)

[[email protected] pki]# openssl req -new -key magedu.key -out magedu.csr -subj "/CN=magedu"

[[email protected] pki]# openssl x509 -req -in magedu.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out magedu.crt -days 365
Signature ok
subject=/CN=magedu
Getting CA Private Key

添加到k8s集群可以认证:
[[email protected] pki]# kubectl config set-credentials magedu --client-certificate=./magedu.crt --client-key=./magedu.key --embed-certs=true
User "magedu" set.

[[email protected] pki]# kubectl config view
apiVersion: v1
clusters:
- cluster:
certificate-authority-data: DATA+OMITTED
server: https://10.250.0.89:6443
name: kubernetes
contexts:
- context:
cluster: kubernetes
user: kubernetes-admin
name: [email protected]
current-context: [email protected]
kind: Config
preferences: {}
users:
- name: kubernetes-admin
user:
client-certificate-data: REDACTED
client-key-data: REDACTED
- name: magedu
user:
client-certificate-data: REDACTED
client-key-data: REDACTED

[[email protected] pki]# kubectl config set-context [email protected] --cluster=kubernetes --user=magedu
Context "[email protected]" created.

[[email protected] pki]# kubectl config view
apiVersion: v1
clusters:
- cluster:
certificate-authority-data: DATA+OMITTED
server: https://10.250.0.89:6443
name: kubernetes
contexts:
- context:
cluster: kubernetes
user: kubernetes-admin
name: [email protected]
- context:
cluster: kubernetes
user: magedu
name: [email protected]
current-context: [email protected]
kind: Config
preferences: {}
users:
- name: kubernetes-admin
user:
client-certificate-data: REDACTED
client-key-data: REDACTED
- name: magedu
user:
client-certificate-data: REDACTED
client-key-data: REDACTED

切换上下文:
[[email protected] pki]# kubectl config use-context [email protected]
Switched to context "[email protected]".

[[email protected] pki]# kubectl get pods
Error from server (Forbidden): pods is forbidden: User "magedu" cannot list resource "pods" in API group "" in the namespace "default"

切换回admin
[[email protected] pki]# kubectl config use-context [email protected]
Switched to context "[email protected]".

定义集群:
[[email protected] pki]# kubectl config set-cluster mycluster --kubeconfig=/tmp/test.conf --server="https://172.20.0.70:6443" --certificate-authority=/etc/kubernetes/pki/ca.crt --embed-certs=true
Cluster "mycluster" set.
[[email protected] pki]# kubectl config view --kubeconfig=/tmp/test.conf
apiVersion: v1
clusters:
- cluster:
certificate-authority-data: DATA+OMITTED
server: https://172.20.0.70:6443
name: mycluster
contexts: []
current-context: ""
kind: Config
preferences: {}
users: []

通过magedu去访问k8s集群

原文地址:https://www.cnblogs.com/heaven-xi/p/11312623.html

时间: 2024-10-08 19:30:25

15.kubernetes认证及serviceaccount的相关文章

kubernetes认证和serviceaccount

Service Account 为 Pod 提供必要的身份认证.所有的 kubernetes 集群中账户分为两类,Kubernetes 管理的 serviceaccount(服务账户) 和 useraccount(用户账户). kubectl 如果需要访问 apiserver 需要经过 认证,授权,准入控制 三关. kubectl 客户端请求的时候首先需要进行认证,认证通过后再进行授权检查,因有些增删等某些操作需要级联到其他资源或者环境,这时候就需要准入控制来检查级联环境是否有授权权限了. 获取

9.kubernetes认证及ServiceAccount

一.前言 ApiServer:管理平台访问控制的唯一入口. 用户对API资源进行操作: 1. 对客户端的访问进行认证操作,确认是否有访问k8s权限:token(共享密钥)或SSL(双向SSL认证)二选一 2. 授权检查,确认是否对资源具有相关权限 ABAC(基于属性的访问控制).RBAC(基于角色的访问控制).NODE(基于节点).WebHook(自定义HTTP回调方法的访问控制) 3. 准入控制,对操作资源相关联的其他资源是否有权限. K8S集群交互的身份认证:kubeconfig(证书).t

013.Kubernetes认证授权

一 Kubernetes认证系统介绍 1.1 访问控制 Kubernetes API的每个请求都会经过多阶段的访问控制之后才会被接受,这包括认证.授权以及准入控制(Admission Control)等 1.2 认证 在集群开启TLS后,客户端发往Kubernetes的所有API请求都需要进行认证,以验证用户的合法性. Kubernetes支持多种认证机制,并支持同时开启多个认证插件(只要有一个认证通过即可).如果认证成功,则用户的username会被传入授权模块做进一步授权验证:而对于认证失败

kubernetes认证、授权、准入控制

1 总述 1 概述 kubernetes 中的资源访问类型有两种,一种是由POD提供的服务资源,其可通过service或 ingress提供接口以供外部访问,这种访问不需要经过API server的认证,而另一种对集群内部资源的操作则需要经过一定的认证授权操作才能完成. 2 认证,授权,准入控制概述 1 概述 任何客户端在操作相关资源对象时必须经过三个步骤:认证: 身份鉴别,正确的账号,能够通过认证,其只能证明其是合法的账户.授权: 权限检查,对资源进行相应的操作.其可操作某些资源,其某些资源需

15.Kubernetes之ReplicaSet

Replicaset在继承Pod的所有特性的同时, 它可以利用预先创建好的模板定义副本数量并自动控制, 通过改变Pod副本数量实现Pod的扩容和缩容 缺点: 无法修改template模板, 也就无法发布新的镜像版本 1.创建Replicaset # vi replicaset.yaml apiVersion: apps/v1 kind: ReplicaSet metadata: name: demo-rc labels: app: demo-rc spec: replicas: 2 select

kubernetes安全认证相关资料

1.Kubernetes安装之创建Kubeconfig文件 https://jimmysong.io/blogs/kubernetes-create-kubeconfig/ 2.轻松了解Kubernetes认证功能 http://qinghua.github.io/kubernetes-security/ 3.kubernetes集群的安全配置 http://tonybai.com/2016/11/25/the-security-settings-for-kubernetes-cluster/

kubernetes的Service Account

Service account作用Service account是为了方便Pod里面的进程调用Kubernetes API或其他外部服务. Service account使用场景运行在pod里的进程需要调用Kubernetes API以及非Kubernetes API的其它服务.Service Account它并不是给kubernetes集群的用户使用的,而是给pod里面的进程使用的,它为pod提供必要的身份认证. 与User account区别(1)User account是为人设计的,而se

Centos7上安装Kubernetes集群部署docker

一.安装前准备 1.操作系统详情 需要三台主机,都最小化安装 centos7.3,并update到最新 cat /etc/redhat-release CentOS Linux release 7.3.1611 (Core)  角色主机名IP Master      master192.168.1.14 node1    slave-1192.168.1.15 node2slave-2192.168.1.16 2.在每台主机上关闭firewalld改用iptables 输入以下命令,关闭fire

kubernetes部署之创建TLS证书(2)

研究过kubernetes的同事们都知道,kubernetes如果需要启用TLS认证,那么制作证书是必不可少的一步.然而,很多人在制作证书上遇到了很多的麻烦.今天主要记录一次我在部署kubernetes的过程中,是如何制作证书的.在整个过程中,将详细列出各组件的启动参数,给出配置文件,以及详解它们的含义和可能遇到的问题. 一.部署前准备 1.1 主机环境 环境参考ETCD集群部署,这里会增加一个VIP(192.168.15.200),用户实现kubernetes master高可用: 1.2 安