我正在尝试将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世界的新手,请帮帮我!
谢谢!
答案 0 :(得分:0)
未知用户“客户端”。
意味着不存在RoleBinding
为type: User
的{{3}}或name:
为client
的{{3}}。
解决方法是创建ClusterRoleBinding
或RoleBinding
-取决于您是否希望client
有权访问每个 Namespace
或只需default
-并将其指向现有(或创建的)Role
或ClusterRole
。坏消息是,由于您当前的凭证无效,因此您将需要跟踪cluster-admin
凭证才能进行这种更改。由于我没有使用过GKE,因此无法指定确切步骤。
我知道这些段落充满了行话,对此我很抱歉-这是一个复杂的话题。有几种RBAC摘要,包括ClusterRoleBinding
,subjects:
和recent one from GitLab,以及(当然)CNCF webinar