我正在做一个来自KodeKoud的练习,它提供了CKAD认证培训。
该练习的my-kube-config.yml文件位于root/下面。文件内容如下:
(我排除了一些不相关的部分)
apiVersion: v1
kind: Config
clusters:
- name: production
cluster:
certificate-authority: /etc/kubernetes/pki/ca.crt
server: https://controlplane:6443
- name: development
cluster:
certificate-authority: /etc/kubernetes/pki/ca.crt
server: https://controlplane:6443
- name: test-cluster-1
cluster:
certificate-authority: /etc/kubernetes/pki/ca.crt
server: https://controlplane:6443
contexts:
- name: test-user@production
context:
cluster: production
user: test-user
- name: research
context:
cluster: test-cluster-1
user: dev-user
users:
- name: test-user
user:
client-certificate: /etc/kubernetes/pki/users/test-user/test-user.crt
client-key: /etc/kubernetes/pki/users/test-user/test-user.key
- name: dev-user
user:
client-certificate: /etc/kubernetes/pki/users/dev-user/developer-user.crt
client-key: /etc/kubernetes/pki/users/dev-user/dev-user.key
current-context: test-user@development这项工作要求我:
使用
dev-user访问test-cluster-1。将当前的上下文设置为正确的上下文,这样我就可以这样做了。
由于我在配置文件中看到了一个名为research的上下文,它满足了需求,所以我运行以下命令将当前上下文更改为必需的上下文:
kubectl config use-context research但是控制台给了我错误:error: no context exists with the name: "research"。
好吧,我猜可能name的值research是不能接受的,也许我必须遵循<user-name>@<cluster-name>的惯例?我不确定,但随后我尝试了以下几点:
research修改为dev-user@test-cluster-1,使上下文部分变为:- name: dev-user@test-cluster-1
context:
cluster: test-cluster-1
user: dev-userkubectl config use-context dev-user@test-cluster-1,但是我得到了错误:error: no context exists with the name: "dev-user@test-cluster-1"为什么?根据课程材料,这是为默认的/当前的上下文的方法。我所用的课程是否过时了?有什么问题吗?
发布于 2022-04-08 09:24:57
你最初的想法是正确的。您需要将上下文更改为research,这可以使用
kubectl配置使用-上下文研究
但是,该命令不会应用于此实例中的正确配置。通过检查指向my-kube-config文件的kubeconfig和不带kubeconfig的当前上下文,您可以看到两者之间的区别。
kubectl配置当前-上下文
kubernetes-admin@kubernetes kubectl config -kubeconfig=/root/my-kube-config当前-上下文
test-user@development
因此,使用正确的kubeconfig运行use-context命令
kubectl config --kubeconfig=/root/my-kubeconfig使用-上下文研究
发布于 2021-12-08 08:17:47
要更改上下文,必须使用配置数据编辑$HOME/.kube/config文件,并与默认数据合并。我试图复制您的配置文件,可以更改上下文,但是您的配置文件看起来非常奇怪。
请参阅我的控制台中的行以供参考:
bazhikov@cloudshell:~ (nb-project-326714)$ kubectl config view
apiVersion: v1
clusters:
- cluster:
certificate-authority: /etc/kubernetes/pki/ca.crt
server: https://controlplane:6443
name: development
- cluster:
certificate-authority-data: DATA+OMITTED
server: https://35.246.22.167
name: gke_nb-project-326714_europe-west2_cluster-west2
...
...
...
- name: test-user
user:
client-certificate: /etc/kubernetes/pki/users/test-user/test-user.crt
client-key: /etc/kubernetes/pki/users/test-user/test-user.key
bazhikov@cloudshell:~ (nb-project-326714)$ kubectl config use-context research
Switched to context "research".如果您不想破坏您的集群配置:)
https://stackoverflow.com/questions/70258039
复制相似问题