k8s之serviceaccount,登录账号创建
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,登录账号创建的更多相关文章
- 模拟淘宝购物,运用cookie,记录登录账号信息,并且记住购物车内所选的商品
1.登录界面 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEn ...
- appid账号创建及A D-U-M-S码创建
APPID 企业账号创建流程及A D-U-N-S® Number 码创建(需要等2到3周时间,可以先创建成个人账号然后升级成公司账号) 021 26107504 邓白氏编码 1.需要VISI ...
- oracle登录管理员创建数据库和表空间
登录管理员最高权限账号 cmd输入sqlplus 回车,或者直接打开sqlplus 用户名:sys 密码:sys as sysdba 1.首先,创建(新)用户: create user usernam ...
- Dynamics 365创建用户提示:您正在尝试使用已由其他用户使用的域登录来创建用户。如何解决。
摘要: 本人微信公众号:微软动态CRM专家罗勇 ,回复287或者20181128可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me!我的网站是 www.luoyong.me ...
- SQLSever--基础学习--创建登录用户&创建数据库用户&分配权限
如题,本文简记一下SQL Sever里面登录用户(login)的创建,数据库用户(DBUser)的创建,以及给数据库用户分配权限(Grant). 数据库有三层保护机制: 第一层:登录用户以及登录密码的 ...
- Springboot搭建Eureka并设置Eureka登录账号密码
Springboot搭建Eureka并设置Eureka登录账号密码 一.创建一个springboot项目 1.可以使用Spring Initializr,用浏览器打开http://start.spri ...
- 如何在silverlight中以同步方式 获取sharepoint2013站点的当前登录账号
最近有个项目用到了silverlight要同步方式获取当前登录账号.异步的方式无法跟其他应用结合.主要先后顺序问题.但是silverlight非常不好获取到当前登录账号.即使获取到了也是异步方式获取. ...
- 如何利用cookie来保存用户登录账号
众所周知,cookie在网页编写中不接或缺,今天就谈谈如何利用cookie技术来保存用户登录账号 1.首先是否保存用户登录账号当然是用户自行决定,所以我们需要在用户登录界面设置一个复选框,以此取得用户 ...
- 用于下载AD官网登录账号:User name: fuxin918@fuxin918.com Passeword: s6c0W1w8
用于下载AD官网登录账号:User name: fuxin918@fuxin918.com Passeword: s6c0W1w8
- TortoiseSVN切换更改登录账号密码
TortoiseSVN切换更改登录账号密码 方法: 在TortoiseSVN的设置对话框中,选择“已保存数据”,在“认证数据”那一行点击“清除”按钮,清楚保存的认证数据,再检出的时候就会重新跳出用户名 ...
随机推荐
- 解密prompt系列48. DeepSeek R1 & Kimi 1.5长思维链 - RL Scaling
春节前DeepSeek R1和Kimi1.5炸翻天了,之前大家推测的O1的实现路径,多数都集中在MCTS推理优化,以及STaR等样本自优化方案等等,结果DeepSeek和Kiim直接出手揭示了reas ...
- 动态编译 Java 的神器 Liquor v1.3.10 发布
Liquor 是一个开源的轻量级 Java 动态编译器(零依赖,40KB),它可以在运行时编译 Java 字符串代码片段.类.方法等. 源码地址:https://gitee.com/noear/liq ...
- WPF 调试工具使用
参考链接: https://supportcenter.devexpress.com/ticket/details/t720001/how-to-use-the-snoop-utility-to-in ...
- 解决黑群晖 Docker 日志八小时时间差的有效方法
步骤一:登录黑群晖控制台 首先,我们需要登录到黑群晖控制台.可以通过SSH登录,或是直接在黑群晖控制台界面上操作. 步骤二:停止相关的Docker容器 在解决时间差问题之前,我们需要停止相关的Dock ...
- Hive - 表相关
一.文件存储格式 Hive的文件存储格式包括:textfile.sequence.rcfile.orc.parquet textfile (简介)默认的文件格式,基于行存储.建表时不指定存储格式即为t ...
- 印度股票实时行情API数据源接口
StockTV API: 提供实时和历史行情数据,覆盖印度所有股票和指数,支持WebSocket和REST API接口.(推荐使用,对接简单,有技术支持) 新浪财经:提供股票市场数据,可以优先考虑 ...
- idle如何调试程序
1.启动idle ctrl+n 快捷键 新建命令窗口 输入程序 4.F5 调试程序,结果看在启动界面查看
- SpringSecurity5(1-快速入门)
依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spri ...
- php 配置Gmail 发送邮件 PHPMailer
hotmail 获取邮箱授权码 准备 首先你应该登陆https://mail.google.com地址,注册一个Gmail邮箱,然后设置开启IMAP访问 打开设置,开启IMAP访问 获取应用专用密码 ...
- 基础指令:mkdir、ls、cd、pwd、touch、rm、mv、cp、echo、cat、关机与重启
目录 1. 创建目录 2. 查看目录内容 3. 进入指定目录(传送) 4. 显示当前所在位置 5. 创建文件 6. 删除文件或目录 7. 移动文件 8. 复制文件或目录 9. echo输出信息到屏幕 ...