2

我正在尝试将我的网络服务部署到 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 “handfree”被禁止:用户“client”无法在命名空间“default”中获取 deployments.extensions:未知用户“client”。

我是 Kubernetes 世界的新手,请帮助我!

提前致谢!

4

1 回答 1

1

未知用户“客户”。

表示没有RoleBindingClusterRoleBinding有 a subjects:oftype: User和 a name:of client

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

我知道那些段落充满了行话,对此我很抱歉 - 这是一个复杂的话题。有几个 RBAC 摘要,包括来自 GitLab 的最新摘要、CNCF 网络研讨会来自 Sysdig 的摘要,以及(当然)kubernetes 文档

于 2018-08-12T19:00:12.103 回答