1.什么是kubeconfig文件

用于配置集群访问的文件称为kubeconfig文件,这是引用配置文件的常用方法,但并不是说有一个名为kubeconfig的文件。

使用kubeconfig文件来组织有关集群、用户、命名空间和身份认证机制的信息。kubectl命令行根据使用kubeconfig文件来查找选择集群所需的信息,并与集群的API服务进行通信。

默认情况下,kubectl在$HOME/.kube目录下查找名为config的文件,可以通过设置KUBECONFIG环境变量或设置--kubeconfig参数来指定其他Kubeconfig文件。

kubectl是操作k8s的一个客户端工具,只要为kubectl提供链接apiserver的配置(kubeconfig),kubectl可以在任何地方操作该集群。

kubeconfig的一个示例如下:该示例为2个集群

apiVersion: v1
clusters:
- cluster:certificate-authority-data: xxxserver: https://xxx:6443name: cluster1
- cluster:certificate-authority-data: xxxserver: https://xxx:6443name: cluster2
contexts:
- context:cluster: cluster1user: kubeletname: cluster1-context
- context:cluster: cluster2user: kubeletname: cluster2-context
current-context: cluster1-context
kind: Config
preferences: {}
users:
- name: kubeletuser:client-certificate-data: xxxclient-key-data: xxx

其中apiVersion和kind标识客户端解析器的版本和模式,不应该手动编辑,preferences指定当前可选(和当前未使用)的kubectl首选项

2.kubeconfig文件详解

2.1cluseter

cluster中国包含k8s集群的端点数据,包括集群的证书颁发机构以及完整的URL。可以使用Kubectl config set-cluster添加或修改cluster条目。

cluster:
-cluster:certificate-authority-data:xxxxxserver:urlname:clusterName

多个集群的话直接在后面添加-cluster部分即可

2.2contexts

contexts定义了一个命名的cluster、user、namespace元组,用于使用提供的认证信息和命名空间将请求发送到指定的集群

三者都是可选的,仅使用cluster,user,namespace之一指定上下文,或指定none。

未指定的值或在加载的kubeconfig中没有相应条目的命名值将被替换为默认值。

contexts:
- context:cluster:xxxuser:xxxname:xxx

可以使用kubectl config set-context添加或修改上下文条目。

2.3current-context

current-context是作为cluster、user、namespace元组的key。当kubectl从该文件中加载配置的时候会被默认使用。

可以在kubectl命令行里覆盖这些值,分别传入--context=CONTEXT、--cluster=CLUSTER、

--user=USER和--namespace=NAMESPACE。

kubectl get node --kubeconfig=./kubeconfig --context=cluster2-context

在第一部分的示例中,若不指定context则默认使用cluster1-context。可以使用kubectl config use-context更改current-context。

2.4users

users定义向k8s集群进行身份验证的客户端凭据。可用凭证有client-certificate、client-key、token和username/password。username/password和token只能二选一,client-certificate和client-key可以分别与他们组合。

可以使用kubectl config set-credentials添加或者修改user条目。

3.使用kubeconfig文件配置kubectl跨集群认证

如第一部分所说kubectl是操作k8s的一个客户端工具,只要为kubectl提供链接apiserver的配置(kubeconfig),kubectl可以在任何地方操作该集群。若要使用多个集群,在kubeconfig文件中配置多个集群,kubectl可以在多个集群间切换。如第一部分的示例文件中就设置了2个集群。

kubectl加载配置文件的顺序:

1)kubectl默认连接本机的8080端口

2)从$HOME/.kube目录下查找文件名为config的文件

3)通过设置环境变量KUBECONFIG或者通过设置去指定其他的kubeconfig文件

# 设置 KUBECONFIG 的环境变量
export KUBECONFIG=/etc/kubernetes/kubeconfig/kubelet.kubeconfig
# 指定 kubeconfig 文件
kubectl get node --kubeconfig=/etc/kubernetes/kubeconfig/kubelet.kubeconfig
# 使用不同的 context 在多个集群之间切换
kubectl  get node --kubeconfig=./kubeconfig --context=cluster1-context

