#!/bin/bash
#by love19791126 107420988@qq.com
# 创建node节点上kubeconfig文件 在master节点部署
#kubeconfig是用于Node节点上kuber-proxy和kubelet与集群通信做的认证
# vim /etc/profile
# PATH=$PATH:/opt/kubernetes/bin

# source /etc/profile

chmod +x kube-proxy kubelet kubectl kube-apiserver kubeadm kube-controller-manager kube-scheduler
cp kube-proxy kubelet kubectl kube-apiserver kubeadm kube-controller-manager kube-scheduler /opt/kubernetes/bin/

#设置token
#手工方式生成CA非常麻烦,只适合少量机器,每次签证时都需要绑定Node IP,随着机器增加会带来很多的不便,因此这里使用TLS Bootstrapping的方式来进行授权,由apiserver自动为符合条件的Node发送证书授权加入集群。
#做法是在kubelet启动时,向kuber-apiserver传送TLS Bootstrapping请求,而kube-apiserver验证kubelet请求的token是否与设定的一样,如果一样则自动生成Kuberlet证书和密钥。
#首先生成BOOTSTRAP_TOKEN,并建立bootstrap.conf的kubeconfig
export BOOTSTRAP_TOKEN=$(head -c 16 /dev/urandom | od -An -t x | tr -d ' ')
cat > token.csv <<EOF
${BOOTSTRAP_TOKEN},kubelet-bootstrap,10001,"system:kubelet-bootstrap"
EOF

#设置api访问入口
export KUBE_APISERVER="https://192.168.1.251:6443"

#设置集群参数
kubectl config set-cluster kubernetes --certificate-authority=/opt/kubernetes/ssl/ca.pem --embed-certs=true --server="${KUBE_APISERVER}" --kubeconfig=bootstrap.kubeconfig

#设置客户端认证参数
kubectl config set-credentials kubelet-bootstrap --token=${BOOTSTRAP_TOKEN} --kubeconfig=bootstrap.kubeconfig

#设置上下文参数
kubectl config set-context default --cluster=kubernetes --user=kubelet-bootstrap --kubeconfig=bootstrap.kubeconfig

# 设置默认上下文
kubectl config use-context default --kubeconfig=bootstrap.kubeconfig

#设置kube-proxy kubeconfig文件
kubectl config set-cluster kubernetes --certificate-authority=/opt/kubernetes/ssl/ca.pem --embed-certs=true --server=${KUBE_APISERVER} --kubeconfig=kube-proxy.kubeconfig

#设置kube-proxy证书
kubectl config set-credentials kube-proxy --client-certificate=/opt/kubernetes/ssl/kube-proxy.pem --client-key=/opt/kubernetes/ssl/kube-proxy-key.pem --embed-certs=true --kubeconfig=kube-proxy.kubeconfig

#设置kube-proxy上下文
kubectl config set-context default --cluster=kubernetes --user=kube-proxy --kubeconfig=kube-proxy.kubeconfig

#设置kube-proxy默认上下文
kubectl config use-context default --kubeconfig=kube-proxy.kubeconfig

