服务器的Kubernetes部署错误(禁止):检索当前配置时出错

时间:2018-08-12 08:37:42

标签: docker kubernetes google-kubernetes-engine kubernetes-deployment

我正在尝试将Web服务部署到Google Container Engine:

这是我的 deployment.yaml:

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: handfree
  labels:
    app: handfree
spec:
  replicas: 3
  template:
    metadata:
      labels:
        app: handfree
    spec:
      containers:
      - name: handfree
        image: arycloud/mysecretrepo:latest
        imagePullPolicy: Always
        #Ports to expose
        ports:
        - name: api_port
          containerPort: 8000 

这是我的 service.yaml:

kind: Service
apiVersion: v1
metadata:
  #Service name
  name: judge
spec:
  selector:
    app: handfree
  ports:
    - protocol: TCP
      port: 8000
      targetPort: 8000
  type: LoadBalancer  

我已经在Google Container Engine上创建了一个集群,集群大小为4和8个vCPU,我已经通过使用连接该集群链接的命令成功获得了凭据。

当我尝试运行Deployment.yml时,它返回错误为:

  

来自服务器的错误(禁止):检索以下内容的当前配置时发生错误:默认免提部署.yaml

     

从服务器中获取以下内容:“ deployment.yaml” Deployments.extensions禁止“免提”:用户“ client”无法在名称空间“ default”中获取Deployments.extensions:未知用户“ client”。

我是kubernetes世界的新手,请帮帮我!

谢谢!

1 个答案:

答案 0 :(得分:0)

  

未知用户“客户端”。

意味着不存在RoleBindingtype: User的{​​{3}}或name:client的{​​{3}}。

解决方法是创建ClusterRoleBindingRoleBinding-取决于您是否希望client有权访问每个 Namespace或只需default-并将其指向现有(或创建的)RoleClusterRole。坏消息是,由于您当前的凭证无效,因此您将需要跟踪cluster-admin凭证才能进行这种更改。由于我没有使用过GKE,因此无法指定确切步骤。

我知道这些段落充满了行话,对此我很抱歉-这是一个复杂的话题。有几种RBAC摘要,包括ClusterRoleBindingsubjects:recent one from GitLab,以及(当然)CNCF webinar