04-创建kubeconfig认证文件

  1. https://www.cnblogs.com/guigujun/p/8366530.html
  2.  
  3. 学习一下 貌似挺有用的.

本文档记录自己的学习历程!

创建 kubeconfig 文件

kubeletkube-proxy 等 Node 机器上的进程与 Master 机器的 kube-apiserver 进程通信时需要认证和授权;

kubernetes 1.4 开始支持由 kube-apiserver 为客户端生成 TLS 证书的 TLS Bootstrapping 功能,这样就不需要为每个客户端生成证书了;该功能当前仅支持为 kubelet 生成证书;

创建 TLS Bootstrapping Token

Token auth file

Token可以是任意的包涵128 bit的字符串,可以使用安全的随机数发生器生成

  1. export BOOTSTRAP_TOKEN=$(head -c 16 /dev/urandom | od -An -t x | tr -d ' ')
  2. cat > token.csv <<EOF
  3. ${BOOTSTRAP_TOKEN},kubelet-bootstrap,10001,"system:kubelet-bootstrap"
  4. EOF

后三行是一句,直接复制上面的脚本运行即可。

将token.csv发到所有机器(Master 和 Node)的 /etc/kubernetes/ 目录。

  1. # cp token.csv /etc/kubernetes/
  2. # scp token.csv xxxx:/etc/kubernetes/

创建 kubelet bootstrapping kubeconfig 文件

  1. # cd /etc/kubernetes
  2. # export KUBE_APISERVER="https://192.168.1.121:6443"
  3. # # 设置集群参数
  4. # kubectl config set-cluster kubernetes \
  5. --certificate-authority=/etc/kubernetes/ssl/ca.pem \
  6. --embed-certs=true \
  7. --server=${KUBE_APISERVER} \
  8. --kubeconfig=bootstrap.kubeconfig
  9. # # 设置客户端认证参数
  10. # kubectl config set-credentials kubelet-bootstrap \
  11. --token=${BOOTSTRAP_TOKEN} \
  12. --kubeconfig=bootstrap.kubeconfig
  13. # # 设置上下文参数
  14. # kubectl config set-context default \
  15. --cluster=kubernetes \
  16. --user=kubelet-bootstrap \
  17. --kubeconfig=bootstrap.kubeconfig
  18. # # 设置默认上下文
  19. # kubectl config use-context default --kubeconfig=bootstrap.kubeconfig
  • --embed-certs 为 true 时表示将 certificate-authority 证书写入到生成的 bootstrap.kubeconfig 文件中;
  • 设置客户端认证参数时没有指定秘钥和证书,后续由 kube-apiserver 自动生成;

创建 kube-proxy kubeconfig 文件

  1. # export KUBE_APISERVER="https://192.168.1.121:6443"
  2. # # 设置集群参数
  3. # kubectl config set-cluster kubernetes \
  4. --certificate-authority=/etc/kubernetes/ssl/ca.pem \
  5. --embed-certs=true \
  6. --server=${KUBE_APISERVER} \
  7. --kubeconfig=kube-proxy.kubeconfig
  8. # # 设置客户端认证参数
  9. # kubectl config set-credentials kube-proxy \
  10. --client-certificate=/etc/kubernetes/ssl/kube-proxy.pem \
  11. --client-key=/etc/kubernetes/ssl/kube-proxy-key.pem \
  12. --embed-certs=true \
  13. --kubeconfig=kube-proxy.kubeconfig
  14. # # 设置上下文参数
  15. # kubectl config set-context default \
  16. --cluster=kubernetes \
  17. --user=kube-proxy \
  18. --kubeconfig=kube-proxy.kubeconfig
  19. 3 # 设置默认上下文
  20. # kubectl config use-context default --kubeconfig=kube-proxy.kubeconfig
  • 设置集群参数和客户端认证参数时 --embed-certs 都为 true,这会将 certificate-authorityclient-certificate 和 client-key 指向的证书文件内容写入到生成的 kube-proxy.kubeconfig 文件中;
  • kube-proxy.pem 证书中 CN 为 system:kube-proxykube-apiserver 预定义的 RoleBinding cluster-admin 将User system:kube-proxy 与 Role system:node-proxier 绑定,该 Role 授予了调用 kube-apiserver Proxy 相关 API 的权限;

分发 kubeconfig 文件

将两个 kubeconfig 文件分发到所有 Node 机器的 /etc/kubernetes/ 目录

  1. # cp bootstrap.kubeconfig kube-proxy.kubeconfig /etc/kubernetes/
  2. # scp bootstrap.kubeconfig kube-proxy.kubeconfig xxxx:/etc/kubernetes/
不要让懒惰占据你的大脑,不让要妥协拖跨你的人生。青春就是一张票,能不能赶上时代的快车,你的步伐掌握在你的脚下,good luck

