kubectl  --> 认证 --->授权 -->准入控制

认证:证书 身份识别

授权:rbac  权限检查

准入控制:  补充授权机制 多个插件实现 只在创建 删除 修改 或做代理操作时做补充

用户账号:

user

客户端 -->API server -->

user:username,uid

group:

extra:

API

Request path 访问资源请求

http://192.168.81.10:6443/apis/apps/v1/namespaces/default/deployments/myapp-deploy

kubectl api-versions

kubectl证书

cat .kube/config    本地有证书,可直接连接apiserver 授信了

kubectl proxy --port=8080   在其他服务器上开启apiserver监听  通过此监听与apiserver建立连接

curl http://localhost:8080/api/v1/namespaces 请求是通过url发给apiserver的,响应的是一个json结果

kubectl get deploy -n kube-system

curl http://localhost:8080/apis/apps/v1/namespaces/kube-system/deployments

curl http://localhost:8080/apis/apps/v1/namespaces/kube-system/deployments/coredns

所有的资源控制都是通过api请求实现的

/apis 是总的接口

kubectl get deploy

curl http://localhost:8080/apis/apps/v1/namespaces/default/deployments/myapp-deploy

Http request verb:请求动作 curl -s

get posts put delete

API requests verb  即kubectl命令

get list create update patch watch proxy delete deletecollection

Rescource:

Subresource  Namespace   Api group

kubectl get statefulset

curl http://localhost:8080/apis/apps/v1/namespaces/default/statefulsets

curl http://localhost:8080/apis/apps/v1/namespaces/default/statefulsets/myapp

有哪些客户端需要与apiserver联系

集群外的客户端 通过apiserver监听的节点地址kubectl proxy --port=8080

集群中的pods 通过  kubectl get svc,   kubectl describe svc kubernetes,即通过10.96.0.1 kubernetes连接的 通过service引入到集群内部来

pods --> service kubernetes 10.96.0.1 --> 192.168.81.10:6443 apiserver 从而pod可以直接请求apiserver服务了

apiserver还要做认证: apiserver把自己的证书传给客户端  --> 客户端校验apiserver身份 --> apiserver校验客户端身份(pod地址为10.96.0.1)

pod账户认证 serviceaccount  sa 服务账号

kubectl explain pods.spec.serviceAccountName

解释:

kubectl describe pods myapp-deploy-55b78d8548-t4xxx

Volumes:

default-token-dkt94:

Type:        Secret (a volume populated by a Secret)

SecretName:  default-token-dkt94

sercretName即是pod的账号或认证信息  以volumes的default-token-dkt94挂载到pods之上

serviceAccount也是标准的k8s资源 通过serviceAccountName加载到pods上

如何创建serviceaccount

kubectl create serviceaccount -h

例如:

kubectl create serviceaccount mysa --dry-run

创建serviceaccount账号  账号名 --dry-run:没有真正创建 生成框架

kubectl get sa

kubectl create serviceaccount admin

kubectl get sa  在查询就已经创建了 系统会自动为admin生成secret信息

kubectl describe sa admin  查询admin 的secret

kubectl get secrets  确认secret

kubectl describe secrets admin-token-5kqwt 这个serviceaccount只限于连接apiserver登陆认证,但干不了别的事情,需要授权

使用自定义sa

cp pod-demo.yaml pod-sa-demo.yaml

vim pod-sa-demo.yaml

apiVersion: v1

kind: Pod

metadata:

name: pod-sa-demo

namespace: default

labels:

app: myapp

tier: frontend

spec:

containers:

- name: myapp

image: ikubernetes/myapp:v1

ports:

- name: http

containerPort: 80

serviceAccount: admin 定义pod使用自定义的sa账号 不定义就会自动使用default-token-dkt94

验证

kubectl apply -f pod-sa-demo.yaml

kubectl describe pods pod-sa-demo

Volumes:

admin-token-5kqwt:

Type:        Secret (a volume populated by a Secret)

SecretName:  admin-token-5kqwt

获取资源模板

kubectl create serviceaccount mysa --dry-run -o yaml > xxxx.yaml  可获取yaml资源模板

kubectl get pods myapp-1 -o yaml --export > xxxx.yaml 获取资源清单

