多k8s集群管理
多集群的切换是K8s运维中比不可少的问题,常见的基于多个集群进行切换的方法有三种:
- 切换config文件
- 通过context进行集群切换
- 用kubecm进行集群切换
切换config文件
我们先看看放在.kube下默认的config集群:
$ kubectl config view
apiVersion: v1
clusters:
- cluster:
certificate-authority-data: DATA+OMITTED
server:
name: kubernetes
contexts:
- context:
cluster: kubernetes
user: "2xxxxxxxxx7"
name: 2xxxxxxxxxxxxxxxx8
current-context: 2xxxxxxxxxxxx8
kind: Config
preferences: {}
users:
- name: "2xxxxxxxxxxx27"
user:
client-certificate-data:
client-key-data:
通过export更改默认集群配置:
$ export KUBECONFIG=$HOME/.kube/rancher-config
查看:
$ kubectl config view
apiVersion: v1
clusters:
- cluster:
certificate-authority-data: DATA+OMITTED
server:
name: stage
contexts:
- context:
cluster: stage
user: stage
name: stage
current-context: stage
kind: Config
preferences: {}
users:
- name: stage
user:
token:
这种方法就是特别麻烦,每次切换都要通过export设置,非常麻烦,同时也不方便。
通过context进行集群切换
把要切换的所有config文件添加到KUBECONFIG环境变量中
$ export KUBECONFIG=$HOME/.kube/config:$HOME/.kube/rancher-config
或者可以将命令直接写到.bashrc文件中,这样就不需要每次手动设置。
通过kubectl config view可以看到这两个文件已经合并到一起了:
$ kubectl config view
apiVersion: v1
clusters:
- cluster:
certificate-authority-data: DATA+OMITTED
server:
name: kubernetes
contexts:
- context:
cluster: kubernetes
user: "2xxxxxxxxx7"
name: 2xxxxxxxxxxxxxxxx8
current-context: 2xxxxxxxxxxxx8
kind: Config
preferences: {}
users:
- name: "2xxxxxxxxxxx27"
user:
client-certificate-data:
client-key-data:
合并一起后就可以通过use-context切换上下文来切换集群:
# 切换stage集群
$ kubectl config use-context stage
Switched to context "stage".
切换到第二个集群:
$ kubectl config use-context 2xxxxxxxxxxx8
Switched to context "21xxxxxxxxxxxxx9648".
但这种方法不方便的地方就在如果context很多的时候,不方便查看。
用kubecm进行集群切换
安装篇
基础环境
mac
k8s 1.16.9
# wget https://github.com.cnpmjs.org/sunny0826/kubecm/releases/download/v0.10.3/kubecm_0.10.3_Darwin_x86_64.tar.gz
# tar xf kubecm_0.10.3_Darwin_x86_64.tar.gz
# mv kubecm /usr/local/bin
# kubecm --help
KubeConfig Manager
_ _
| | ___ _| |__ ___ ___ _ __ ___
| |/ / | | | '_ \ / _ \/ __| '_ \ _ \
| <| |_| | |_) | __/ (__| | | | | |
|_|\_\\__,_|_.__/ \___|\___|_| |_| |_|
Find more information at: https://github.com/sunny0826/kubecm
Usage:
kubecm [command]
Available Commands:
add Merge configuration file with $HOME/.kube/config
alias Generate alias for all contexts
completion Generates bash/zsh completion scripts
delete Delete the specified context from the kubeconfig
help Help about any command
ls List kubeconfig
merge Merge the kubeconfig files in the specified directory
namespace Switch or change namespace interactively
rename Rename the contexts of kubeconfig
switch Switch Kube Context interactively
version Print version info
Flags:
--config string path of kubeconfig (default "/var/root/.kube/config")
-h, --help help for kubecm
Use "kubecm [command] --help" for more information about a command.
补全
bash
# ource <(kubecm completion bash)
# echo "source <(kubecm completion bash)" >> ~/.bashrc
# source ~/.bashrc
zsh
# source <(kubecm completion zsh)
# echo "source <(kubecm completion zsh)" >> ~/.zshrc
# source ~/.zshrc
基本使用
查看
# kubecm ls
+------------+-----------------------------------+---------------+-----------------------+--------------------------------+--------------+
| CURRENT | NAME | CLUSTER | USER | SERVER | Namespace |
+============+===================================+===============+=======================+================================+==============+
| * | 283387751775489594-c02e82b6ada | kubernetes | 283387751775489594 | https://3.3.3.3:6443 | default |
| | f044bd94d251fea1279648 | | | | |
+------------+-----------------------------------+---------------+-----------------------+--------------------------------+--------------+
Cluster check succeeded!
Kubernetes master is running at https://3.3.3.3:6443
Contains components: [scheduler controller-manager etcd-5 etcd-0 etcd-4 etcd-1 etcd-3 etcd-2]
添加
# ll
-rw-r--r-- 1 root wheel 5.9K 8 26 15:39 config.shengchan
-rw-r--r-- 1 root wheel 5.9K 11 18 15:59 config.yufa
# kubecm add -f config.yufa -c -n stage
# kubecm add -f config.shengchan -c -n production
# kubecm ls
+------------+---------------+-----------------------+--------------------+--------------------------------+--------------+
| CURRENT | NAME | CLUSTER | USER | SERVER | Namespace |
+============+===============+=======================+====================+================================+==============+
| * | production | cluster-kg7h48f8tb | user-kg7h48f8tb | https://3.3.3.3:6443 | default |
+------------+---------------+-----------------------+--------------------+--------------------------------+--------------+
| | stage | cluster-kfc6fbfcdt | user-kfc6fbfcdt | https://4.4.4.4:6443 | default |
+------------+---------------+-----------------------+--------------------+--------------------------------+--------------+
删除
# kubecm delete
Select:production
True
Context Delete:「production」
「/var/root/.kube/config」 write successful!
+------------+---------------+-----------------------+--------------------+--------------------------------+--------------+
| CURRENT | NAME | CLUSTER | USER | SERVER | Namespace |
+============+===============+=======================+====================+================================+==============+
| * | stage | cluster-kfc6fbfcdt | user-kfc6fbfcdt | https://4.4.4.4:6443 | default |
+------------+---------------+-----------------------+--------------------+--------------------------------+--------------+
切换
# kubecm switch
Select:production
「/var/root/.kube/config」 write successful!
+------------+---------------+-----------------------+--------------------+--------------------------------+--------------+
| CURRENT | NAME | CLUSTER | USER | SERVER | Namespace |
+============+===============+=======================+====================+================================+==============+
| * | production | cluster-kg7h48f8tb | user-kg7h48f8tb | https://3.3.3.3:6443 | default |
+------------+---------------+-----------------------+--------------------+--------------------------------+--------------+
| | stage | cluster-kfc6fbfcdt | user-kfc6fbfcdt | https://4.4.4.4:6443 | default |
+------------+---------------+-----------------------+--------------------+--------------------------------+--------------+
Switched to context 「production」
多k8s集群管理的更多相关文章
- k8s 集群管理和微服务 适合做啥
k8s 集群管理和微服务 适合做啥 都知道k8s是集群 适合微服务 有很多教程 但你可以先了解他能干啥 traefix 是负载均衡工具 k8s 适合部署无状态依赖的微服务 可以按需求开启多个微服务 管 ...
- 整理全网最全K8S集群管理工具、平台
整理常见的整理全网最全K8S集群管理工具.平台解决方案. 1 Rancher Rancher中文官网:https://docs.rancher.cn/ 2 KubeSphere 官网:https:// ...
- 强大多云混合多K8S集群管理平台Rancher入门实战
@ 目录 概述 定义 为何使用 其他产品 安装 简述 规划 基础环境 Docker安装 Rancher安装 创建用户 创建集群 添加Node节点 配置kubectl 创建项目和名称空间 发布应用 偏好 ...
- 近万字案例:Rancher + VMware PKS实现全球数百站点K8S集群管理
Sovereign Systems是一家成立于2007年的技术咨询公司,帮助客户将传统数据中心技术和应用程序转换为更高效的.基于云的技术平台,以更好地应对业务挑战.曾连续3年提名CRN,并且在2012 ...
- NVIDIA-GPU归入K8S集群管理的安装文档--第二版
一,nvidia K80驱动安装 1, 查看服务器上的Nvidia(英伟达)显卡信息,命令lspci |grep NVIDIA 2, 按下来,进行显卡驱动程序的安装,驱动程序可到nvidia的官网 ...
- k8s集群管理注意要点【持续更新】
1.编写pod yaml文件时绑定调度标签,必须要给指定节点绑定标签,否则无法调度到指定节点上,报错: Events: Type Reason Age From Message ---- ------ ...
- 大规模 K8s 集群管理经验分享 · 上篇
11 月 23 日,Erda 与 OSCHINA 社区联手发起了[高手问答第 271 期 -- 聊聊大规模 K8s 集群管理],目前问答活动已持续一周,由 Erda SRE 团队负责人骆冰利为大家解答 ...
- 企业运维实践-还不会部署高可用的kubernetes集群?使用kubeadm方式安装高可用k8s集群v1.23.7
关注「WeiyiGeek」公众号 设为「特别关注」每天带你玩转网络安全运维.应用开发.物联网IOT学习! 希望各位看友[关注.点赞.评论.收藏.投币],助力每一个梦想. 文章目录: 0x00 前言简述 ...
- 通过Heketi管理GlusterFS为K8S集群提供持久化存储
参考文档: Github project:https://github.com/heketi/heketi MANAGING VOLUMES USING HEKETI:https://access.r ...
随机推荐
- Charles使用part1——基本功能介绍
一. 安装与破解: 官网地址:https://www.charlesproxy.com/download/ 破解自行解决. 二. 启动与配置: 启动 Charles 后,第一次 Charles 会请求 ...
- Thinkphp3.2 cms之分类管理
四.分类管理 <?php namespace Admin\Controller; use Think\Controller; class CateController extends Contr ...
- 80%人会答错的JS基础面试题
这套题第一道题难度最大,我第一遍的回答居然也错的,我悲观估计80%的JavaScript从业人员都答不完全准确 []==![] 得到什么? false, 你还需要看看基础 true, 恭喜你答对了,你 ...
- 华为+京东数科(原京东金融)面经--Java后台开发
华为: 1.笔试中遇到的问题,如何解决的?(Scanner 如何结束循环读取数据,笔者在面试中因没有理解到Scanner类的hasNext()与hasNextLine()是阻塞方法,导致没有正确退出循 ...
- 基于 Nebula Operator 的 K8s 自动化部署运维
摘要:Nebula Operator 是 Nebula Graph 在 Kubernetes 系统上的自动化部署运维插件.在本文,你将了解到 Nebula Operator 的特性及它的工作原理. 从 ...
- uiautomatorviewer 启动报错
我的sdk是随着AndroidStudio中下载下来的,这样做是有好处的,建议直接装个AndroidStudio这样管理sdk很方便,虽然很大,但是总比后期发现有问题好一点.最近在研究Appium要定 ...
- cephfs根据存储池显示df容量
前言 如果用cephfs比较多,应该都知道,在cephfs的客户端进行mount以后,看到的容量显示的是集群的总的容量,也就是你的总的磁盘空间是多少这个地方显示的就是多少 这个一直都是这样显示的,我们 ...
- Python_迭代器与生成器
迭代器 迭代是Python最强大的功能之一,是访问集合元素的一种方式.. 迭代器是一个可以记住遍历的位置的对象. 迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束.迭代器只能往前不会后 ...
- python杂乱知识点
1. = == is =: ==:比较 值是否相等 is:比较,比较的是内存地址 2. id(内容):得到内容的起始内存地址 3.数字,字符串,存在小数据池的概念,如果如果创建了一样的数字或者字符串 ...
- elasticsearch快速安装启动
准备 docker docker内安装centos容器,模拟服务器环境 centos容器安装 下载centos容器 docker pull centos 启动docker容器 docker run - ...