[转帖]04-创建kubeconfig认证文件的更多相关文章

  1. 04-创建kubeconfig认证文件

    本文档记录自己的学习历程! 创建 kubeconfig 文件 kubelet.kube-proxy 等 Node 机器上的进程与 Master 机器的 kube-apiserver 进程通信时需要认证 ...

  2. Yii2 restful api创建,认证授权以及速率控制

    Yii2 restful api创建,认证授权以及速率控制 下面是对restful从创建到速率控制的一个详细流程介绍,里面的步骤以及截图尽可能详细,熟悉restful的盆友可能觉得过于繁琐,新手不妨耐 ...

  3. Git - 远程库的创建与认证

    前些日子因为某些原因,需要在windows上创建一个remote仓库. 由于实在是太麻烦而且时间紧急,就直接用了gitstack. 发现这个东西居然需要付费,未认证时只能创建两个用户. 其实对我而言足 ...

  4. Ubunut18.04与Windows传输文件的方式

    ubunut18.04与Windows传输文件的方式 开发环境:ubuntu18.04; 虚拟机:virtual box; 操作系统:Win10_64bits/专业版 在以前使用的ubuntu12.0 ...

  5. kubernetes中使用ServiceAccount创建kubectl config 文件

    在kubernetes 为不同的项目创建了不同的SerivceAccount,那么如何通过ServiceAccount创建 kubectl config文件呢?使用下面脚本即可 # your serv ...

  6. 使用ZwMapViewOfSection创建内存映射文件总结

    标 题: [原创]使用ZwMapViewOfSection创建内存映射文件总结 作 者: 小覃 时 间: 2012-06-15,02:28:36 链 接: http://bbs.pediy.com/s ...

  7. 用字符流实现每个文件夹中创建包含所有文件信息的readme.txt

    package com.readme; import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; i ...

  8. Swift: 在Swift中桥接OC文件(自己创建的类文件、第三方库文件)

    一.介绍 随着Swift的逐渐成熟,使用swift开发或者混合开发已经成为了一个趋势,本身苹果公司也十分推荐使用Swift这门新语言.目前Swift已经更新到了3.0,估计没有多久4.0就要出来了.那 ...

  9. iOS创建、删除文件夹、获取沙盒路径

    1.获取沙盒路径 // 获取沙盒路径 NSString *documentsDirectory = [NSHomeDirectory() stringByAppendingPathComponent: ...

随机推荐

  1. Linux之字符串截取

    获取字符串的长度 在 Shell 中获取字符串长度很简单,具体方法如下: ${#string_name} string_name 表示字符串名字. root@master:~# b="ma ...

  2. Tkinter 之ProgressBar进度条标签

    一.参数说明 参数 作用 cursor 鼠标位于进度条内时的形状 length 进度条长度 maximum 进度条最大刻度值 mode  进度条的模式.有两种:‘determinate’和’indet ...

  3. LDA算法 (主题模型算法) 学习笔记

    转载请注明出处: http://www.cnblogs.com/gufeiyang 随着互联网的发展,文本分析越来越受到重视.由于文本格式的复杂性,人们往往很难直接利用文本进行分析.因此一些将文本数值 ...

  4. 移动端滚动选择器mobileSelect.js

    一款多功能的移动端滚动选择器,支持单选到多选.支持多级级联.提供自定义回调函数.提供update函数二次渲染.重定位函数.兼容pc端拖拽等等.. 特性 原生js移动端选择控件,不依赖任何库 可传入普通 ...

  5. game-hacking

    https://github.com/dsasmblr/game-hacking Cheat Engine Hacking memory Cheat engine have a feature cal ...

  6. UE4虚幻引擎独立游戏制作教程 UE4编程教学 虚幻引擎4

    非常好的一套UE4入门教学课程,语言诙谐幽默,并且是中文语音中文语音中文语音 赠送[精通Unreal引擎技术——关卡设计艺术]PDF版 目录 FLV格式,大小5G,中文语音 扫码时备注或说明中留下邮箱 ...

  7. 多个请求共用一个Servlet(JavaWEB)

    我们在对JavaWEB工程进行开发的时候,我们经常会遇到这样一个问题,在jsp中发送到Servlet的每一个请求都要写一个对应的Servlet,这样会造成一个工程完成下来需要写几十个Servlet,那 ...

  8. ISO/IEC 9899:2011 条款6.5.7——按位移位操作符

    6.5.7 按位移位操作符 语法 1.shift-expression: additive-expression shift-expression    <<    additive-ex ...

  9. IMDB-WIKI – 500k+ face images with age and gender labels论文学习

    DEX: Deep EXpectation of apparent age from a single image 这个论文我们使用深度学习解决了在静态人脸图像中面部年龄的估计.我们的卷积神经网络使用 ...

  10. Python初级 4 数据的类型

    一.数据类型 1.整数: int a = 3 b = 5 2.浮点数: float a = 3.0 b = 5.2 3.字符串: str a = "3.0" b = "3 ...