secret

docker-registry  docker到docker私有服务认证

generics 其他通用generics

tls 给pod提供证书

与镜像仓库registery认证imagePullSecrets 认证的 secret为docker-registry,也可以使用sa来登陆registry验证,sa定义在pods上

只需要在定义pod资源清单时加上Image pull secret项

kubectl explain pods.spec.imagePullSecrets

kubectl create secret --help

kubectl describe sa admin

Image pull secrets:  <none>

人类账号认证 useraccount

Rbac授权

kubectl config –help 管理kubectl配置文件的

kubeconfig

kubectl config view 查看有多少集群

证书存放: /etc/kubernetes/pki/

创建账号:

先创建私钥

(umask 077; openssl genrsa -out mageedu.key 2048)

子shell          加密方式  输出key私钥 私钥大小

结果:mageedu.key

基于私钥去创建证书,由ca.crt签署

先生成证书签署请求

openssl req -new -key mageedu.key -out mageedu.csr -subj "/CN=mageedu"

证书签署请求    指定名称:用户账号

结果: mageedu.csr

签证:用ca.crt去签

openssl x509 -req -in mageedu.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out mageedu.crt -days 365

-in 指定签署请求文件 –CA指定ca签   -CAcreateserial  指定CA自己来签

-out 保存为证书文件  -days保存多久

结果: mageedu.crt

查看证书内容

openssl x509 -in mageedu.crt -text -noout

文本输出

把用户账号信息添加到去认证为连入k8s集群的信息

kubectl config set-credentials –help

设置认证

kubectl config set-credentials mageedu  --client-certificate=./mageedu.crt --client-key=./mageedu.key --embed-certs=true

mageedu  认证进入集群的认证名,与用户帐号要一样

--client-certificate  指定crt证书

--client-key  指定私钥

--embed-certs 是否隐藏证书

kubectl config view  查看已经创建集群管理员账号

设置上下文contexts,让mageedu,也能去访问集群

kubectl config set-context  mageedu@kubernetes --cluster=kubernetes --user=mageedu

上下文名称        指定的集群     指定的登录用户名

- context:

cluster: kubernetes 集群名

user: mageedu  登录名

name: clusteradmin@kubernetes  上下文名

切换账号  等于切换context

kubectl config use-context clusteradmin@kubernetes

测试访问

Kubectl get pods

设置集群

kubectl config set-cluster –help

kubectl config --help

kubectl config set-cluster mycluster --kubeconfig=/tmp/test.conf --server="https://192.168.85.110:6443"

集群名     指定配置文件      指定server

--certificate-authority=/etc/kubernetes/pki/ca.crt --embed-certs=true

指定CA证书                                 是否隐藏CA

验证查看创建的集群cluster

kubectl config view --kubeconfig=/tmp/test.conf

k8s之serviceaccount,登录账号创建的更多相关文章

  1. 模拟淘宝购物,运用cookie,记录登录账号信息,并且记住购物车内所选的商品

    1.登录界面 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEn ...

  2. appid账号创建及A D-U-M-S码创建

    APPID  企业账号创建流程及A D-U-N-S® Number 码创建(需要等2到3周时间,可以先创建成个人账号然后升级成公司账号)   021 26107504  邓白氏编码  1.需要VISI ...

  3. oracle登录管理员创建数据库和表空间

    登录管理员最高权限账号 cmd输入sqlplus 回车,或者直接打开sqlplus 用户名:sys 密码:sys as sysdba 1.首先,创建(新)用户: create user usernam ...

  4. Dynamics 365创建用户提示:您正在尝试使用已由其他用户使用的域登录来创建用户。如何解决。

    摘要: 本人微信公众号:微软动态CRM专家罗勇 ,回复287或者20181128可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me!我的网站是 www.luoyong.me ...

  5. SQLSever--基础学习--创建登录用户&创建数据库用户&分配权限

    如题,本文简记一下SQL Sever里面登录用户(login)的创建,数据库用户(DBUser)的创建,以及给数据库用户分配权限(Grant). 数据库有三层保护机制: 第一层:登录用户以及登录密码的 ...

  6. Springboot搭建Eureka并设置Eureka登录账号密码

    Springboot搭建Eureka并设置Eureka登录账号密码 一.创建一个springboot项目 1.可以使用Spring Initializr,用浏览器打开http://start.spri ...

  7. 如何在silverlight中以同步方式 获取sharepoint2013站点的当前登录账号

    最近有个项目用到了silverlight要同步方式获取当前登录账号.异步的方式无法跟其他应用结合.主要先后顺序问题.但是silverlight非常不好获取到当前登录账号.即使获取到了也是异步方式获取. ...

  8. 如何利用cookie来保存用户登录账号

    众所周知,cookie在网页编写中不接或缺,今天就谈谈如何利用cookie技术来保存用户登录账号 1.首先是否保存用户登录账号当然是用户自行决定,所以我们需要在用户登录界面设置一个复选框,以此取得用户 ...

  9. 用于下载AD官网登录账号:User name: fuxin918@fuxin918.com Passeword: s6c0W1w8

    用于下载AD官网登录账号:User name: fuxin918@fuxin918.com Passeword:  s6c0W1w8

  10. TortoiseSVN切换更改登录账号密码

    TortoiseSVN切换更改登录账号密码 方法: 在TortoiseSVN的设置对话框中,选择“已保存数据”,在“认证数据”那一行点击“清除”按钮,清楚保存的认证数据,再检出的时候就会重新跳出用户名 ...