创建node节点上kubeconfig文件的更多相关文章

  1. 创建node节点的kubeconfig文件

    创建node节点的kubeconfig文件 1.创建TLS Bootstrapping Token export BOOTSTRAP_TOKEN=$(head -c 16 /dev/urandom | ...

  2. NodePort 只能在node节点上访问,外部无法访问

    创建了一个NodePort类型的jenkins service,node port 30000,node节点ip为192.168.56.101, 在node节点上通过浏览器能正常访问http://19 ...

  3. 输出redis cluster 主从的对应关系,如果同一个主从关系的master和slave在同一个node节点上,在输出的对应关系末尾输出提示

    需求:输出redis cluster 主从的对应关系,如果同一个主从关系的master和slave在同一个node节点上,在输出的对应关系末尾输出提示. 为什么会有这样的需求呢?在重新搭建redis ...

  4. svs 在创建的时候 上传文件夹 bin obj 这些不要提交

    svs  在创建的时候 上传文件夹 bin  obj  这些不要提交  右键-去除版本控制并增加到忽略列表

  5. kubernetes容器集群管理创建node节点kubeconfig文件

    1.创建TLS Bootstrapping Token 2.创建kubelet kubeconfig 3.创建kube-proxy kubeconfig 安装和设置kubectl [root@mast ...

  6. Node.js上传文件出现Unexpected field

    上传文件时,input框的name值要与node接口中single(' ')中的参数一致,否则会报"意外字段的错" 前端用的layui 后端node接口

  7. k8s,coredns内部测试node节点上的pod的calico是否正常的一个小技巧

    最近由于master整个挂掉,导致相关一些基础服务瘫掉,修复中测试有些节点网络又出现不通的情况正常的启动相关一些服务后,测试一些节点,比较费劲,还有进入pod,以及还有可能涉及命名空间操作这里可以这样 ...

  8. node.js 上传文件

    在工作中碰到了这样的需求,需要用nodejs 来上传文件,之前也只是知道怎么通过浏览器来上传文件,  用nodejs的话,  相当于模拟浏览器的行为. google 了一番之后,  明白了浏览器无非就 ...

  9. GitHub Desktop的使用,创建项目、上传文件,设置忽略文件

    下载登陆之后 新建项目File--第一个New repository 然后输入项目名称,选择项目文件夹,最后点Creata repository创建项目 这只是在本地建了项目. 项目文件夹中有其他文件 ...

随机推荐

  1. Python创建进程、线程的两种方式

    代码创建进程和线程的两种方式 """ 定心丸:Python创建进程和线程的方式基本都是一致的,包括其中的调用方法等,学会一个 另一个自然也就会了. "" ...

  2. Vue中v-model指令的常用修饰符

    v-model指令有三个可以选用的修饰符:.lazy..number以及.trim.vue官方对此的描述为: .number-输入字符串转为有效的数字 .lazy-取代input监听change事件 ...

  3. 《linux下的计算器:bc用法入门篇》

    说起电脑上的计算器,可能所有人的印象都是这样的:

  4. 攻防世界-web(进阶)-NaNNaNNaNNaN-Batman

    用winhex打开,发现是一个javascript代码.将文件重命名为html文件,用浏览器打开. 打开是一个输入框,输入任何东西都梅反应,尝试弹框输入也无果,继续查看代码. 查看代码,可以看到最开始 ...

  5. 清晰详细、可测量、可达到、目标导向、有时间限定,SMART目标定制原则

    设定目标的时候需要考虑的问题,可以对已经设定的目标进行完善 S 目标是清晰的,明确的 M 目标可以衡量的,可以用来评估的 A 目标是可以达到的,但是达到的过程有难度 R 目标导向,设定的目标对大目标具 ...

  6. python设计模式之责任链模式

    python设计模式之责任链模式 开发一个应用时,多数时候我们都能预先知道哪个方法能处理某个特定请求.然而,情况并非总是如此.例如,想想任意一种广播计算机网络,例如最早的以太网实现.在广播计算机网络中 ...

  7. Typescript node starter 2.Router Middleware

    Router 路由器对象是中间件和路由的一个独立实例.可以将它视为一个“迷你应用程序”,仅能够执行中间件和路由功能.每个Express应用程序都有一个内置的应用程序路由器. 路由器的行为类似于中间件本 ...

  8. leetcode刷题记录——哈希表

    1.两数之和 可以先对数组进行排序,然后使用双指针方法或者二分查找方法.这样做的时间复杂度为 O(NlogN),空间复杂度为 O(1). 用 HashMap 存储数组元素和索引的映射,在访问到 num ...

  9. 下拉菜单,下拉导航,JavaScript,html,jQuery的实现代码

    <!DOCTYPE html> <html lang="en"> <head>     <meta charset="UTF-8 ...

  10. Eclipse导入项目后JSP页面出现报红

    Multiple annotations found at this line:- javax.servlet.jsp.JspException cannot be resolved to a typ ...