配置对多集群的访问
本文展示如何使用配置文件来配置对多个集群的访问。在将集群、用户和上下文定义在一个或多个配置文件中之后,用户可以使用
kubectlconfiguse-context
命令快速地在集群之间进行切换。
在开始之前
你必须拥有一个Kubernetes的集群,同时你的Kubernetes集群必须带有kubectl命令行工具。建议在至少有两个节点的集群上运行本教程,且这些节点不作为控制平面主机。如果你还没有集群,你可以通过Minikube构建一个你自己的集群,或者你可以使用下面任意一个Kubernetes工具构建:
要检查kubectl是否安装,执行
kubectlversion--Client
命令。kubectl的版本应该与集群的API
服务器
使用同一次版本号。
定义集群、用户和上下文
假设用户有两个集群,一个用于正式开发工作,一个用于其它临时用途(scratch)。在
development
集群中,前端开发者在名为的名字空间下工作,存储开发者在名为的名字空间下工作。在集群中,开发人员可能在默认名字空间下工作,也可能视情况创建附加的名字空间。访问开发集群需要通过证书进行认证。访问其它临时用途的集群需要通过用户名和密码进行认证。
创建名为
config-exercise
的目录。在
config-exercise
目录中,创建名为
config-demo
的文件,其内容为:
apiVersion: v1kind: Configpreferences: {}clusters:- cluster:name: development- cluster:name: scratchusers:- name: developer- name: experimentercontexts:- context:name: dev-frontend- context:name: dev-storage- context:name: exp-scratch
配置文件描述了集群、用户名和上下文。
config-demo
文件中含有描述两个集群、两个用户和三个上下文的框架。
进入
config-exercise
目录。输入以下命令,将集群详细信息添加到配置文件中:
kubectl config --kubeconfig=config-demo set-cluster development --server=--certificate-authority=fake-ca-filekubectl config --kubeconfig=config-demo set-cluster scratch --server=--insecure-skip-tls-verify
将用户详细信息添加到配置文件中:
kubectl config --kubeconfig=config-demo set-credentials developer --client-certificate=fake-cert-file --client-key=fake-key-seefilekubectl config --kubeconfig=config-demo set-credentials experimenter --username=exp --password=some-password
将上下文详细信息添加到配置文件中:
kubectl config --kubeconfig=config-demo set-context dev-frontend --cluster=development --namespace=frontend --user=developerkubectl config --kubeconfig=config-demo set-context dev-storage --cluster=development --namespace=storage --user=developerkubectl config --kubeconfig=config-demo set-context exp-scratch --cluster=scratch --namespace=default --user=experimenter
打开
config-demo
文件查看添加的详细信息。也可以使用
configview
命令进行查看:
kubectl config --kubeconfig=config-demo view
输出展示了两个集群、两个用户和三个上下文:
apiVersion: v1clusters:- cluster:certificate-authority: fake-ca-fileserver:development- cluster:insecure-skip-tls-verify: trueserver:scratchcontexts:- context:cluster: developmentnamespace: frontenduser: developername: dev-frontend- context:cluster: developmentnamespace: storageuser: developername: dev-storage- context:cluster: scratchnamespace: defaultuser: experimentername: exp-scratchcurrent-context: ""kind: Configpreferences: {}users:- name: developeruser:client-certificate: fake-cert-fileclient-key: fake-key-file- name: experimenteruser:password: some-passwordusername: exp
其中的
fake-ca-file
、
fake-cert-file
和
fake-key-file
是证书文件路径名的占位符。你需要更改这些值,使之对应你的环境中证书文件的实际路径名。
有时你可能希望在这里使用BASE64编码的数据而不是一个个独立的证书文件。如果是这样,你需要在键名上添加后缀。例如,
certificate-authority-data
、
client-certificate-data
和
client-key-data
。
每个上下文包含三部分(集群、用户和名字空间),例如,
dev-frontend
上下文表明:使用用户的凭证来访问
development
集群的名字空间。
设置当前上下文:
kubectl config --kubeconfig=config-demo use-context dev-frontend
现在当输入命令时,相应动作会应用于
dev-frontend
上下文中所列的集群和名字空间,同时,命令会使用
dev-frontend
上下文中所列用户的凭证。
使用参数,来查看与当前上下文相关联的配置信息。
kubectl config --kubeconfig=config-demo view --minify
输出结果展示了
dev-frontend
上下文相关的配置信息:
apiVersion: v1clusters:- cluster:certificate-authority: fake-ca-fileserver:developmentcontexts:- context:cluster: developmentnamespace: frontenduser: developername: dev-frontendcurrent-context: dev-frontendkind: Configpreferences: {}users:- name: developeruser:client-certificate: fake-cert-fileclient-key: fake-key-file
现在假设用户希望在其它临时用途集群中工作一段时间。
将当前上下文更改为
exp-scratch
:
kubectl config --kubeconfig=config-demo use-context exp-scratch
现在你发出的所有命令都将应用于集群的默认名字空间。同时,命令会使用
exp-scratch
上下文中所列用户的凭证。
查看更新后的当前上下文
exp-scratch
相关的配置:
kubectl config --kubeconfig=config-demo view --minify
最后,假设用户希望在
development
集群中的名字空间下工作一段时间。
将当前上下文更改为
dev-storage
:
kubectl config --kubeconfig=config-demo use-context dev-storage
查看更新后的当前上下文
dev-storage
相关的配置:
kubectl config --kubeconfig=config-demo view --minify
创建第二个配置文件
在
config-exercise
目录中,创建名为
config-demo-2
的文件,其中包含以下内容:
apiVersion: v1kind: Configpreferences: {}contexts:- context:cluster: developmentnamespace: rampuser: developername: dev-ramp-up
上述配置文件定义了一个新的上下文,名为
dev-ramp-up
。
设置KUBECONFIG环境变量
查看是否有名为
KUBECONFIG
的环境变量。如有,保存
KUBECONFIG
环境变量当前的值,以便稍后恢复。例如:
export KUBECONFIG_SAVED="$KUBECONFIG"
windowsPowerShell
$Env:KUBECONFIG_SAVED=$ENV:KUBECONFIG
KUBECONFIG
环境变量是配置文件路径的列表,该列表在Linux和Mac中以冒号分隔,在Windows中以分号分隔。如果有
KUBECONFIG
环境变量,请熟悉列表中的配置文件。
临时添加两条路径到
KUBECONFIG
环境变量中。例如:
export KUBECONFIG="${KUBECONFIG}:config-demo:config-demo-2"
WindowsPowerShell
$Env:KUBECONFIG=("config-demo;config-demo-2")
在
config-exercise
目录中输入以下命令:
kubectl config view
输出展示了
KUBECONFIG
环境变量中所列举的所有文件合并后的信息。特别地,注意合并信息中包含来自
config-demo-2
文件的
dev-ramp-up
上下文和来自
config-demo
文件的三个上下文:
contexts:- context:cluster: developmentnamespace: frontenduser: developername: dev-frontend- context:cluster: developmentnamespace: rampuser: developername: dev-ramp-up- context:cluster: developmentnamespace: storageuser: developername: dev-storage- context:cluster: scratchnamespace: defaultuser: experimentername: exp-scratch
探索$HOME/.kube目录
如果用户已经拥有一个集群,可以使用与集群进行交互,那么很可能在
$HOME/.kube
目录下有一个名为的文件。
进入
$HOME/.kube
目录,看看那里有什么文件。通常会有一个名为的文件,目录中可能还有其他配置文件。请简单地熟悉这些文件的内容。
将$HOME/.kube/config追加到KUBECONFIG环境变量中
如果有
$HOME/.kube/config
文件,并且还未列在
KUBECONFIG
环境变量中,那么现在将它追加到
KUBECONFIG
环境变量中。例如:
export KUBECONFIG="${KUBECONFIG}:$HOME/.kube/config"
WindowsPowershell
$Env:KUBECONFIG="$Env:KUBECONFIG;$HOME\.kube\config"
在配置练习目录中输入以下命令,查看当前
KUBECONFIG
环境变量中列举的所有文件合并后的配置信息:
kubectl config view
清理
将
KUBECONFIG
环境变量还原为原始值。例如:
export KUBECONFIG="$KUBECONFIG_SAVED"
WindowsPowerShell
$Env:KUBECONFIG=$ENV:KUBECONFIG_SAVED
怎样深入学习php,成为php高手?
课程:MySQL数据库的创建、修改及删除;数据表的创建、修改及删除;无限分类的数据表设计;记录的插入、更新、删除及查找;外键与连接;索引;存储过程,触发器,游标;事务处理;数据库引擎详解;数据库集群,数据库读写分离、类与对象,类的定义;属性与方法;$this关键字、 self关键字;继承,多态;魔术方法;抽象类与接口;设计模式;PDO类;JpGraph图表,FusionCharts图表;PHP高级应用(Smarty模板、PHP框架技术)等。
百战天虫4:伤害英文版怎么玩?
game 快速开始游戏 教程模式 故事模式 多人游戏 deathmatch 死亡比赛 homeland 家乡 destruction 破坏 statue defend 雕像保卫 survivor 幸存者 自定义 create team 创建队伍 edit team 编辑队伍 delete team 删除队伍 create weapon 创建武器 edit weapon 编辑武器 delete weapon 删除武器 1:payload 载重量 2:bombs 炸弹 3:wind affected 风力影响 4:detonation 爆炸 5:poison 毒药 6:land damage 陆地毁坏 7:worm damage 虫子毁坏 8:blast strength 爆炸力 9:power up launch 发射攻率 10:max launch power 最大发射功率 11:homing 制导性(跟踪导弹性) 12:cluster 集群 13:max throw strength 最高投掷力量 create game style 创建游戏方式 edit game style 编辑游戏方式 delete game style 删除游戏方式 1:number of rounds 回合数 2:turn time 移动时间 3:round time 回合时间 4:worm health 虫子生命值 5:worm select 虫子的选择 6:sudden death 突然死亡 7:water rise speed 水位上升速度 8:telepad 传送平台 9:mine fuse 地雷引信(random 随机) 10:weapon crate 武器箱 11:utility crate 公文包 12:mystery crate 神秘的箱子 13:health crate 卫生箱 14:land object 土地用途 15:stockpiling 储存 16:artillery mode 火炮模式 17:retreat time 后退时间(攻击完后的移动时间) 18:fall damage 跌落伤害 挑战模式 play 网上(联机)游戏 cabinet 奖品柜 shop 游戏商店 选项 退出 这些是转来的,如果你想要攻略,可以上网找,怕麻烦的话我也可以发给你。 有空咱俩还可以联网切磋切磋。
建立一个门户网站的完整过程是什么?涉及什么技术,需要些什么软件?
看了你的追问我想你是知道这3步的吧1。 买域名 2。 买空间 3。 网站上线下面对你的提问的回答:linux系统和WINDOWS XP能同时都用么?正常情况下就用一个。 网站一定要服务器,不要服务器。 如何将代码解析成文字给图片的效果,给用户看。 服务器就是解析用的 服务器是需要安全保护。 但是你是租的服务器,所以就脱管 了。 系统安全你就交给你选择的服务提供商吧。 动态网站的安全就要看网页的质量。 推荐使用网站模版进行2次开发。 省时,省事,省钱。 而且相对于自己开发的网站模版其安全模块是有专人处理的。 建站的详细具体的流程这个我还真不知道。 详细法?你说你知道买空间,买域名,还有模版。 那你缺的就是上手试试。 你可以上网上了解下免费的空间 域名。 试试网友写的图文教程。 放一个模版到带域名的空间上。 雏型应该有了门户网站是什么。 你将打开浏览全部,那就是门户的门户。 。 。 。 。 你确定你上的是门户。 我就建过个人站。 。 。 。 实际可能不是这样。 毕竟麻 累死人啊涉及什么技术?数据库+后台+前台后台:(JSP /ASP(out)// PHP)+前台:(HTML+Javascript+CSS+as)+数据库(Mysql+Mssql+Oracle没用过。 。 )等有什么需要就应运而生出何种技术。 你具体看情况而定。 需要些什么软件?+HTML+Javascript+css+as等这些编码软件很多Dreamweaver,Flash都是。 JSP /ASP(out)// PHPJSP你摆渡JSP入门到精通在线看。 第一章一定有开发环境的讲解。 。 。 。 。 。 你摆渡入门到精通在线看。 第一章一定有开发环境的讲解。 。 。 。 。 。 PHP你摆渡PHP入门到精通在线看。 第一章一定有开发环境的讲解。 。 。 。 。 。 Mysql没下面的仁兄收了。 。 。 。 。 。 。 现在是开元面肥的 Oracle商业版数据库软件Mssql微软的SQL Server 要钱的。 商业环境。 。 。 。 。 。 具体看情况而定上面是底码的编写。 然后来:服务优化,访问优化,页面优化等等。 你想知道的东西,我用我的思维方式回答了,有疑问,请追我~~~~~
发表评论