随机推荐

  1. 在table中tr的display:block显示布局错乱问题

    参考链接:https://blog.csdn.net/zj853975468/article/details/51554054?utm_medium=distribute.pc_relevant_do ...

  2. Typecho添加一个当前页面加载完成速度时间

    判断当前页面加载是否快速,通常是直接在浏览器中访问网站,看自己的直观感受是否快速.而客观的方法则是计算具体的页面加载时间并显示出来给看. 1.在当前主题的functions.php文件添加下面的代码: ...

  3. mysql扫描全表更新状态部分失败

    1. mysql排序问题 一直以为mysql是按照主键排序的,实则排序和主键没有关系(不使用 order by 子句). 然后从 stackoverflow 上查了一下,找到了以下的回答: 没有默认的 ...

  4. CF1693F题解

    备注 发表时间:2023-06-17 21:51 前言 yny 学长来 cdqz 讲课,写一篇讲课的题的题解纪念一下. 题意 给你一个 01 序列,有以下操作: 选择一段区间 设 \(cnt_0,cn ...

  5. 基于ThreeJs的大屏3D地图(二)——气泡图、渐变柱体与热力图

    前提 上一篇文章中我们完成了地图区块模型的渲染,在此基础之上本篇来讲解气泡图.3D柱形图以及3D热力图的实现方式. 首先,为了更好的关注点分离及与地图渲染模块的解耦,我们可以把所有类型的可视化元素抽象 ...

  6. 解决vscode"无法加载文件 ,因为在此系统上禁止运行脚本"报错

    问题 在使用 vscode 自带程序终端时,会报"无法加载文件 ,因为在此系统上禁止运行脚本",这是因为 PowerShell 执行策略的问题. > tsc --init t ...

  7. 查看、安装python指定版本的包、安装卸载第三方模块

    python安装/卸载第三方包 (1)安装第三方包: 安装指令pip install xxx (xxx,需安装的包名) 安装特定版本的package:通过使用==, >=, <=, > ...

  8. NumPy学习10

    今天学习了3节: 18, NumPy副本和视图 19, NumPy字节交换 20, NumPy Matrix矩阵库 numpy_test10.py : import numpy as np ''' 1 ...

  9. 【离线地图】地图瓦片css复杂滤镜线段绘制

    需求: 目前已经对地图瓦片做了复杂滤镜的黑夜展示,现在又要在这个图片上绘制新的线段等内容,且不能被这个复杂滤镜影响,变成奇奇怪怪的颜色. 同时因为框架限制,只能在这个img上绘制 思考: 1.既然不想 ...

  10. docker 中几个节点意外宕机 pxc 无法启动

    docker 意外宕机,PXC启动不了解决方法 由于 意外宕机 docker start pxc 节点后闪退,解决方法如下 从节点中找任意一个数据卷映射目录,修改参数 [root@izuf64gdeg ...