【问题标题】:kubernetes localhost:8080 was refused with contextkubernetes localhost:8080 被上下文拒绝
【发布时间】:2019-06-30 02:05:09
【问题描述】:

Kubernetes集群是使用阿里巴巴容器服务搭建的,使用root账户访问集群没有问题,当创建一个新的命名空间并将用户添加到该命名空间时,它会抛出错误连接到服务器 localhost:8080 被拒绝

这里是疑难解答的设置

定义命名空间dev并使用get动词显示所有kubernetes命名空间。

root@kube-master:# kubectl get namespaces
NAME          STATUS    AGE
default       Active    14d
dev           Active    56m
kube-public   Active    14d
kube-system   Active    14d

在 Kubernetes 集群中添加了新的上下文。

kubectl config set-context dev  --namespace=dev --user=user1

在使用带有此配置文件的 kubectl CLI 时,我应该得到一个访问被拒绝错误

root@kube-master:/home/ansible# kubectl --context=dev get pods
The connection to the server localhost:8080 was refused - did you specify the right host or port?

而不是显示 与服务器 localhost:8080 的连接被拒绝

没有 --context 效果很好

root@kube-master:# kubectl get pods -n dev
NAME      READY     STATUS    RESTARTS   AGE
busybox   1/1       Running   1          1h

这里是 Kubernetes 配置视图

root@kube-master:/home/ansible# kubectl config view
apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: REDACTED
    server: https://172.16.2.13:6443
  name: kubernetes
contexts:
- context:
    cluster: ""
    namespace: dev
    user: user1
  name: dev
- context:
    cluster: kubernetes
    user: kubernetes-admin
  name: kubernetes-admin@kubernetes
current-context: kubernetes-admin@kubernetes
kind: Config
preferences: {}
users:
- name: kubernetes-admin
  user:
    client-certificate-data: REDACTED
    client-key-data: REDACTED

root@kube-master:# kubectl config get-contexts
CURRENT   NAME                          CLUSTER      AUTHINFO           NAMESPACE
          dev                                        user1              dev
*         kubernetes-admin@kubernetes   kubernetes   kubernetes-admin   

【问题讨论】:

    标签: kubernetes devops alibaba-cloud


    【解决方案1】:

    我想通了,当我执行命令时我注意到了什么

    kubectl config view
    

    集群显示为空

    - context:
        cluster: ""
        namespace: dev
        user: user1
    

    为解决此问题,添加了--cluster 信息并修改了set-context

    root@kube-master:/home/ansible# kubectl config set-context dev --cluster=kubernetes --namespace=dev --user=user1
    Context "dev" modified.
    

    上下文设置正确

    contexts:
    - context:
        cluster: kubernetes
        namespace: dev
        user: user1
      name: dev
    

    当我使用 --context=dev 查找 pod 时,我得到了想要的结果

    root@kube-master:/home/ansible# kubectl --context=dev get pods
    No resources found.
    Error from server (Forbidden): pods is forbidden: User "system:anonymous" cannot list pods in the namespace "dev"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-07-26
      • 1970-01-01
      • 1970-01-01
      • 2020-06-18
      • 1970-01-01
      • 1970-01-01
      • 2019-06-23
      • 1970-01-01
      相关资源
      最近更新 更多