Kubernetes实战(十二)-使用kubeconfig文件管理多套kubernetes(k8s)集群

1 概述

在生产环境中可能不止有一套kubernetes(k8s)集群,面对多套集群,运维人员可以使用kubeconfig文件管理多套kubernetes(k8s)集群,使用 kubeconfig 文件,可以组织集群、用户和命名空间,还可以定义上下文,以便在集群和命名空间之间快速轻松地切换。

2 kubeconfig文件

用于配置集群访问的文件称为“kubeconfig 文件”。 这是引用配置文件的通用方法,并不意味着有一个名为 kubeconfig 的文件。

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

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

kubeconfig文件由3部分组成:clusters,users,contexts。clusters是kubernetes(k8s)集群信息,users是连接kubernetes(k8s)集群的用户信息,contexts上下文综合了clusters信息和users信息。

apiVersion: v1
clusters:
- cluster:certificate-authority-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUM1ekNDQWMrZ0F3SUJBZ0lCQURBTkJna3Foa2lHOXcwQkFRc0ZBREFWTVJNd0VRWURWUVFERXdwcmRXSmwKY201bGRHVnpNQjRYRFRJek1USXhNVEV6TVRVeE5Wb1hEVE16TVRJd09ERXpNVFV4TlZvd0ZURVRNQkVHQTFVRQpBeE1LYTNWaVpYSnVaWFJsY3pDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBTkdaCmR5N0J6Q1ZOYVZmeXJvN1k3Qm1JZ2lla3ZtSWpjUFpUdWp1UXlNMk43clZiQS9IcWh2eGQ2cmZtczM5a2IvSnYKOVpScWp5MUlGRTdsc3B5L1ZyL2F5TEYyMG0waDdsQnRTMlRrUXVHRkRzTUtQVWFsNVZIeU1rU05jbHd3NlpQVQpIMGhmSUZibHVlc2lxeTZBMlFad1NQT2FmZ3BGMmRyb2hFY242M0RiMzc0end3eERqVmRyS2g3cjF2RU85c0J6CjBkVGQ4UHVZdVFmL1R4ckk2M3JITFJRekViWXV0b3dlUzA0bTJKbUF1d2Y3bFVmQ3B4clNLWDlhb3FqRWZzTzEKN3U0Q3UvTG9kM2FENVFSZEJpeGNtdEYyeUV4VC9yaHgzckV5MDk3eHU5YzlVQVh0UVlxSXpTWTFLdTkvY1ZYUwozWkQ1MWtWR29RVVBMMU5WMHFFQ0F3RUFBYU5DTUVBd0RnWURWUjBQQVFIL0JBUURBZ0trTUE4R0ExVWRFd0VCCi93UUZNQU1CQWY4d0hRWURWUjBPQkJZRUZGb2N1RENoSUZjWmw2QmE0dTVQL0FUVnprOGJNQTBHQ1NxR1NJYjMKRFFFQkN3VUFBNElCQVFCMytBSitEa0hRa1IyOGJtYi9jbDA5WGtBQm0xdXE0cnVHTGVyazVIYUFWVnZWSThIVApiU3ByVWtXQno4OFJJa0JQQTNRdkNwUEt5YjdhbVk3QnpUekc4bmgwVGdUZXpoc2tWVjVoalc3VEYxSVp4WlhBCllCOThiQ0h6Zlo4ZUpoOW9DYjZKSkkyTUczYVVoN2pmZENsaHUzVUwvbGI3L0I5U0M3K2FFTUVJZHFPM0xydVkKbnZQRnVNeWpmdEhoNmVrY2x6VWptcGRtRFhLV3UzRExtYmRLWFg0TXpVRDNuSHkxWTdrekJISjJFUmpRbXlycgptSHh5c09vb2I4d1RIYmtQaFNic0x0ZVlDWFRER0tsd05OUytkSks4UVZjMTc4SFlURXJ1d3FYY2FRYkpFc1lICnBacGtDQ1lwRGJLMmp6Z0UzVnRFWnhCSkw5UW56dXV5eWVZaAotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==server: https://10.220.43.203:6443name: kubernetes
contexts:
- context:cluster: kubernetesuser: kubernetes-adminname: kubernetes-admin@kubernetes
current-context: kubernetes-admin@kubernetes
kind: Config
preferences: {}
users:
- name: kubernetes-adminuser:client-certificate-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURJVENDQWdtZ0F3SUJBZ0lJUnhnQ1p1bzlWUVl3RFFZSktvWklodmNOQVFFTEJRQXdGVEVUTUJFR0ExVUUKQXhNS2EzVmlaWEp1WlhSbGN6QWVGdzB5TXpFeU1URXhNekUxTVRWYUZ3MHlOREV5TVRBeE16RTFNVGRhTURReApGekFWQmdOVkJBb1REbk41YzNSbGJUcHRZWE4wWlhKek1Sa3dGd1lEVlFRREV4QnJkV0psY201bGRHVnpMV0ZrCmJXbHVNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQTNrTS80NWlwZXpaN3Q5SjEKNzlHWHJCSlpaWUJ1KzFuTUE2dVpEOFBpNzhuYVJqNE96NG9vRUc1NXdvWG85cUJYL2Iwd0lPUU1WRFRrbXVaNApEbG5KOEhwdzJQTWR3REIzUW14U1Fzb1VjN0paVjZxb0ZyaVZ1blRMSzZGMnF5M3BWM044bnVxam1CQ3JuRGJFClg4STBoaUVKZ3VNenVFZFZ4NU0xcFdJdU50MkRMdS9WWGFhV3J5R2NqN250YVFSbmRzWkd4b3hycURtTEY5UDcKY3J4bHF6TkVVeTNJMnkySU9mci9kcjVGbkZZa0V3d3p1TnRvdGdHaW1MYXkzOXVwR25wMkNKdm1QQVNQcHpzbQpkNzZrYzJ4Q1ByTFVuR2ZDTlNHbGlsaHVoOUVKSVNESmpoMHJKTFdBeGUwajRmZWdLU241bjJSbmRWeklvcUxVCkZHTnB5UUlEQVFBQm8xWXdWREFPQmdOVkhROEJBZjhFQkFNQ0JhQXdFd1lEVlIwbEJBd3dDZ1lJS3dZQkJRVUgKQXdJd0RBWURWUjBUQVFIL0JBSXdBREFmQmdOVkhTTUVHREFXZ0JSYUhMZ3dvU0JYR1plZ1d1THVUL3dFMWM1UApHekFOQmdrcWhraUc5dzBCQVFzRkFBT0NBUUVBYUU1ODQzd3hVVi9oWnc5bHg5T3VFcTl4S2phL3h5K0VoQkFTCmE5THcwc3N3SUdvUGFZZWRZbVJMWWlFYWdVSVZsTEkxd3J2TGhuMEd2dERWN0RNNmJRNVpkbzRiZ3UwWG5CbHkKb0t3WU0vbXp5b1I4N0JUNHc4L21lK2NORTIya3ppcFIrMS9JeXZRNTZVenZwaTJjWHcvVTJwd29EWVhxWTZzSwozWDNNaElDYlVpeUs5by8wbUM2Y1RGd2JkcDR6a1V1RU40QkVtT2hFalBhTzZic1VKRHgxOFIyUEFUcGdZMk5yCkpmY1JwSTZ5SGpKaCtOT1MxR0srN0VTQjE5djNxcVh2d09xYzc2dzNjQVJpb0tuTGgvQ21ibWVtcDBLZ3hLT2sKclNTWHpmUlI2WUtXNmo4VENlbGpiOWlCN00vcndJTXNGeWZuUGRCVEJ5Z3lFVUR4Z0E9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==client-key-data: LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFcFFJQkFBS0NBUUVBM2tNLzQ1aXBlelo3dDlKMTc5R1hyQkpaWllCdSsxbk1BNnVaRDhQaTc4bmFSajRPCno0b29FRzU1d29YbzlxQlgvYjB3SU9RTVZEVGttdVo0RGxuSjhIcHcyUE1kd0RCM1FteFNRc29VYzdKWlY2cW8KRnJpVnVuVExLNkYycXkzcFYzTjhudXFqbUJDcm5EYkVYOEkwaGlFSmd1TXp1RWRWeDVNMXBXSXVOdDJETHUvVgpYYWFXcnlHY2o3bnRhUVJuZHNaR3hveHJxRG1MRjlQN2NyeGxxek5FVXkzSTJ5MklPZnIvZHI1Rm5GWWtFd3d6CnVOdG90Z0dpbUxheTM5dXBHbnAyQ0p2bVBBU1BwenNtZDc2a2MyeENQckxVbkdmQ05TR2xpbGh1aDlFSklTREoKamgwckpMV0F4ZTBqNGZlZ0tTbjVuMlJuZFZ6SW9xTFVGR05weVFJREFRQUJBb0lCQURGS2JMTEd1bDlPMStVTwpVWVZieiswakxKd3IvWERVbXovOUlEYTAxSEVsTExrRExqbXNnL0lRN2dQTHVyeG5GdHg0eG1HazhXOERRK2R1ClVSV3RwL0VpMWovbXVxUlNtMEFwMFp4cVFGcmdKSndpaHFCelV4RkVzWUg5anRtcmx1SUVCSkVockNJZklFL0cKZllwWEFWcjFuS3hnUXFvTmQrS0lyUTcrVlExcGJLbEZONlB5M3ZzY3p1enhRYXhPOVlzWEFTSERrcVRhc29JZwpHVHNPN0hXYjdrZVRJdk5aaFUwSVNvaCtXbGNvQ0MvVkljUVlLRlhSRlovQnY5ZlVSRzRIVlVwcU9GVjhZNjhaCkExK1NwNDEvR0JFeTBPa3FGYVZEUWtGT3NweVZEelhtYzJUWXo2TnhyVEhORjF1bmVmcUphTWZ1WUtQK0xRRXkKSzZWZUVCa0NnWUVBKzRWR3dvelo4WjR2RzZiamJTYkNFdzBQUko4czhMQUZPVHhwd1FzZXhmbVg2OUJRQWxpYQpXK0F3Qnd1OFpEZTYzQnFGcTVsekZHWkUveTFZeDFEZnBURnNmWEF2S05oVW1ucTRiR1RPdy9yN0JSanlPRTd3CmtPLzFaVjRhNlFxS0Vud1Nha2tXamd4dDZvVFZJeHREUU1FSE5ZZENLdU5kWDFRZEZLM0ExYk1DZ1lFQTRqaVUKM3ppL1dQbDlROVE1K1NzSWF2NDVzdzNTQ0tYamhMOG0wRWRHSUdnVVkrWUI2T3REY1AvNEk5Y0pCRmo1aitpQwpScmZvNXkwblNGZERTNGE5UENEdUVSVkh6dFVTbkNtVEVIRXJ0WDF1NitnNnJEblRncFpiVzlFTjNCZUNrb3U3CnZZUW1mSGd1ZmxnRm9RT1pRUGhEWmg1SE56V0x0TFNGYzNWQ2ZKTUNnWUVBOTZuZ1p5bHlZV3cxVHJFaU9CUjEKL1hSYW1HTjBTUHZKNlBZSDNFSXE1eDVCN2IyTlN3SWIzR1FBWnErenJhc0NvRUN0WnE4T2xnT3Q1T2F1Q0hVbQpBdStMdUdpQ3gyRmN6VkFSMFFuaVh5Ly9oS0Z2d09wYUR4MTVNWHRjWENRNG1NTDdEeFV3MUdhQXhQQlBQdVpWCmJxbWpnNTNRRlpNVUdnNGxKSHVDNmVrQ2dZRUF6Ry9KeWZqa282bkVGSHBFY2ZMN3hvVTg2NTEveENUMmVjNnQKYXVnZWJjYmhObTUwSjJRRkxLZUdQZzFrcnJNaHhYV2YxZno1MDRFdzBPVmJnWE9nckNndVBPMzRXT2loeXRLZgpmdXBuVDdxdGRUQUhaZ0ZVTGQxbmJwQjhiL3duR2Z5Qmk0RlRyb1NGcjlRb01oeW9jTmhyUUd2NGUrSStBTzVxCjg2NXlpVlVDZ1lFQXN1QWtlL01nMndKMnhLUzhWdE9rUHArSGpReVhFeW9mM09STGRPSEtXcFFoZzl0WGdZZjUKRmJVVW1WME5KQ3RqUm9tMnkrRHk1bCtsSTQ3UjlBWkRLRHVYTTg4b2NIY1FkR0FhdjZ3c1JMSmpmbkpsaVU3bgp5WFhZaVVVZUQyaUljVTlFa25aZU14MGVIQkFvOEdPQ3hWakZlWEl5ODF6aHNkN3BqZnNJWDhVPQotLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQo=

