рдирдорд╕реНрддреЗ,
рд╣реЗрд▓рдо 2.5.0
RCP рдХреЗ рд╕рд╛рде Kubernetes 1.6 GCP рдкрд░ рд╕рдХреНрд╖рдо рд╣реИ
рдЗрд╕ рдХрдорд╛рдВрдб рдХреЛ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдХреБрдмреНрд▓реЗрдЯ рдФрд░ рд╣реЗрд▓реНрдо рдХреЗ рд╕рд╛рде рдЪрд▓рд╛рдПрдВ:
$ kubectl config set-credentials $K8S_USER --username=$K8S_USER --password=$K8S_PASS
$ kubectl config set-cluster test-cluster --server=https://$K8S_SERVER --insecure-skip-tls- verify=$K8S_INSECURE_SKIP_TLS_VERIFY
$ kubectl config set-context default-context --cluster=$K8S_CLUSTER_NAME --user=$K8S_USER
$ kubectl config use-context default-context
$ kubectl cluster-info
Kubernetes master is running at https://****
$ helm init
$HELM_HOME has been configured at /config/.helm.
Error: error installing: User "system:anonymous" cannot create deployments.extensions in the namespace "kube-system".: "No policy matched.\nUnknown user \"system:anonymous\"" (post deployments.extensions)
рдЗрд╕ рддреНрд░реБрдЯрд┐ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ рдХреНрдпрд╛ рдХрд░рдирд╛ рдкрдбрд╝ рд╕рдХрддрд╛ рд╣реИ?
рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдЪрд╛рд░реНрдЯ рджреНрд╡рд╛рд░рд╛ рдЕрдиреБрд░реЛрдзрд┐рдд рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдЯрд┐рд▓рд░ рдкреЙрдб рдХреЗ рд╕реЗрд╡рд╛ рдЦрд╛рддреЗ рдореЗрдВ рдкрд░реНрдпрд╛рдкреНрдд рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХреЛ рдмрд╛рдВрдзрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдЯрд┐рд▓рд░ рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реА рдирд╛рдорд╕реНрдерд╛рди рдореЗрдВ рдПрдХ рдирдпрд╛ рд╕рд░реНрд╡рд┐рд╕ рдЕрдХрд╛рдЙрдВрдЯ рдмрдирд╛рдирд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдЙрд╕рдХреА рдкреЙрдб рдЪрд▓рддреА рд╣реИ (рдЖрдкрдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, "рдХреНрдпреВрдм-рд╕рд┐рд╕реНрдЯрдо"), рдлрд┐рд░ рдпрд╛ рддреЛ рдиреЗрдорд╕реНрдкреЗрд╕ рдореЗрдВ рдПрдХ _Role_ рдмрдирд╛рдПрдВ рдЬрд┐рд╕рдореЗрдВ рдЖрдк рдЪрд╛рд░реНрдЯреНрд╕ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдЗрд░рд╛рджрд╛ рд░рдЦрддреЗ рд╣реИрдВ рдпрд╛ _ClusterRole_ рдЖрдк рдХрдИ рдирд╛рдорд╕реНрдерд╛рдиреЛрдВ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд╛ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдлрд┐рд░ рдЙрдкрд░реЛрдХреНрдд рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХреЛ Tiller- рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕реЗрд╡рд╛ рдЦрд╛рддреЗ рдореЗрдВ рдЗрди рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХреЛ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╛ рддреЛ _RoleBinding_ рдпрд╛ _ClusterRoleBinding_ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдБред
рдореИрдВрдиреЗ рд╕реЗрд╡рд╛ рдЦрд╛рддреЗ рдФрд░ ClusterRoleBinding рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЗ рд╕рд╛рде рдкреНрд░рдХрдЯ рдмрдирд╛рдпрд╛
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: tiller
namespace: kube-system
secrets:
- tiller-secret
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
name: tiller
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: tiller
namespace: kube-system
рдлрд┐рд░ рдЗрд╕ рд╕рд░реНрд╡рд┐рд╕ рдпреВрдЬрд░ рдХреЛ Tiller рдХреЗ рд╕реНрдкреЗрд╕рд┐рдлрд┐рдХреЗрд╢рди рдореЗрдВ рдЬреЛрдбрд╝рд╛
kubectl patch deploy --namespace kube-system tiller-deploy -p '{"spec":{"template":{"spec":{"serviceAccount":"tiller"}}}}'
рдлрд┐рд░ рдореЗрд░реА рдкрд╛рдЗрдк рд▓рд╛рдЗрди рдореЗрдирд┐рдлрд╝реЗрд╕реНрдЯ рдореЗрдВ k8s рдореЗрдВ рдСрд░реНрдЯ рдХреЗ рд▓рд┐рдП рдХрдорд╛рдВрдб рд▓рд┐рд╕реНрдЯ рдмрджрд▓реАред
begin_script:
- echo "$CA" > /ca.crt
- kubectl config set-cluster k8s-cluster --embed-certs=true --server=https://$K8S_SERVER --certificate-authority=/ca.crt
- kubectl config set-credentials tiller --token=$USER_TOKEN
- kubectl config set-context k8s-cluster --cluster=k8s-cluster --user=tiller
- kubectl config use-context k8s-cluster
$CA
рдФрд░ $USER_TOKEN
- рдЧреБрдкреНрдд рдЪрд░ рд╣реИрдВ рдЬреЛ ca.crt рдбреЗрдЯрд╛ рдФрд░ рдЯрд┐рд▓рд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЯреЛрдХрди рдмрдЪрд╛рддрд╛ рд╣реИред
Ca.rt рдФрд░ user_token рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрди рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:
$ secret=$(kubectl get sa tiller -o json --namaspace=kube-system | jq -r .secrets[].name)
$ kubectl get secret $secret -o json | jq -r '.data["ca.crt"]' | base64 -D # $CA
$ kubectl get secret $secret -o json | jq -r '.data["token"]' | base64 -D # $USER_TOKEN
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ _helm init_ рдкреНрд░рддрд┐рдмрджреНрдз --service-account
64e9e471838ac44e551c32abcbd19f671c80ecce рдХреЗ рд░реВрдк рдореЗрдВ