k8s学习:kubeconfig文件详解相关推荐

  1. Kubernetes(k8s) YAML文件详解

    文章目录 一.yaml文件简介 1)yaml的语法规则: 2)在Kubernetes中,只需要知道两种结构类型即可: 二.yaml常见语法 1)apiVersion 2)kind 3)metadata ...

  2. ElasticSearch 5.3源码学习 —— Segments_N 文件详解

    概览 Lucene当前活跃的Segment都会存在一个Segment Info文件里,也就是segments_N.如果有多个segments_N,那么序号最大的就是最新的. segments_N用Se ...

  3. 【java学习之路】(java框架)004.Mybatis SQL映射文件详解

    02Mybatis SQL映射文件详解 ​ 在之前我们学习了mybatis的全局配置文件,下面我们开始学习mybatis的映射文件,在映射文件中,可以编写以下的顶级元素标签: cache – 该命名空 ...

  4. oracle控制文件都一样么,Oracle控制文件详解

    一.Oracle控制文件 为二进制文件,初始化大小由CREATEDATABASE指定,可以使用RMAN备份 记录了当前数据库的结构信息,同时也包含数据文件及日志文件的信息以及相关的状态,归档信息等等 ...

  5. halcon例程讲解_跟我学机器视觉-HALCON学习例程中文详解-开关引脚测量

    跟我学机器视觉-HALCON学习例程中文详解-开关引脚测量 This example program demonstrates the basic usage of a measure object. ...

  6. 深度学习开发环境调查结果公布,你的配置是这样吗?(附新环境配置) By 李泽南2017年6月26日 15:57 本周一(6 月 19 日)机器之心发表文章《我的深度学习开发环境详解:Te

    深度学习开发环境调查结果公布,你的配置是这样吗?(附新环境配置) 机器之心 2017-06-25 12:27 阅读:108 摘要:参与:李泽南.李亚洲本周一(6月19日)机器之心发表文章<我的深 ...

  7. PE文件详解(教程1-7)

    PE文件详解(教程1-7) ========================================= PE教程1: PE文件格式一览 PE 的意思就是 Portable Executable ...

  8. IOS学习之UINavigationController详解与使用(一)添加UIBarButtonItem

    转:http://blog.csdn.net/totogo2010/article/details/7681879 1.UINavigationController导航控制器如何使用 UINaviga ...

  9. php 表单提交文件大小,PHP如何通过表单直接提交大文件详解

    PHP如何通过表单直接提交大文件详解 前言 我想通过表单直接提交大文件,django 那边我就是这么干的.而对于 php 来说,我认为尽管可以设置最大上传的大小,但最大也无法超过内存大小,因为它无法把 ...

  10. laravel 如何 new php 类,PHP实例:laravel通过创建自定义artisan make命令来新建类文件详解...

    <PHP实例:laravel通过创建自定义artisan make命令来新建类文件详解>要点: 本文介绍了PHP实例:laravel通过创建自定义artisan make命令来新建类文件详 ...

最新文章

  1. Visual Studio 2010 的新机遇
  2. 《编码:隐匿在计算机软硬件背后的语言(美)》读书笔记二
  3. Oracle登录命令
  4. 从ICLR 2022看什么是好的图神经网络?
  5. hdu 4501 多维0-1背包
  6. jBPM4.4 window下启动tomcat
  7. 微软宣布下一代集成开发环境 — Visual Studio 2019
  8. 使用单项循环链表实现字典操作(算法导论第十章10.2-5题)
  9. java date 相差_java 比较时间相差多少分钟
  10. 索引sql server_维护SQL Server索引
  11. 静电场求电场强度E和电势U的方法
  12. 【t092】迷之阶梯
  13. 其他浏览器可以上网,只有谷歌浏览器不行解决方案
  14. Linux系统设置固定ip
  15. DirectX 12 3D 游戏开发与实战第五章内容
  16. Java 编程问题:二、对象、不变性和`switch`表达式
  17. c语言编写计算ackerman函数的递归函数ack(n,x,y),第六章函数与宏定义实验报告二...
  18. Python仿真|如何操纵足球比赛的输赢
  19. 动态规划初识(从dfs到dfs优化到动态规划顺推和逆推)
  20. Cadence 如何通过.dra(封装)查看使用哪个.pad(焊盘)文件

热门文章

  1. 高等代数——大学高等代数课程创新教材(丘维声)——3.6笔记+习题
  2. Java零基础进阶教程分享,人手一套的javase实用视频教程
  3. 我的网址收藏-更新日期(2014-09-04)
  4. 系统体系结构框架 DoDAF
  5. Amos实操教程 | 中介效应检验
  6. 小米球ngrok如何后台启动
  7. Scala快速入门到精通 视频教程 百度云网盘下载地址
  8. SolidWorks 2018 安装教程
  9. 51单片机——LCD12864
  10. C语言约瑟夫环(简单版)