3 kubernetes(k8s)多集群切换 

默认的kubeconfig文件为:~/.kube/config 文件。

$ ls .kube/
cache  config

编写一个kubeconfig文件来管理两套k8s集群。

$ cp .kube/config config2
$ cat config2 
apiVersion: v1
clusters:
- cluster:certificate-authority-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUM1ekNDQWMrZ0F3SUJBZ0lCQURBTkJna3Foa2lHOXcwQkFRc0ZBREFWTVJNd0VRWURWUVFERXdwcmRXSmwKY201bGRHVnpNQjRYRFRJeU1ERXdPVEE0TVRnd01Wb1hEVE15TURFd056QTRNVGd3TVZvd0ZURVRNQkVHQTFVRQpBeE1LYTNWaVpYSnVaWFJsY3pDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBTEZyCkRxb2YyV2twdDJ1a2xSWnljRHQyQ2xmYnNXdTBhb256NW1rTG5IaThlZFdJbkdWR09tMllxV0x2V20yRGFrYWYKSk9oNmtRU0wyYjBXZjBRbnZaMklIQ0hBYm5lTmI0NEpIaHVTL2MxU285d2VNQm5GNk9ZRjU2Qkk4dnlSamJhZgoyVXBQSUhNZTlYcitmZTYvRHRmTGFwOERkSFlCWGFPWlpZcDZIaGEyU1JWSjg4cmJRbzJuWnV6Ykl5bWdMUnpSCnpwdE9TRVpBa1JUMzRkZmF4bm0yM3hVNG9vSnRDRWhjZVNjZ3QvZ0szOFRXMmJkRmIzU1c2UWdNc0FFOG4yVXQKaDR4c203TDVla29kTHU1N2VmWHhNZTVKTU5yTXBIL0h5M3BHSlpab0NYbG5rbm9ML2EzdTBHKzgzak8zcXRzWgp0M004TDdDcTc5Qm5BQW41aS8wQ0F3RUFBYU5DTUVBd0RnWURWUjBQQVFIL0JBUURBZ0trTUE4R0ExVWRFd0VCCi93UUZNQU1CQWY4d0hRWURWUjBPQkJZRUZNTWd0NGZKTWhDa0s2NGF1WWNML1VlUEs5OVBNQTBHQ1NxR1NJYjMKRFFFQkN3VUFBNElCQVFDcFVtSittNk9nNFZuQjBSNWpxd05EakJxZ0pQVWtONHB1MFFURlg1WWs4NGFOMnQvYgpKWTFTQ3hnR2h5Q1JERVA1U0NUMXZrdHRqaFpVVnArZjdZUnE3V1BXK0JQcWE3Nm5TUlEydUkxRHoxVDhZSGNnCi9CRkNadWIwQVZ4Y0Z1RTdSb1NkbjFDOTlqaERjUCtIRW9zRFl6dUYzZmo4QzlCMkl6d3ZIaHpaUDAvVlZSRDcKay9wWk5ub3hRdHNoWHdvVnhYS1BacHNGMHhvL1ppcUVoa2ZIYURMVC9MZE5qYXhyTjNOcFRhbTNTV2tyelZ6VQpKWGpyL0xKbGs3THVBcVBVT1VBdHBRTDZSbTArTXVQTGw0YkxQNFhOOTZOZit0NDlHdS9LeXBabXpIQkFOMWl0CkYrN0szeXVoamQ4VVNtUE14SVdPR2JEc05sTHMzTmJ5S3RpNgotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==server: https://192.168.110.130:6443name: cluster1
- cluster:certificate-authority-data:这里写第二个集群的密钥 server: https://cluster2_ip:6443name: cluster2
contexts:
- context:cluster: cluster1namespace: defaultuser: admin1name: admin1@cluster1
- context:cluster: cluster2namespace: defaultuser: admin2name: admin2@cluster2
current-context: admin1@cluster1
kind: Config
preferences: {}
users:
- name: admin1user:client-certificate-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURJVENDQWdtZ0F3SUJBZ0lJR0ZpNStHUTdGOGd3RFFZSktvWklodmNOQVFFTEJRQXdGVEVUTUJFR0ExVUUKQXhNS2EzVmlaWEp1WlhSbGN6QWVGdzB5TWpBeE1Ea3dPREU0TURGYUZ3MHlNekF4TURrd09ERTRNRE5hTURReApGekFWQmdOVkJBb1REbk41YzNSbGJUcHRZWE4wWlhKek1Sa3dGd1lEVlFRREV4QnJkV0psY201bGRHVnpMV0ZrCmJXbHVNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQXNMUVpScS9BeVF1aDlVdy8KN0craVJqekovdUFjbmtubU9VMHQ1OHNIcUw4b0ZXVlFyeUlDS3djdEtMcEp6RHBMOEZDWUtoejJSekY2VHJtawpzYVcvT2FMRmV2SjR2Y2NIbm1McGR1SWpram1TRnJ0L0R6VCsvSWdacGNlL21SRC9LR0tQUUxSQVVpUGx6NzdhClRvYU1pWGM5Ny9XZGp0Nk9ic091RGVsTnlteU4xRG5ONWJ2NWRFTkRaclh3VTFkQndhQjRXdnliTi9nVm02TUUKSjhRdXJDZ2V5d2swRjRtd3kwcGUyVldBd3Y1VHFxTmVzZ01pWHFacjZ2SjNSV285Z0tCeVhCODNBb1gwTlk4TQptY1JIWG44cWhPZ3hYTXhXUWM2SEI1cE81QnFPUnY3MUE0NC9tU1FoWkNORCtLdVhPVlQvUmMvRTU1eDBpWjZoCmVrcHo0UUlEQVFBQm8xWXdWREFPQmdOVkhROEJBZjhFQkFNQ0JhQXdFd1lEVlIwbEJBd3dDZ1lJS3dZQkJRVUgKQXdJd0RBWURWUjBUQVFIL0JBSXdBREFmQmdOVkhTTUVHREFXZ0JURElMZUh5VElRcEN1dUdybUhDLzFIanl2ZgpUekFOQmdrcWhraUc5dzBCQVFzRkFBT0NBUUVBUStXL290TUdickVFV2t6TzFnVmV3TjlSNFo5d2hESFZ5T2piCjh5d2FxN1JXQzRuZjd1WGlmT01oTThoYm1NQ3RTVjVtaTVxQzZQaWVETWhHYXpySzVYMVNmSk9aazlLdnVwaHYKNWVkdm9OZzN4OEVIWWJHaUdqMnVDRktIaklYMTh2U1lpMU4yeXFkcW5TOGFBNkcyOWFOcjY2c2NnemFMR3g1VAorTytvYk8yUmdIbHEva1N4dFZxbThkQUplcFFNR0l2ZFJQYWhLZmw2dGc1TStGSHVZQndycGRzR2NtNXFoVWc5CktrZEpUZVF0S1dwdS9SZUNUQU9PMnN2akF1NWhEVzhpMlFFUmNNdDh2cC9WZ0htK1lTalloQklqa205R3VZaWMKRVdFVGk4djF5M0l0NDZqdE1Sa0Vub3Q5ZUFIbFlLWFplWlNZb1pXVFFVWS9hbmYwRUE9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==client-key-data: LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFcEFJQkFBS0NBUUVBc0xRWlJxL0F5UXVoOVV3LzdHK2lSanpKL3VBY25rbm1PVTB0NThzSHFMOG9GV1ZRCnJ5SUNLd2N0S0xwSnpEcEw4RkNZS2h6MlJ6RjZUcm1rc2FXL09hTEZldko0dmNjSG5tTHBkdUlqa2ptU0ZydC8KRHpUKy9JZ1pwY2UvbVJEL0tHS1BRTFJBVWlQbHo3N2FUb2FNaVhjOTcvV2RqdDZPYnNPdURlbE55bXlOMURuTgo1YnY1ZEVORFpyWHdVMWRCd2FCNFd2eWJOL2dWbTZNRUo4UXVyQ2dleXdrMEY0bXd5MHBlMlZXQXd2NVRxcU5lCnNnTWlYcVpyNnZKM1JXbzlnS0J5WEI4M0FvWDBOWThNbWNSSFhuOHFoT2d4WE14V1FjNkhCNXBPNUJxT1J2NzEKQTQ0L21TUWhaQ05EK0t1WE9WVC9SYy9FNTV4MGlaNmhla3B6NFFJREFRQUJBb0lCQVFDc09aMDVMQ3YyeUFPLwpGZVpvQ0JaZDV2bnFGWDFQT2kvT1FjOHdVTTdTUmg1SFhFeGJwZ1grOGl1dHVvUWJMZWE5LzQrUDNGS2Q2VGVRCmE1aCtIVkpZVnJHcnQ1Qy9SN0hCU2g3SzVIWlBHeFdzV21ybzQzcHpvQ04vVlVVRloyK0thU1crcHZEYUhtcnIKSk5XYUc4SDJhZVpRYjFCMTQ2MW5nQW14UFdlNGxwNjNnNnoyakY2Qk92ZTdIMXlvemxiajJNSVJJRFRYTDZ6cApZMm9hQmJjUTh2YmNLVlJ1SXUxSVh3Vk5QRk90aGRxOWNqdEViQ1d3c0pLcWU4Zm9IWjU2VVF0SkZSbVJXd3pwCjFNS0wwaDJEVG8zLzlqdGdrSDZUcStna1JiVmRWaTZYbjlxenpYaEdPaTM1dVJUUmdXZlFjQjFuYzVEUXhMZE0KcWY4dWNHaFJBb0dCQU5hclFDeHBjTVQxc0tVa2JVVElBT1h3VnBlcTg4Qmk0QUdHQTQvOFN6QklxUmpBMklZTwo5T29NaGZmZ21SaDUvQlBLRXJndk5wNklNVHpEMlpGcTNyalpieDVyU1VYenR6K2xuWjdKWkVFTDRpSXdDSE9NCkxuYVA2OW5DOEQyMy9WNXRmRDd1Unk1SnBPMGJsK01LSisvQndiaTBKL3lvNVFLRWFaT1JERjhEQW9HQkFOSzUKbE92NUV2NzExb0dCd1NUMmZqSnkyZHhxYzErU2IxR3dCRVp4aDNNSk41Y0hPVUVLWFBsOGZsc1hjZWhKS2JlSgpMUU80amFvdVFEUkJIelJiczMwL083R051dXN1UGV0eTk5ODNJYXl2OWtXd045R2FJS3kzSmxRaWdzQ2Fva3NICjlYUEhyOFFqWXJkYWpSVnlkUDhaL0hycGdIRGYxckNOVGtXVjBZcExBb0dBSWFqUWN5WkZURnpKeWRzZ1Z2eVYKUjNpYjIwUXUzQ2Vrd0JoblRwaGNvY0dDNGlLNjBLcGZ0S01xRG1mbEdYVm5GU05HTkNNVENXQ0pkK0d0cDZOKwpNTFhIT3BuUDcydjdlN3RZTDZHY1dxYW1XbjMxbFVpUnNIMTRtYmg3T3ZJeWhDL2VuMjkxTWNqU1YydFFNWVZTCkpjSFh3a0pkVXJ5WXpBQS9IYWhNckVrQ2dZRUFoN3V1WjBrcXFUdmxEY3BzaE1pWmhSbGhwNDZSL2srdWtLbVcKTjJITlk1WGVUdFFDVnhpN3hxQWdLOEN3U0hWSC84YkdUZzFFZ3dnRHB5VURXcEJ1enhBNS9TWlQ3a1Q4OFhvKwptM05CcDZBNE82OUVaU2lvUDFoQndoUHdzT3RwK25hSDdpb0QxNDBMZXh0Q29UdjJqSk5LaEVsL3lEVUdidmEyCklqQmNwbjBDZ1lCZThNTERFK1RCKytYVHFUT29wWGhaL09vRVdlSEp2M2xwdGdmOWg0eVZja3NqVEtNMkpKcEsKNFJFYmJSdUdsY1hOUzg3bEh1dUtCZE9aVzR5Q1hMTCtzcGt4YkY0ZmlFQWFkaTFDOWhZSko3Y2kzZy9jdUxLcQpPdk9EdlhBK2dlRHVaMk9Gakh6RU1XcktKUm1Sd0N1QVdqRld5WndneU16dUp4WWRkRU1raWc9PQotLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQo=
- name: admin2user:client-certificate-data:这里写第二个集群的用户公钥 client-key-data:这里写第二个集群的用户私钥

查看全局上下文,看有几套集群。

$ kubectl config get-contexts 
CURRENT   NAME                          CLUSTER      AUTHINFO           NAMESPACE
*         kubernetes-admin@kubernetes   kubernetes   kubernetes-admin   

切换k8s集群。

$ kubectl config use-context kubernetes-admin@kubernetes
Switched to context "kubernetes-admin@kubernetes".

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/215098.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深入理解模板引擎:解锁 Web 开发的新境界(上)

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…

Axure安装及面板各区域详解

目录 一、Axure简介 二、Axure安装及使用准备 2.1 Axure官网 2.2 Axure授权 2.3 Axure汉化 2.4 设置RP文件保存路径 三、Axure菜单栏的使用 3.1 新建项目 3.2 新建元件库 3.3 自动备份设置 3.4 页面画布网格设置 四、Axure工具栏 4.1 选择模式 4.1.1 相交选中 4…

深度学习 Day15——P4猴痘病识别

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 | 接辅导、项目定制 文章目录 前言1 我的环境2 代码实现与执行结果2.1 前期准备2.1.1 引入库2.1.2 设置GPU(如果设备上支持GPU就使用GPU,否则使用C…

庙算兵棋推演平台配置

9月23开始,9月26完成。因为那时刚从大连回来,十一之后又一个紧急项目当项目负责人,所以隔了这么久才发出来。 我尝试进行制作平台AI,想在我的小平板上配好,最好还可以移植。于是我采用WSL(windows自带的do…

VSCode中如何查看EDI报文?

VSCode是开发人员常用的一款软件,为了降低EDI报文的阅读门槛,知行的开发人员设计了EDI插件,可以在VSCode中下载使用。 如何打开一个EDI报文——VSCode EDI插件介绍 EDI插件下载流程 进入VSCode,打开Extensions,在搜索…

Acrobat Pro中不能使用有道词典取词翻译

编辑–>首选项–>安全性(增强–>启动时启用保护模式(预览),取消前面的勾即可

uniapp - 简单版本自定义tab栏切换

tab切换是APP开发最常见的功能之一,uniapp中提供了多种形式的tab组件供我们使用。对于简单的页面而言,使用tabbar组件非常方便快捷,可以快速实现底部导航栏的效果。对于比较复杂的页面,我们可以使用tab组件自由定义样式和内容 目录…

2023年医疗器械行业分析(京东医疗器械运营数据分析):10月销额增长53%

随着我国整体实力的增强、国民生活水平的提高、人口老龄化、医疗保障体系不断完善等因素的驱动,我国的医疗器械市场增长迅速。 根据鲸参谋电商数据分析平台的相关数据显示,今年10月份,京东平台上医疗器械市场的销量将近1200万,环比…

SU渲染受到电脑性能影响大吗?如何提高渲染速度

一般3d设计师们在进行设计工作前都需要提供一台高配电脑,那么你这知道su渲染对电脑要求高吗?电脑带不动su怎么解决?su对电脑什么配件要求高?今天这篇文章就详细为大家带来电脑硬件对su建模渲染的影响,以及su渲染慢怎么…

Python基础期末复习 新手 2

虽然age 10在__init__方法中定义了一个局部变量age,但这个局部变量并不会影响类属性age的值。类属性是在类级别上定义的,不属于任何一个实例。因此,在创建实例s1和s2时,它们的age属性值都为类属性的初始值0。 尽管对类的属性值进…

cache教程 5.分布式节点的通信

0.对原教程的一些见解 其回顾完请求流程就是抽象了两个接口,PeerPicker和PeerGetter。这样操作,读者阅读时可能很难快速明白其含义,不好理解为什么就创建出两个接口,感觉会比较疑惑。原教程的评论中也有讨论这点。 本教程就先不创…

Python爬取酷我音乐

🎈 博主:一只程序猿子 🎈 博客主页:一只程序猿子 博客主页 🎈 个人介绍:爱好(bushi)编程! 🎈 创作不易:喜欢的话麻烦您点个👍和⭐! 🎈…

pytest + yaml 框架 -59.用例失败重跑机制pytest-rerunfailures

前言 有些接口可能不太稳定,第一次跑的时候由于网络原因或者其它原因失败,但是重新跑2次又成功了。 对于这种需要重新跑几次的场景,可以使用用例失败重跑机制,需安装pytest-rerunfailures 插件。 场景示例 失败重跑需要依赖 py…

【Axure原型分享】3D多柱状图_中继器版

今天和大家分享3D多柱状图_中继器版的原型模板,鼠标移入时,对应区域的背景会高亮变色,并且显示对应柱状体的数据。那这个原型是用Axure原生元件制作的,样式交互都可以自行修改,图表数据在中继器表格里填写,…

【二者区别】cuda和cudatoolkit

Pytorch 使用不同版本的 cuda 由于课题的原因,笔者主要通过 Pytorch 框架进行深度学习相关的学习和实验。在运行和学习网络上的 Pytorch 应用代码的过程中,不少项目会标注作者在运行和实验时所使用的 Pytorch 和 cuda 版本信息。由于 Pytorch 和 cuda 版…

R语言,table()函数实现统计每个元素出现的频数+并将最终统计频数结果转换成dataframe数据框形式

在 R中,要统计dataframe数据框中每个元素出现的频数,可以使用table()函数。以下是一个示例: 目录 一、创建数据 二、统计第一列每个元素出现的频数 三、统计第二列每个元素出现的频数 四、将频数结果转换为数据框,并改列名 一…

Cannot find cache named ‘‘ for Builder Redis

当引入 Redissson 时,springCache 缓存机制失效 原因:springCache 默认使用本地缓存 Redisson 使用redis 缓存 最后都转成redis了。。。 总感觉哪不对 两者居然不共存

nodejs+vue+微信小程序+python+PHP的外卖数据分析-计算机毕业设计推荐django

构建一种完全可实现、可操作的开放源代码信息收集系统,帮助记者完成工作任务。采编人员仅需输入所收集到的网址及题目即可迅速启动收集工作并进行信息归类。 2.根据新的数据收集要求,采用云计算技术实现新的收集器的迅速部署。对于资料采集点的改版&…

基于Qt的登录页面设计

题目: 完善对话框,点击登录对话框,如果账号和密码匹配,则弹出信息对话框,给出提示”登录成功“,提供一个Ok按钮,用户点击Ok后,关闭登录界面,跳转到其他界面 如果账号和…

音乐制作工具 Ableton Live 12中文最新 for Mac

Ableton Live 12 Mac具有直观的界面和强大的功能,使得音乐制作变得更加简单和高效。它支持实时录制、编辑和混音,用户可以在创作过程中随时进行修改和调整。此外,该软件还提供了各种音频效果、虚拟乐器和采样器,使用户可以创建出更…