Helm: рд╣реЗрд▓ тАЛтАЛрдЗрдирд┐рдЯ рдлрд╛рдЗрд▓реЗрдВ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ 1.16.0 рдореЗрдВ рд╣реИрдВ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 6 рд╕рд┐рддре░ 2019  ┬╖  83рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: helm/helm

helm version : v2.14.3 рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ
kubectl version : рдХреНрд▓рд╛рдЗрдВрдЯ: v1.15.3, рд╕рд░реНрд╡рд░: v1.16.0-rc.1 рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ
рдХреНрд▓рд╛рдЙрдб рдкреНрд░реЛрд╡рд╛рдЗрдбрд░ / рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо (AKS, GKE, Minikube рдЖрджрд┐): IBM Cloud Kubernetes Service

$ helm init --service-account tiller
$HELM_HOME has been configured at /Users/xxxx/.helm.
Error: error installing: the server could not find the requested resource

$ helm init --debug --service-account tiller
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  creationTimestamp: null
  labels:
    app: helm
    name: tiller
  name: tiller-deploy
  namespace: kube-system
spec:
. 
.
.

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкрддрд╡рд╛рд░ tiller рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реА рд╣реИ: apiVersion: extensions/v1beta1
рдЕрдиреБрд╕рд╛рд░: https://kubernetes.io/blog/2019/07/18/api-deprecations-in-1-16
рд╡рд╣ рдЕрдм рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИред

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕реЗрдб рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:

helm init --service-account tiller --output yaml | sed 's<strong i="6">@apiVersion</strong>: extensions/v1beta1<strong i="7">@apiVersion</strong>: apps/v1@' | sed 's@  replicas: 1@  replicas: 1\n  selector: {"matchLabels": {"app": "helm", "name": "tiller"}}@' | kubectl apply -f -

@Mattymo рд╕рдорд╛рдзрд╛рди (kubectl рдкреИрдЪ --local рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ) рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЬрдм рдЗрд╕рдХреЗ рдЗрдирдкреБрдЯ рдореЗрдВ рдПрдХрд╛рдзрд┐рдХ рд╕рдВрд╕рд╛рдзрди (рдпрд╣рд╛рдБ рдПрдХ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдФрд░ рдПрдХ рд╕реЗрд╡рд╛ рд╢рд╛рдорд┐рд▓ рд╣реИ) рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рд╕рднреА 83 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рд╣рдордиреЗ helm init --upgrade рджреЛрдиреЛрдВ extensions/v1beta1 рдФрд░ apps/v1 Tiller Deployments рд╕рдореЗрдЯрдиреЗ рдХреЗ рд╕рд╛рде рдЬрдЯрд┐рд▓рддрд╛ рдХреЗ рдХрд╛рд░рдг рдкрд┐рдЫрд▓реЗ рдХреБрдЫ рд╕рдордп рдореЗрдВ рдРрдкреНрд╕ / v1 рддрдХ рдЕрджреНрдпрддрди рдХрд░рдиреЗ рд╕реЗ рдкрд░рд╣реЗрдЬ рдХрд┐рдпрд╛ рд╣реИред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рдмрд╛рд░ рдЬрдм рд╣рдо Kubernetes 1.16.0 рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ рдЙрд╕ рдорд╛рдорд▓реЗ рдХреЛ рдЖрдЧреЗ рдмрдврд╝рд╛рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдирдП ApVVersion рдкрд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рдпрд╣рд╛рдБ рдПрдХ рдЕрд▓реНрдкрдХрд╛рд▓рд┐рдХ рд╕рдорд╛рдзрд╛рди рд╣реИ:

helm init --output yaml | sed 's<strong i="6">@apiVersion</strong>: extensions/v1beta1<strong i="7">@apiVersion</strong>: apps/v1@' | kubectl apply -f -

рджрд░рдЕрд╕рд▓, рдпрд╣ рдХрд╛рдлреА рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИред рдореБрдЭреЗ рдЕрднреА рднреА рдПрдХ рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИ:

error validating data: ValidationError(Deployment.spec): missing required field "selector" in io.k8s.api.apps.v1.DeploymentSpec

рдЗрд╕рдХреЗ рд╕рд╛рде рдкреИрдЪ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

/usr/local/bin/kubectl patch --local -oyaml -f - -p '{"spec":{"selector": {"app":"helm","name":"tiller"}}}'

рдЕрдЪреНрдЫрд╛ рд▓рдЧрд╛! рдЖрдк рдкрд╛рдЧрд▓ sed рд╣реИрдХреНрд╕ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ --override рдзреНрд╡рдЬ рдХреЗ рд╕рд╛рде рд╕рдорд╛рди рдкреНрд░рднрд╛рд╡ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ :)

рдЕрдЪреНрдЫрд╛ рд▓рдЧрд╛! рдЖрдк рдкрд╛рдЧрд▓ sed рд╣реИрдХреНрд╕ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ --override рдзреНрд╡рдЬ рдХреЗ рд╕рд╛рде рд╕рдорд╛рди рдкреНрд░рднрд╛рд╡ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ :)

рд╣рд╛рдВ, рд▓реЗрдХрд┐рди рдЙрд╕рдХрд╛ рдХреНрд░реЗрдЬреА рд╕реЗрдб рд╣реИрдХ рдореИрдВ рдХреЙрдкреА рдФрд░ рдкреЗрд╕реНрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЬрдмрдХрд┐ рдпрд╣ helm init --override "apiVersion"="apps/v1" рд╕рд┐рд░реНрдл рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдареАрдХ рд╣реИ, sed рд╣реИрдХ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рд╡рд░реНрддрдорд╛рди рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ:

helm init --output yaml> Tiller.yaml
рдФрд░ Tiller.yaml рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ:

  • рдПрдкреНрд▓рд┐рдХреЗрд╢рди / v1 рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди
  • рдЪрдпрдирдХрд░реНрддрд╛ рдлрд╝реАрд▓реНрдб рдЬреЛрдбрд╝реЗрдВ
---
apiVersion: apps/v1
kind: Deployment
metadata:
  creationTimestamp: null
  labels:
    app: helm
    name: tiller
  name: tiller-deploy
  namespace: kube-system
spec:
  replicas: 1
  strategy: {}
  selector:
    matchLabels:
      app: helm
      name: tiller
....

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕реЗрдб рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:

helm init --service-account tiller --output yaml | sed 's<strong i="6">@apiVersion</strong>: extensions/v1beta1<strong i="7">@apiVersion</strong>: apps/v1@' | sed 's@  replicas: 1@  replicas: 1\n  selector: {"matchLabels": {"app": "helm", "name": "tiller"}}@' | kubectl apply -f -

@Mattymo рд╕рдорд╛рдзрд╛рди (kubectl рдкреИрдЪ --local рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ) рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЬрдм рдЗрд╕рдХреЗ рдЗрдирдкреБрдЯ рдореЗрдВ рдПрдХрд╛рдзрд┐рдХ рд╕рдВрд╕рд╛рдзрди (рдпрд╣рд╛рдБ рдПрдХ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдФрд░ рдПрдХ рд╕реЗрд╡рд╛ рд╢рд╛рдорд┐рд▓ рд╣реИ) рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ 1.16.0 рдХрд▓ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛: 9/18/2018ред
рдЬрдм рддрдХ рдЙрдкрд░реЛрдХреНрдд рдХрд╛рд░реНрдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддрдм рддрдХ рдЗрд╕ рдирд╡реАрдирддрдо рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рд░рд┐рд▓реАрдЬ рдкрд░ рд╣реЗрд▓реНрдо рдЯреВрдЯ рдЬрд╛рддрд╛ рд╣реИред

рдпрд╣ рдореБрджреНрджрд╛ рдХрдм рддрдп рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдХрдм Helm 2.15.0 рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛?

рдпрджрд┐ рдЖрдк рдПрдХ рдХрдо sed рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ :)
helm init --service-account tiller --override spec.selector.matchLabels.'name'='tiller',spec.selector.matchLabels.'app'='helm' --output yaml | sed 's<strong i="6">@apiVersion</strong>: extensions/v1beta1<strong i="7">@apiVersion</strong>: apps/v1@' | kubectl apply -f -

рдзрдиреНрдпрд╡рд╛рдж!

рдЖрдЬ рдореИрдВ рдЙрд╕реА рдореБрджреНрджреЗ рд╕реЗ рдорд┐рд▓рд╛, рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдЖрдк рд╕реЗ рд▓реЗрдмрд▓ рдмрджрд▓ рджрд┐рдпрд╛ред рдореИрдВ рд▓реЗрдмрд▓ рдХреЛ apps/v1 рдмрджрд▓рддрд╛ рд╣реВрдВ рдФрд░ selector рд╣рд┐рд╕реНрд╕рд╛ рдЬреЛрдбрд╝рддрд╛ рд╣реВрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЕрдм рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдкреНрд░рджрд░реНрд╢рди рдХрд░ рд░рд╣рд╛ рд╣реИ, рдиреАрдЪреЗ рдореЗрд░реА yaml рдлрд╝рд╛рдЗрд▓ рд╣реИ:

apiVersion: apps/v1
kind: Deployment
metadata:
  creationTimestamp: null
  labels:
    app: helm
    name: tiller
  name: tiller-deploy
  namespace: kube-system
spec:
  replicas: 1
  strategy: {}
  selector:
    matchLabels:
      app: helm
      name: tiller
  template:
    metadata:
      creationTimestamp: null
      labels:
        app: helm
        name: tiller
    spec:
      automountServiceAccountToken: true
      containers:
      - env:
        - name: TILLER_NAMESPACE
          value: kube-system
        - name: TILLER_HISTORY_MAX
          value: "0"
        image: gcr.io/kubernetes-helm/tiller:v2.14.3
        imagePullPolicy: IfNotPresent
        livenessProbe:
          httpGet:
            path: /liveness
            port: 44135
          initialDelaySeconds: 1
          timeoutSeconds: 1
        name: tiller
        ports:
        - containerPort: 44134
          name: tiller
        - containerPort: 44135
          name: http
        readinessProbe:
          httpGet:
            path: /readiness
            port: 44135
          initialDelaySeconds: 1
          timeoutSeconds: 1
        resources: {}
      serviceAccountName: tiller
status: {}

@jbrette рддреБрдо рдореЗрд░реЗ рд╣реАрд░реЛ рд╣реЛ! рдореИрдВ selector рд╢реНрд▓реЛрдХ рд╕реЗ рдЬреВрдЭ рд░рд╣рд╛ рдерд╛ред

рдЖрдЬ рдореИрдВ рдЙрд╕реА рдореБрджреНрджреЗ рд╕реЗ рдорд┐рд▓рд╛, рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдЖрдк рд╕реЗ рд▓реЗрдмрд▓ рдмрджрд▓ рджрд┐рдпрд╛ред рдореИрдВ рд▓реЗрдмрд▓ рдХреЛ apps/v1 рдмрджрд▓рддрд╛ рд╣реВрдВ рдФрд░ selector рд╣рд┐рд╕реНрд╕рд╛ рдЬреЛрдбрд╝рддрд╛ рд╣реВрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЕрдм рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдкреНрд░рджрд░реНрд╢рди рдХрд░ рд░рд╣рд╛ рд╣реИ, рдиреАрдЪреЗ рдореЗрд░реА yaml рдлрд╝рд╛рдЗрд▓ рд╣реИ:

apiVersion: apps/v1
kind: Deployment
metadata:
  creationTimestamp: null
  labels:
    app: helm
    name: tiller
  name: tiller-deploy
  namespace: kube-system
spec:
  replicas: 1
  strategy: {}
  selector:
    matchLabels:
      app: helm
      name: tiller
  template:
    metadata:
      creationTimestamp: null
      labels:
        app: helm
        name: tiller
    spec:
      automountServiceAccountToken: true
      containers:
      - env:
        - name: TILLER_NAMESPACE
          value: kube-system
        - name: TILLER_HISTORY_MAX
          value: "0"
        image: gcr.io/kubernetes-helm/tiller:v2.14.3
        imagePullPolicy: IfNotPresent
        livenessProbe:
          httpGet:
            path: /liveness
            port: 44135
          initialDelaySeconds: 1
          timeoutSeconds: 1
        name: tiller
        ports:
        - containerPort: 44134
          name: tiller
        - containerPort: 44135
          name: http
        readinessProbe:
          httpGet:
            path: /readiness
            port: 44135
          initialDelaySeconds: 1
          timeoutSeconds: 1
        resources: {}
      serviceAccountName: tiller
status: {}

рдХреИрд╕реЗ рдмрджрд▓реЗрдВ ? рдХреНрдпрд╛ рдЖрдк рдЕрдзрд┐рдХ рд╡рд┐рд╡рд░рдг рдмрддрд╛ рд╕рдХрддреЗ рд╣реИрдВ?

рдЖрдЬ рдореИрдВ рдЙрд╕реА рдореБрджреНрджреЗ рд╕реЗ рдорд┐рд▓рд╛, рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдЖрдк рд╕реЗ рд▓реЗрдмрд▓ рдмрджрд▓ рджрд┐рдпрд╛ред рдореИрдВ рд▓реЗрдмрд▓ рдХреЛ apps/v1 рдмрджрд▓рддрд╛ рд╣реВрдВ рдФрд░ selector рд╣рд┐рд╕реНрд╕рд╛ рдЬреЛрдбрд╝рддрд╛ рд╣реВрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЕрдм рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдкреНрд░рджрд░реНрд╢рди рдХрд░ рд░рд╣рд╛ рд╣реИ, рдиреАрдЪреЗ рдореЗрд░реА yaml рдлрд╝рд╛рдЗрд▓ рд╣реИ:

apiVersion: apps/v1
kind: Deployment
metadata:
  creationTimestamp: null
  labels:
    app: helm
    name: tiller
  name: tiller-deploy
  namespace: kube-system
spec:
  replicas: 1
  strategy: {}
  selector:
    matchLabels:
      app: helm
      name: tiller
  template:
    metadata:
      creationTimestamp: null
      labels:
        app: helm
        name: tiller
    spec:
      automountServiceAccountToken: true
      containers:
      - env:
        - name: TILLER_NAMESPACE
          value: kube-system
        - name: TILLER_HISTORY_MAX
          value: "0"
        image: gcr.io/kubernetes-helm/tiller:v2.14.3
        imagePullPolicy: IfNotPresent
        livenessProbe:
          httpGet:
            path: /liveness
            port: 44135
          initialDelaySeconds: 1
          timeoutSeconds: 1
        name: tiller
        ports:
        - containerPort: 44134
          name: tiller
        - containerPort: 44135
          name: http
        readinessProbe:
          httpGet:
            path: /readiness
            port: 44135
          initialDelaySeconds: 1
          timeoutSeconds: 1
        resources: {}
      serviceAccountName: tiller
status: {}

@ gm12367 рдХреИрд╕реЗ рдмрджрд▓рдирд╛ рд╣реИ рдФрд░ рдХреНрдпрд╛ рдЖрдк рдЕрдзрд┐рдХ рд╡рд┐рд╡рд░рдг рдХрд╛ рд╡рд░реНрдгрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

рдЖрдЬ рдореИрдВ рдЙрд╕реА рдореБрджреНрджреЗ рд╕реЗ рдорд┐рд▓рд╛, рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдЖрдк рд╕реЗ рд▓реЗрдмрд▓ рдмрджрд▓ рджрд┐рдпрд╛ред рдореИрдВ рд▓реЗрдмрд▓ рдХреЛ apps/v1 рдмрджрд▓рддрд╛ рд╣реВрдВ рдФрд░ selector рд╣рд┐рд╕реНрд╕рд╛ рдЬреЛрдбрд╝рддрд╛ рд╣реВрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЕрдм рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдкреНрд░рджрд░реНрд╢рди рдХрд░ рд░рд╣рд╛ рд╣реИ, рдиреАрдЪреЗ рдореЗрд░реА yaml рдлрд╝рд╛рдЗрд▓ рд╣реИ:

apiVersion: apps/v1
kind: Deployment
metadata:
  creationTimestamp: null
  labels:
    app: helm
    name: tiller
  name: tiller-deploy
  namespace: kube-system
spec:
  replicas: 1
  strategy: {}
  selector:
    matchLabels:
      app: helm
      name: tiller
  template:
    metadata:
      creationTimestamp: null
      labels:
        app: helm
        name: tiller
    spec:
      automountServiceAccountToken: true
      containers:
      - env:
        - name: TILLER_NAMESPACE
          value: kube-system
        - name: TILLER_HISTORY_MAX
          value: "0"
        image: gcr.io/kubernetes-helm/tiller:v2.14.3
        imagePullPolicy: IfNotPresent
        livenessProbe:
          httpGet:
            path: /liveness
            port: 44135
          initialDelaySeconds: 1
          timeoutSeconds: 1
        name: tiller
        ports:
        - containerPort: 44134
          name: tiller
        - containerPort: 44135
          name: http
        readinessProbe:
          httpGet:
            path: /readiness
            port: 44135
          initialDelaySeconds: 1
          timeoutSeconds: 1
        resources: {}
      serviceAccountName: tiller
status: {}

@ gm12367 рдХреИрд╕реЗ рдмрджрд▓рдирд╛ рд╣реИ рдФрд░ рдХреНрдпрд╛ рдЖрдк рдЕрдзрд┐рдХ рд╡рд┐рд╡рд░рдг рдХрд╛ рд╡рд░реНрдгрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк YAML- рдкреНрд░рд╛рд░реВрдк рдореЗрдирд┐рдлреЗрд╕реНрдЯреЛрдВ рдХреЛ рдореБрджреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП helm init --service-account tiller --tiller-namespace kube-system --debug рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, --debug рд╡рд┐рдХрд▓реНрдк рдпрд╣ рдХрд░реЗрдВрдЧреЗ

@ gm12367 рд╣рд╛рдВ, рдореИрдВ рдкреНрд░рд┐рдВрдЯ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВ рд▓реЗрдХрд┐рди рд╕рд┐рд░реНрдл рдЖрдЙрдЯрдкреБрдЯред рддреЛ, рдореИрдВ рдХрд┐рд╕ рдХрдорд╛рдВрдб рд╕реЗ рдЖрдЙрдЯрдкреБрдЯ рдмрджрд▓ рд╕рдХрддрд╛ рд╣реВрдВ?

@ gm12367 рдореИрдВ рдРрдкреНрд╕ / v1 рдмрджрд▓рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдФрд░ рдЪрдпрдирдХрд░реНрддрд╛ рднрд╛рдЧ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ

@ puww1010 рдореИрдВрдиреЗ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд┐рдпрд╛, рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП VIM рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред рд╕рдВрджрд░реНрдн рдХреЗ рд░реВрдк рдореЗрдВ рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдЖрджреЗрд╢ред

# helm init --service-account tiller --tiller-namespace kube-system --debug >> helm-init.yaml
# vim helm-init.yaml
# kubectl apply -f helm-init.yaml

рдпрджрд┐ рдЖрдкрдХрд╛ рд╡рд╛рддрд╛рд╡рд░рдг рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЖрдк рддрдм рддрдХ рдкреНрд░рддреАрдХреНрд╖рд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрдм рддрдХ рдХрд┐ рдкреАрдЖрд░ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдирд╣реАрдВ рдХрд░ рджреЗрддрд╛ рд╣реИ [рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ 1.16 рдХреЗ рд╕рд╛рде рд╕рдВрдЧрдд init] # 6462 рд╡рд┐рд▓реАрди рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЖрдк рд╣рдореЗрд╢рд╛ рдРрд╕рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

рдмрд┐рд▓реНрдб

mkdir p ${GOPATH}/src/k8s.io
cd ${GOPATH}/src/k8s.io 
git clone -b kube16 https://github.com/keleustes/helm.git
cd helm
make bootstrap build

рдкрд░реАрдХреНрд╖рд╛:

kubectl version

Client Version: version.Info{Major:"1", Minor:"16", GitVersion:"v1.16.0", GitCommit:"2bd9643cee5b3b3a5ecbd3af49d09018f0773c77", GitTreeState:"clean", BuildDate:"2019-09-18T14:36:53Z", GoVersion:"go1.12.9", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"16", GitVersion:"v1.16.0", GitCommit:"2bd9643cee5b3b3a5ecbd3af49d09018f0773c77", GitTreeState:"clean", BuildDate:"2019-09-18T14:27:17Z", GoVersion:"go1.12.9", Compiler:"gc", Platform:"linux/amd64"}
/bin/helm init --wait --tiller-image gcr.io/kubernetes-helm/tiller:v2.14.3
Creating /home/xxx/.helm
Creating /home/xxx/.helm/repository
Creating /home/xxx/.helm/repository/cache
Creating /home/xxx/.helm/repository/local
Creating /home/xxx/.helm/plugins
Creating /home/xxx/.helm/starters
Creating /home/xxx/.helm/cache/archive
Creating /home/xxx/.helm/repository/repositories.yaml
Adding stable repo with URL: https://kubernetes-charts.storage.googleapis.com
Adding local repo with URL: http://127.0.0.1:8879/charts
$HELM_HOME has been configured at /home/xxx/.helm.

Tiller (the Helm server-side component) has been installed into your Kubernetes Cluster.

Please note: by default, Tiller is deployed with an insecure 'allow unauthenticated users' policy.
To prevent this, run `helm init` with the --tiller-tls-verify flag.
For more information on securing your installation see: https://docs.helm.sh/using_helm/#securing-your-helm-installation

`` `рдмрд╛рд╢
kubectl рдХреЛ рддреИрдирд╛рддреА рдорд┐рд▓рддреА рд╣реИ

```yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  annotations:
    deployment.kubernetes.io/revision: "1"
  creationTimestamp: "2019-09-22T01:01:11Z"
  generation: 1
  labels:
    app: helm
    name: tiller
  name: tiller-deploy
  namespace: kube-system
  resourceVersion: "553"
  selfLink: /apis/apps/v1/namespaces/kube-system/deployments/tiller-deploy
  uid: 124001ca-6f31-417e-950b-2452ce70f522
spec:
  progressDeadlineSeconds: 600
  replicas: 1
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      app: helm
      name: tiller
  strategy:
    rollingUpdate:
      maxSurge: 25%
      maxUnavailable: 25%
    type: RollingUpdate
  template:
    metadata:
      creationTimestamp: null
      labels:
        app: helm
        name: tiller
    spec:
      automountServiceAccountToken: true
      containers:
      - env:
        - name: TILLER_NAMESPACE
          value: kube-system
        - name: TILLER_HISTORY_MAX
          value: "0"
        image: gcr.io/kubernetes-helm/tiller:v2.14.3
        imagePullPolicy: IfNotPresent
        livenessProbe:
          failureThreshold: 3
          httpGet:
            path: /liveness
            port: 44135
            scheme: HTTP
          initialDelaySeconds: 1
          periodSeconds: 10
          successThreshold: 1
          timeoutSeconds: 1
        name: tiller
        ports:
        - containerPort: 44134
          name: tiller
          protocol: TCP
        - containerPort: 44135
          name: http
          protocol: TCP
        readinessProbe:
          failureThreshold: 3
          httpGet:
            path: /readiness
            port: 44135
            scheme: HTTP
          initialDelaySeconds: 1
          periodSeconds: 10
          successThreshold: 1
          timeoutSeconds: 1
        resources: {}
        terminationMessagePath: /dev/termination-log
        terminationMessagePolicy: File
      dnsPolicy: ClusterFirst
      restartPolicy: Always
      schedulerName: default-scheduler
      securityContext: {}
      terminationGracePeriodSeconds: 30
status:
  availableReplicas: 1
  conditions:
  - lastTransitionTime: "2019-09-22T01:01:23Z"
    lastUpdateTime: "2019-09-22T01:01:23Z"
    message: Deployment has minimum availability.
    reason: MinimumReplicasAvailable
    status: "True"
    type: Available
  - lastTransitionTime: "2019-09-22T01:01:11Z"
    lastUpdateTime: "2019-09-22T01:01:23Z"
    message: ReplicaSet "tiller-deploy-568db6b69f" has successfully progressed.
    reason: NewReplicaSetAvailable
    status: "True"
    type: Progressing
  observedGeneration: 1
  readyReplicas: 1
  replicas: 1
  updatedReplicas: 1

@jbrette рдЖрдкрдХреЗ рдирд┐рд░реНрджреЗрд╢ рдХрд╛ рдкрд╛рд▓рди рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рднреА рд╡рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИ

@jbrette рдЖрдкрдХреЗ рдирд┐рд░реНрджреЗрд╢ рдХрд╛ рдкрд╛рд▓рди рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рднреА рд╡рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИ

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдиреЗ "./bin/helm"" рдХреЗ рдмрдЬрд╛рдп "helm" рдЯрд╛рдЗрдк рдХрд┐рдпрд╛ рд╣реИред рдЖрдк рдмрд╛рдЗрдирд░реА рдХреЗ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рд╕рдлрд▓ init рдХреЗ рдмрд╛рдж рдЖрдк рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕реЗ рдЪрд╛рд░реНрдЯ рдкреИрдХреЗрдЬ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реЛрдВрдЧреЗ, рдЬрдм рддрдХ рдХрд┐ рдЗрд╕рдореЗрдВ рдПрдХреНрд╕рдЯреЗрдВрд╢рди / v1beta1 рдХреА рдЬрдЧрд╣ рди рд╣реЛред
рдпрд╣рд╛рдБ рдХреИрд╕реЗ k8s v1.16.0 рдХреЗ рд▓рд┐рдП рднрдВрдбрд╛рд░ рд╕реЗ рдХрд┐рд╕реА рднреА рдЪрд╛рд░реНрдЯ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ
рдЙрджрд╛рд╣рд░рдг рдкреНрд░реЛрдореЗрдерд┐рдпрд╕ рдЪрд╛рд░реНрдЯ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред

git clone https://github.com/helm/charts
cd charts/stable

рдПрдХреНрд╕рдЯреЗрдВрд╢рди / v1b1 рдХреЛ рдкреЙрд▓рд┐рд╕реА рдореЗрдВ рдмрджрд▓реЗрдВ / v1b1

sed -i 's<strong i="11">@apiVersion</strong>: extensions/v1beta1<strong i="12">@apiVersion</strong>: policy/v1beta1@' `find . -iregex ".*yaml\|.*yml" -exec awk '/kind:\s+PodSecurityPolicy/ {print FILENAME}' {} +`

NetworkPolicy ApiVersion рдЙрди рдЪрд╛рд░реНрдЯреНрд╕ рдХреЗ рд▓рд┐рдП _helpers.tpl рджреНрд╡рд╛рд░рд╛ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╕рдВрднрд╛рд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдПрдХреНрд╕рдЯреЗрдВрд╢рди / v1b1 рдХреЛ рдПрдкреНрд╕ / v1 рдореЗрдВ рддреИрдирд╛рддреА, рд╕реНрдЯреЗрдЯрдлреБрд▓рд╕реЗрдЯ, рд░реЗрдкреНрд▓рд┐рдХрд╛рд╕реЗрдЯ, рдбреЗрдордирд╕реЗрдЯ рдореЗрдВ рдмрджрд▓реЗрдВ

sed -i 's<strong i="17">@apiVersion</strong>: extensions/v1beta1<strong i="18">@apiVersion</strong>: apps/v1@' `find . -iregex ".*yaml\|.*yml" -exec awk '/kind:\s+(Deployment|StatefulSet|ReplicaSet|DaemonSet)/ {print FILENAME}' {} +`
sed -i 's<strong i="19">@apiVersion</strong>: apps/v1beta2<strong i="20">@apiVersion</strong>: apps/v1@' `find . -iregex ".*yaml\|.*yml" -exec awk '/kind:\s+(Deployment|StatefulSet|ReplicaSet|DaemonSet)/ {print FILENAME}' {} +`

рдПрдХ рдирдпрд╛ рдкреИрдХреЗрдЬ рдмрдирд╛рдПрдБ:

helm package ./prometheus
Successfully packaged chart and saved it to: /home/vagrant/charts/stable/prometheus-9.1.1.tgz

рдЗрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЛ:
helm install /home/vagrant/charts/stable/prometheus-9.1.1.tgz

Https://kubernetes.io/blog/2019/07/18/api-deprecations-in-1-16/ рдкрд░ рдЖрдзрд╛рд░рд┐рдд

рдкреБрдирд╢реНрдЪ рдирд┐рд░реНрднрд░рддрд╛ рд╡рд╛рд▓реЗ рдХреБрдЫ рдЪрд╛рд░реНрдЯ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ helm dependency update рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ рдФрд░ рдпрджрд┐ рд▓рд╛рдЧреВ рд╣реЛ рддреЛ рдирд┐рд░реНрднрд░ tgz рдХреЛ рдкреИрдЪ рд╡рд╛рд▓реЗ рдХреЗ рд╕рд╛рде рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред

helm init --history-max 200 рдЪрд▓рдиреЗ рдкрд░ рд╕рдорд╛рди рддреНрд░реБрдЯрд┐ рд╣реЛ рд░рд╣реА рд╣реИ

рдЙрддреНрдкрд╛рджрди

$HELM_HOME has been configured at /Users/neil/.helm.
Error: error installing: the server could not find the requested resource
$ helm version
Client: &version.Version{SemVer:"v2.14.3", GitCommit:"0e7f3b6637f7af8fcfddb3d2941fcc7cbebb0085", GitTreeState:"clean"}
Error: could not find tiller

рдпрд╣ рд╢рд╛рдЦрд╛ https://github.com/keleustes/helm/tree/kube16 рдХрд╛рдо рдХрд░рддреА рд╣реИ https://s3-us-west-2.amazonaws.com/bin.cryptexlabs.com/github.com/keleustes/helm/kube16/darwin/helmред рдПрдХ рдЪреЗрддрд╛рд╡рдиреА рдпрд╣ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдХреИрдирд░реА рдЗрдореЗрдЬ рдлреНрд▓реИрдЧ helm init --canary-image рдХреНрдпреЛрдВрдХрд┐ рдмрд┐рд▓реНрдб рдЕрдкреНрд░рдмрдВрдзрд┐рдд рд╣реИ

рдпрд╣ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдХреИрдирд░реА рдЫрд╡рд┐ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рдЖрдк рдкрд╣рд▓реЗ # 6462 рдХреЛ рдЖрдЬрд╝рдорд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдореИрдВ helm init --tiller-image gcr.io/kubernetes-helm/tiller:v2.14.3 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреВрдВрдЧрд╛ ред

рдореИрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдкрд╣рд▓реЗ рдХрд┐рд╕реА рдкреАрдЖрд░ рд░рд╛рд╕реНрддреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдкрд╣рд▓реЗ рджрд┐рдП рдЧрдП рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдореЗрдВ рд╕реЗ рдПрдХ рдХреЛ рдЖрдЬрд╝рдорд╛рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреВрдВрдЧрд╛; рдЗрд╕ рддрд░рд╣, рд╡реЗ рдЕрднреА рднреА рд╕рдореАрдХреНрд╖рд╛ рдХреЗ рдЕрдзреАрди рд╣реИ рдХрд┐ рдПрдХ рдХрд╕реНрдЯрдо рджреЗрд╡ рд╢рд╛рдЦрд╛ рдХреЗ рдмрдЬрд╛рдп рд╣реЗрд▓реНрдо 2.14.3 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВред

рдЬрдм рдореИрдВ рдЗрд╕реЗ рдХрдорд╛рдВрдб рдХрд░рддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдмрд╛рдж рдбрд┐рдмреНрдмреЗ рдЗрд╕реЗ рдлрд▓реА рдореЗрдВ рджреЗрдЦрддреЗ рд╣реИрдВ рдФрд░ рдХрд╣рддреЗ рд╣реИрдВ рдХрд┐ рд╕рд░реНрд╡рд░ рд╕реЗ рддреНрд░реБрдЯрд┐ (NotFound): рдкреЙрдбреНрд╕ "рдЯрд┐рд▓рд░-рддреИрдирд╛рдд" рдирд╣реАрдВ рдорд┐рд▓рд╛

helm init --service-account tiller --override spec.selector.matchLabels.'name'='tiller',spec.selector.matchLabels.'app'='helm' --output yaml | sed 's<strong i="7">@apiVersion</strong>: extensions/v1beta1<strong i="8">@apiVersion</strong>: apps/v1@' | kubectl apply -f -

рддреИрдирд╛рдд рдХрд░рдирд╛
рд╕реЗрд╡рд╛ / рдЯрд┐рд▓рд░-рддреИрдирд╛рдд рдмрдирд╛рдпрд╛ рдЧрдпрд╛

рд▓реЗрдХрд┐рди рдЬрдм рдореИрдВ kubectl рдлрд▓реА рдорд┐рд▓рддрд╛ рд╣реИ - рд╕рднреА рдирд╛рдорд╕реНрдерд╛рдиреЛрдВ рдлрд▓реА рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ
NAMESPACE рдХреЗ рдирд╛рдо рд╕реЗ рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рд░реЗрд╕реНрддрд░рд╛рдВ
kube-system coredns-5644d7b6d9-559hw 1/1 рд░рдирд┐рдВрдЧ 0 23h
kube-system coredns-5644d7b6d9-xcmjd 1/1 рд░рдирд┐рдВрдЧ 0 23h
рдХреНрдпреВрдм-рд╕рд┐рд╕реНрдЯрдо etcd-fmp 1/1 рд░рдирд┐рдВрдЧ 0 24h
kube-system kube-apiserver-fmp 1/1 рд░рдирд┐рдВрдЧ 0 24h
рдХреНрдпреВрдм-рд╕рд┐рд╕реНрдЯрдо рдХреНрдпреВрдм-рдХрдВрдЯреНрд░реЛрд▓рд░-рдореИрдиреЗрдЬрд░-рдПрдлрдПрдордкреА рез / рез рд░рдирд┐рдВрдЧ резрек рдПрдЪ
kube-system kube-flannel-ds-amd64-ffx2g 1/1 рд░рдирд┐рдВрдЧ 0 23h
kube-system kube -xy-lfvrz 1/1 рд░рдирд┐рдВрдЧ 0 24h
kube- рд╕рд┐рд╕реНрдЯрдо kub-рдЕрдиреБрд╕реВрдЪрдХ-fmp 1/1 рд░рдирд┐рдВрдЧ 0 24h

kubectl рд╕рднреА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ - рд╕рднреА-рдирд╛рдорд╕реНрдерд╛рди | grep рдЯрд┐рд▓рд░
рдХреНрдпреВрдм-рд╕рд┐рд╕реНрдЯрдо рд╕реЗрд╡рд╛ / рдЯрд┐рд▓рд░-рддреИрдирд╛рдд рдХреНрд▓рд╕реНрдЯрд░ рдХреНрд▓рд╕реНрдЯрд░ xxx44134 / рдЯреАрд╕реАрдкреА 2m52s
kube-system рдкрд░рд┐рдирд┐рдпреЛрдЬрди .apps / рдЯрд┐рд▓рд░-рддреИрдирд╛рдд 0/1 0 0 2m54s
рдХреНрдпреВрдм-рд╕рд┐рд╕реНрдЯрдо replicaset.apps / рдЯрд┐рд▓рд░-рддреИрдирд╛рддреА -77855d9dcf 1 0 0 2 2 mgs

@DanielIvaylov рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЯрд┐рд▓рд░ рд╕реЗрд╡рд╛ рдЦрд╛рддрд╛ рдирд╣реАрдВ рд╣реИред рдХреГрдкрдпрд╛ рдЗрд╕реЗ рдмрдирд╛рдПрдВ, рдФрд░ рдлрд┐рд░ рддреИрдирд╛рддреА рдЯрд┐рд▓рд░ рдкреЙрдб рднреА рдмрдирд╛рдПрдЧреАред

рдзрдиреНрдпрд╡рд╛рдж!

@DanielIvaylov рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЯрд┐рд▓рд░ рд╕реЗрд╡рд╛ рдЦрд╛рддрд╛ рдирд╣реАрдВ рд╣реИред рдХреГрдкрдпрд╛ рдЗрд╕реЗ рдмрдирд╛рдПрдВ, рдФрд░ рдлрд┐рд░ рддреИрдирд╛рддреА рдЯрд┐рд▓рд░ рдкреЙрдб рднреА рдмрдирд╛рдПрдЧреАред

рдзрдиреНрдпрд╡рд╛рдж!

рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, im new i рдиреЗ рд╕реЛрдЪрд╛ рдХрд┐ рдпрд╣ рдЗрд╕реЗ рд╢реБрд░реВ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рдореИрдВ рдЯрд┐рд▓рд░ рд╕реЗрд╡рд╛ рдЦрд╛рддрд╛ рдХреИрд╕реЗ рд╢реБрд░реВ рдХрд░реВрдВ?

@ рдбреИрдирд┐рдпрд▓ рдЗрд╡рд▓рд╛рд╡

kubectl --namespace kube-system create sa tiller
kubectl create clusterrolebinding tiller --clusterrole cluster-admin --serviceaccount=kube-system:tiller

рдПрдкреАрдЖрдИ рд╕рд░реНрд╡рд░ (/etc/kubernetes/manifests/kube-apiserver.yaml) рдкрд░ рдзреНрд╡рдЬ рдХреЗ рдиреАрдЪреЗ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИ рдЬреЛ рдЕрд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ рдЙрди рдЕрдкрдЧреНрд░реЗрдб рдХрд┐рдП рдЧрдП рдПрдкреАрдЖрдИ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╕рдХреНрд╖рдо рдХрд░рддрд╛ рд╣реИред

--runtime-config = apps / v1beta1 = true, apps / v1beta2 = true, рдПрдХреНрд╕рдЯреЗрдВрд╢рди / v1beta1 / daemonsets = true, рдПрдХреНрд╕рдЯреЗрдВрд╢рди / v1beta1 / рдкрд░рд┐рдирд┐рдпреЛрдЬрди = рд╕рддреНрдп, рдПрдХреНрд╕рдЯреЗрдВрд╢рди / v1beta1 / рдкреНрд░рддрд┐рдХреГрддрд┐рдпрд╛рдВ = рд╕рддреНрдп, рдПрдХреНрд╕рдЯреЗрдВрд╢рди / v1beta1 / networkpolatics = trueред рдПрдХреНрд╕рдЯреЗрдВрд╢рди / v1beta1 / podsecuritypolatics = true

рдпрд╣ рдкрддрд╡рд╛рд░ v2 рддрдп рдХреА

рд╡рд┐рдВрдбреЛрдЬрд╝ рдкрд░ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП, рд╣рдо рд╢рд┐рд▓реНрдкреА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЯрд┐рд▓рд░ рдХреЛ рдЕрдкрдЧреНрд░реЗрдб / рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдереЗ рдЬреИрд╕реЗ:

$(helm init --output yaml) -replace "extensions/v1beta1","apps/v1"

рдпрд╣рд╛рдБ рдПрдХ рдЕрд▓реНрдкрдХрд╛рд▓рд┐рдХ рд╕рдорд╛рдзрд╛рди рд╣реИ:

helm init --output yaml | sed 's<strong i="7">@apiVersion</strong>: extensions/v1beta1<strong i="8">@apiVersion</strong>: apps/v1@' | kubectl apply -f -

рджрд░рдЕрд╕рд▓, рдпрд╣ рдХрд╛рдлреА рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИред рдореБрдЭреЗ рдЕрднреА рднреА рдПрдХ рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИ:

error validating data: ValidationError(Deployment.spec): missing required field "selector" in io.k8s.api.apps.v1.DeploymentSpec

рдЗрд╕рдХреЗ рд╕рд╛рде рдкреИрдЪ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

/usr/local/bin/kubectl patch --local -oyaml -f - -p '{"spec":{"selector": {"app":"helm","name":"tiller"}}}'

рдореЗрд░реЗ рд▓рд┐рдП kubectl рдкреИрдЪ рд▓рдЯрдХрд╛ рд╣реБрдЖ рд╣реИ
/ var / log / syslog рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХреЛрдИ рд╕рдВрджреЗрд╢ рдирд╣реАрдВ

рд╕реЗрд╡рд╛ рдЦрд╛рддреЗ рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рд╣реИрдВ

kubeflow @ masternode : ~ $ kubectl --namespace kube-system рдПрдХ sa Tiller рдмрдирд╛рдПрдБ
рд╕рд░реНрд╡рд░ рд╕реЗ рддреНрд░реБрдЯрд┐ (рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдореМрдЬреВрдж): рд╕рд░реНрд╡рд┐рд╕рд╕реАрдХрд╛рдЙрдВрдЯ "рдЯрд┐рд▓рд░" рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рд╣реИ
kubeflow @ masternode : ~ $ kubectl рдХреНрд▓рд╕реНрдЯрд░рдмреЗрд▓реНрдбрд┐рдВрдЧ рдЯрд┐рд▓рд░ рдмрдирд╛рдПрдВ - рдХреНрд▓реЗрд╕реНрдЯрд░реЛрд▓ рдХреНрд▓рд╕реНрдЯрд░-рдПрдбрдорд┐рди --serviceaccount = kube- рд╕рд┐рд╕реНрдЯрдо: рдЯрд┐рд▓рд░
рд╕рд░реНрд╡рд░ рд╕реЗ рддреНрд░реБрдЯрд┐ (рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдореМрдЬреВрдж): рдХреНрд▓рд╕реНрдЯрд░рдмреЗрд▓рд┐рдВрдбрд┐рдВрдЧреНрд╕ .rbac.authorization.k8s.io "рдЯрд┐рд▓рд░" рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рд╣реИ

рдХреНрдпрд╛ рдЖрдк рд╕рд▓рд╛рд╣ рджреЗ рд╕рдХрддреЗ рд╣реИрдВ

рдиреАрдЪреЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд

рдирд┐рд░реНрдпрд╛рдд рдкрде = $ рдкрде: / usr / рд╕реНрдерд╛рдиреАрдп / рдмрд┐рди
рдХреМрди рд╕рд╛ рдкрддрд╡рд╛рд░
рдЬреЛ рдЯрд┐рд▓рд░
рд╣реЗрд▓рдо рдЗрдВрд╕реНрдЯреЙрд▓ \ _
--name nfs-client-рдкреНрд░реЛрд╡рд┐рдЬрд╝рдирд░ \ n
--рд╕реЗрдЯ nfs.server = 10.0.0.4 \
--рд╕реЗрдЯ nfs.path = / nfsroot \
--set StorageClass.name = nfs \
--set storageClass.defaultClass = true \
рд╕реНрдерд┐рд░ / nfs- рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рдВрдпреЛрдЬрдХ

рд╕рд╛рде рд▓реМрдЯрддрд╛ рд╣реИ

/ usr / рд╕реНрдерд╛рдиреАрдп / рдмрд┐рди / рдкрддрд╡рд╛рд░
/ usr / рд╕реНрдерд╛рдиреАрдп / рдмрд┐рди / рдЯрд┐рд▓рд░
рддреНрд░реБрдЯрд┐: рдЯрд┐рд▓рд░ рдирд╣реАрдВ рдорд┐рд▓ рд╕рдХрд╛

рдХрд┐рд╕реА рднреА рдорджрдж рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХрд░рддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЕрдм рдПрдХ рд╢реЛ рд╕реНрдЯреЙрдкрд░ рд╣реИ

@cyrilthank рдпрд╣ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЯрд┐рд▓рд░ рддреНрд░реБрдЯрд┐ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╡рд╣рд╛рдБ рдХреЛрдИ рдЯрд┐рд▓рд░ рддреИрдирд╛рддреА рдирд╣реАрдВ рдЪрд▓ рд░рд╣рд╛ рд╣реИ, рдЯрд┐рд▓рд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдХрдорд╛рдВрдб рдХреЛ рдЪрд▓рд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ:
helm init --service-account tiller --override spec.selector.matchLabels.'name'='tiller',spec.selector.matchLabels.'app'='helm' --output yaml | sed 's<strong i="7">@apiVersion</strong>: extensions/v1beta1<strong i="8">@apiVersion</strong>: apps/v1@' | kubectl apply -f -

helm version -s рдХреЛ рд╕рд░реНрд╡рд░ (рдЯрд┐рд▓рд░) рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдЕрдЧрд░ рдЗрд╕рдХреЗ рдКрдкрд░ рдФрд░ рдареАрдХ рд╕реЗ рдЪрд▓ рд░рд╣рд╛ рд╣реИ

рд╢реБрдХреНрд░рд┐рдпрд╛ рдЬрдирд╛рдмред
рдЖрдк рд╣рдореЗрдВ рдЕрдЧрд▓реЗ рдЪрд░рдг рдХреЗ рд▓рд┐рдП kubeflow рдХреЗ рд╕рд╛рде рдЖрдЧреЗ рдмрдврд╝рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдореЗрдВ рдорджрджрдЧрд╛рд░ рд░рд╣реЗ рд╣реИрдВ

рдареАрдХ рд╣реИ, рдЕрдм рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдпрд╣ рдореБрджреНрджрд╛ рдорд┐рд▓ рдЧрдпрд╛ рд╣реИ
https://github.com/kubeflow/kubeflow/issues/4184
рдЕрд╡рд░реЛрдзрдХ рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд╛рдкрд╕

рдпрджрд┐ рдЖрдк https://github.com/kubeflow/kubeflow/issues/4184 рдкрд░ рдХреБрдЫ рдорджрдж рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЗрд╕рдХреА рдорджрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕рдХреА рд╕рд░рд╛рд╣рдирд╛

: @cyrilthank рдКрдкрд░ рдмрддрд╛рдП рдЧрдП рдЪрд░рдгреЛрдВ рдХреЛрд╢рд┐рд╢ https://github.com/helm/helm/issues/6374#issuecomment -+релрей,рейрео,релрей,реореорео
рдЖрдкрдХреЛ рд╣рдЯрд╛рдП рдЧрдП рдПрдкреАрдЖрдИ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЛ рдирдП рд▓реЛрдЧреЛрдВ рдХреЗ рд╕рд╛рде рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ

kubeflow_workaround_and_error_traces.txt

рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдЦреБрд▓рд╛ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЖрдкрдХреЗ рдорд░реАрдЬ рдХреЗ рдЬрд╡рд╛рдм рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж рд╕рд░

рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдЪрд░рдгреЛрдВ рдореЗрдВ рдХреБрдЫ рдЧрд▓рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВ

рд╕рд░рд╛рд╣рдирд╛ рдХрд░реЗрдВ рдпрджрд┐ рдЖрдк рд╕рдВрд▓рдЧреНрди рдирд┐рд╢рд╛рдиреЛрдВ рдореЗрдВ рдЪрд░рдгреЛрдВ рдХреА рд╕рдореАрдХреНрд╖рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдореБрдЭреЗ рд╕рд▓рд╛рд╣ рджреЗ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдореИрдВ рдХреНрдпрд╛ рдЧрд▓рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВ

@ рдХреНрд░рд┐рд▓реНрдЯрд┐рдВрдХ рдЖрдкрдХреЛ рдмрд╕ рдкреБрд░рд╛рдиреЗ рдХреНрдпреВрдИ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЛ рдирдП рдХреЗ рд╕рд╛рде рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП (# рд╕рднреА рдкрд░ рдкреНрд░реЛрдореЗрдерд┐рдпрд╕ рдХреЛ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ) рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП sed рдЕрдкрдиреЗ рдХреНрдпреВрдмрдлрд╝реНрд▓реЛ рдпрд╛рдорд▓реНрд╕ рдХреЗ рдЦрд┐рд▓рд╛рдл рдХрдорд╛рдВрдб рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдорд╛рдл рдХрд░рдирд╛, рдЕрдЧрд░ рдореИрдВ рдЕрдкрдиреЗ рдЖрдк рдХреЛ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╡реНрдпрдХреНрдд рдирд╣реАрдВ рдХрд┐рдпрд╛ред
рдпрд╣ рдлрд┐рдХреНрд╕ рдореВрд▓ рд░реВрдк рд╕реЗ extensions/v1beta1 apps/v1 рд╕рд╛рде рдЖрдкрдХреЗ kubeflow dpl yamls рдХреА рдЬрдЧрд╣ рд▓реЗ рд░рд╣рд╛ рд╣реИ

рдЖрд╣ рддреЛ рдореИрдВ рдПрдХ рдЧреВрдВрдЧрд╛ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдХрд┐рдпрд╛ :(

рдореЗрд░рд╛ KFAPP = / nfsroot / kf-poc

рдореБрдЭреЗ рдЕрднреА рднреА рдХреБрдЫ рд╕рдВрджреЗрд╢ рдФрд░ рдЕрдВрддрд┐рдо рддреНрд░реБрдЯрд┐ рдирд┐рдХрд▓ рд░рд╣реА рд╣реИ

рдХреНрдпрд╛ рдЖрдк рдХреГрдкрдпрд╛ рдорджрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВ рдЕрдм рдЖрдк рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдк kubeflow рдкрд░ рдЕрдЧрд▓реЗ рдЪрд░рдг рдкрд░ рдЬрд╛рдПрдВ

kubeflow_workaround_sed_and_error_traces.txt

@ рдХреНрд░рд┐рдкреНрдЯрд┐рдВрдХреИрдВрдХ рдЖрдкрдХреЛ рдмрд╕ рдкреБрд░рд╛рдиреЗ рдХреНрдпреВрдИ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЛ рдирдП рдХреЗ рд╕рд╛рде рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП sed рдЖрджреЗрд╢реЛрдВ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рдирдП рд╕рднреА рд╣рдВрд╕реА рдкрд░ рдкреНрд░реЛрдореЗрдерд┐рдпрд╕ рдХреЛ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХреА рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ)ред рдорд╛рдл рдХрд░рдирд╛, рдЕрдЧрд░ рдореИрдВ рдЕрдкрдиреЗ рдЖрдк рдХреЛ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╡реНрдпрдХреНрдд рдирд╣реАрдВ рдХрд┐рдпрд╛ред
рдпрд╣ рдлрд┐рдХреНрд╕ рдореВрд▓ рд░реВрдк рд╕реЗ extensions/v1beta1 apps/v1 рд╕рд╛рде рдЖрдкрдХреЗ kubeflow dpl yamls рдХреА рдЬрдЧрд╣ рд▓реЗ рд░рд╣рд╛ рд╣реИ

apps/v1beta2 рднреА apps/v1

https://kubernetes.io/blog/2019/07/18/api-deprecations-in-1-16/

рдЖрдкрдХреА рдорджрдж рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж @uniuuu
рдХреНрдпрд╛ рдЖрдк рд╕рд▓рд╛рд╣ рджреЗ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ https://github.com/helm/helm/helm/files/3662328/kubeflow_workaround_sed_and_error_traces.txt рдореЗрдВ рд╕рдВрджрд░реНрднрд┐рдд рдпрдо рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдХреИрд╕реЗ / рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд

https://github.com/helm/helm/issues/6374#issuecomment -533840097
https://github.com/helm/helm/issues/6374#issuecomment -533185074

рд░рд┐рдХреНрддреА рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдмрд╛рдж рд╕реЗ рдЕрдиреБрд░реЛрдз рдХрд░рддреЗ рд╣реБрдП рд╣рдо рдЕрднреА рднреА рд╕рдВрджрд░реНрднрд┐рдд рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рдЪреБрдХреЗ рд╣реИрдВ

рдЖрдк рдХреГрдкрдпрд╛ рд╕рд▓рд╛рд╣ рджреЗ рд╕рдХрддреЗ рд╣реИрдВ рдЕрдЧрд░ рдХрджрдо

kubectl Convert -f--рдЖрдЙрдЯрдкреБрдЯ-рд╕рдВрд╕реНрдХрд░рдг/

рд╣рд░ рдХреЗ рд▓рд┐рдП рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПKFAPP рд╕реНрдерд╛рди рдореЗрдВ рд╣рд░ yaml рдлрд╝рд╛рдЗрд▓ рд╣реЛрдирд╛ .kache рд╕рд╣рд┐рдд

рдпрджрд┐ рдЖрдкрдиреЗ helm init рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рдКрдкрд░ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рд╣реИ, рдФрд░ рдЕрднреА рднреА helm version рдЬреИрд╕реА рдЪреАрдЬреЛрдВ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╕рдордп рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИ, рддреЛ рдпрд╣ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ helm deployment рдкрд╛рдпрд╛ рдирд╣реАрдВ рдЬрд╛ рд╕рдХрддрд╛ред

Error: could not find tiller

рдпрд╣ рддреИрдпрд╛рд░ рдХреНрдпреЛрдВ рдирд╣реАрдВ рд╣реИ, рдпрд╣ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ kubectl get events --all-namespaces | grep -i tiller рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореЗрд░рд╛ рдореБрджреНрджрд╛ рдХреЗрд╡рд▓ рдиреАрдЪреЗ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ serviceaccount "tiller" рд╕рд╛рде microk8s ред

microk8s.kubectl get events --all-namespaces | grep -i tiller
kube-system    23m         Warning   FailedCreate                   replicaset/tiller-deploy-77855d9dcf            Error creating: pods "tiller-deploy-77855d9dcf-" is forbidden: error looking up service account kube-system/tiller: serviceaccount "tiller" not found

рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рд╕рд░реНрд╡рд┐рд╕ рдЕрдХрд╛рдЙрдВрдЯ рдХреЗ рдмрд┐рдирд╛ рд╡рд░реНрдХрдЖрдЙрдЯ рдХрд┐рдпрд╛

- helm init --service-account tiller --override spec.selector.matchLabels.'name'='tiller',spec.selector.matchLabels.'app'='helm' --output yaml | sed 's<strong i="20">@apiVersion</strong>: extensions/v1beta1<strong i="21">@apiVersion</strong>: apps/v1@' | kubectl apply -f -
+ helm init spec.selector.matchLabels.'name'='tiller',spec.selector.matchLabels.'app'='helm' --output yaml | sed 's<strong i="22">@apiVersion</strong>: extensions/v1beta1<strong i="23">@apiVersion</strong>: apps/v1@' | kubectl apply -f -

@cyrilthank рдореИрдВрдиреЗ рдЖрдкрдХреА рдЯрд┐рдкреНрдкрдгреА рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдпрд╣рд╛рдБ рд╢рд╛рдорд┐рд▓ рдЪрд░реНрдЪрд╛ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдирд╣реАрдВ рд╣реИред рдХреГрдкрдпрд╛ kubeflow / kubeflow # 4184 рдореЗрдВ рдЕрдиреБрд╡рд░реНрддреА рдХрд╛рд░реНрд░рд╡рд╛рдИ рдЬрд╛рд░реА рд░рдЦреЗрдВред рдзрдиреНрдпрд╡рд╛рдж!

helm init spec.selector.matchLabels.'name'='tiller',spec.selector.matchLabels.'app'='helm' --output yaml | sed 's<strong i="6">@apiVersion</strong>: extensions/v1beta1<strong i="7">@apiVersion</strong>: apps/v1@' | kubectl apply -f -

рдереЛрдбрд╝рд╛ рд╕реБрдзрд╛рд░

helm init --override spec.selector.matchLabels.'name'='tiller',spec.selector.matchLabels.'app'='helm' --output yaml | sed 's<strong i="11">@apiVersion</strong>: extensions/v1beta1<strong i="12">@apiVersion</strong>: apps/v1@' | kubectl apply -f -

+1

@ puww1010 рдореИрдВрдиреЗ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд┐рдпрд╛, рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП VIM рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред рд╕рдВрджрд░реНрдн рдХреЗ рд░реВрдк рдореЗрдВ рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдЖрджреЗрд╢ред

# helm init --service-account tiller --tiller-namespace kube-system --debug >> helm-init.yaml
# vim helm-init.yaml
# kubectl apply -f helm-init.yaml

рдореИрдВрдиреЗ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред VIM рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдореИрдВ kubectl apply рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЬрдм рдореИрдВ helm init --service-account tiller --tiller-namespace kube-system --debug >> helm-init.yaml рдлрд┐рд░ рд╕реЗ рдЪрд▓рддрд╛ рд╣реВрдВ рдпрд╛ helm init --output yaml рдкрд░рд┐рд╡рд░реНрддрди рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдП рдЧрдП рд╣реИрдВред рдХрд┐рд╕реА рдФрд░ рдХреЛ рдпрд╣ рдЕрдиреБрднрд╡?

рдпрджрд┐ рдЖрдк рдПрдХ рдХрдо sed рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ :)
helm init --service-account tiller --override spec.selector.matchLabels.'name'='tiller',spec.selector.matchLabels.'app'='helm' --output yaml | sed 's<strong i="7">@apiVersion</strong>: extensions/v1beta1<strong i="8">@apiVersion</strong>: apps/v1@' | kubectl apply -f -

рдзрдиреНрдпрд╡рд╛рдж!

рдореИрдВрдиреЗ рдмрд╕ рдЕрдкрдиреЗ k8 рдХреЛ рдЕрдкрдЧреНрд░реЗрдб рдХрд┐рдпрд╛ рдФрд░ рдореБрдЭреЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ рдФрд░ рдореИрдВрдиреЗ рдЙрдкрд░реЛрдХреНрдд рд╕рдорд╛рдзрд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред рдпрд╣ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдмрдирд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдкреНрд░рддрд┐рдХреГрддрд┐рдпрд╛рдВ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддреА рд╣реИ рдФрд░ рдпрд╣реА рдореБрдЭреЗ kubectl describe -n kube-system replicasets.apps tiller-deploy-77855d9dcf рд╕реЗ рдорд┐рд▓рддрд╛ рд╣реИред

Events:
  Type     Reason        Age                 From                   Message
  ----     ------        ----                ----                   -------
  Warning  FailedCreate  41s (x14 over 82s)  replicaset-controller  Error creating: pods "tiller-deploy-77855d9dcf-" is forbidden: error looking up service account kube-system/tiller: serviceaccount "tiller" not found

рдореБрдЭреЗ рдЙрд╕ рд╕рд░реНрд╡рд┐рд╕рд╕реА рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдпрдорд▓ рдлрд╝рд╛рдЗрд▓ рдХрд╣рд╛рдБ рдорд┐рд▓ рд╕рдХрддреА рд╣реИ?

@ рдбреИрдирд┐рдпрд▓ рдЗрд╡рд▓рд╛рд╡

kubectl --namespace kube-system create sa tiller
kubectl create clusterrolebinding tiller --clusterrole cluster-admin --serviceaccount=kube-system:tiller

рдЗрд╕рд╕реЗ рдореЗрд░реА рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЧрдИ!

6462 рдХреЛ рд╡рд┐рд▓рдп рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЕрдЧрд▓реА рд░рд┐рд▓реАрдЬ (2.15.0) рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реЛрдЧрд╛ред рдЕрднреА рдХреЗ рд▓рд┐рдП, рдКрдкрд░ рджрд┐рдП рдЧрдП рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдпрд╛ рдХреИрдирд░реА рд░рд┐рд▓реАрдЬрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВред

рд╕рднреА рдХреЛ рдзрдиреНрдпрд╡рд╛рдж!

рдХреИрдирд░реА рдЫрд╡рд┐ рдЕрднреА рднреА рдПрдХ рд╣реА рддреНрд░реБрдЯрд┐ рдкреИрджрд╛ рдХрд░рддреА рд╣реИ рдЬрдм рддрдХ рдХрд┐ рдпрд╣ рд╡рд┐рд▓рдп рдЕрднреА рддрдХ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ,

@ puww1010 рдореИрдВрдиреЗ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд┐рдпрд╛, рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП VIM рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред рд╕рдВрджрд░реНрдн рдХреЗ рд░реВрдк рдореЗрдВ рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдЖрджреЗрд╢ред

# helm init --service-account tiller --tiller-namespace kube-system --debug >> helm-init.yaml
# vim helm-init.yaml
# kubectl apply -f helm-init.yaml

рдореИрдВрдиреЗ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред VIM рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдореИрдВ kubectl apply рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЬрдм рдореИрдВ helm init --service-account tiller --tiller-namespace kube-system --debug >> helm-init.yaml рдлрд┐рд░ рд╕реЗ рдЪрд▓рддрд╛ рд╣реВрдВ рдпрд╛ helm init --output yaml рдкрд░рд┐рд╡рд░реНрддрди рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдП рдЧрдП рд╣реИрдВред рдХрд┐рд╕реА рдФрд░ рдХреЛ рдпрд╣ рдЕрдиреБрднрд╡?

рд╣рд╛рдБ, рдореЗрд░реЗ рд▓рд┐рдП рднреА рд╣реЛ рд░рд╣рд╛ рд╣реИред

рдЖрдкрдХреЛ рдЫрд╡рд┐ рд╕реНрдерд╛рди рдХреЛ gcr.azk8s.cn/kubernetes-helm/tiller:v2.14.3 gcr.io рд╕реНрдерд╛рди рдкрд░ рдЕрд╡рд░реБрджреНрдз рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИред

рдЖрдкрдХреЛ рдЫрд╡рд┐ рд╕реНрдерд╛рди рдХреЛ gcr.azk8s.cn/kubernetes-helm/ рдЯрд┐рд▓рд░ рдореЗрдВ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ

рдЬрдмрдХрд┐ рдПрдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╡реИрдз рдореБрджреНрджрд╛, рдпрд╣ рдореБрджреНрджрд╛ рдЗрд╕ рдореБрджреНрджреЗ рдореЗрдВ рдореМрдЬреВрдж рдореБрджреНрджреЗ рд╕реЗ рдереЛрдбрд╝рд╛ рд╕рд╛ рд░реВрдврд╝рд┐рд╡рд╛рджреА рд╣реИ, gcr.io рдЪреАрди рдореЗрдВ рдЕрд╡рд░реБрджреНрдз рд╣реИ, рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗред рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП https://github.com/helm/charts/issues/14607 рджреЗрдЦреЗрдВред

рд╣рдо 1.15.4 рдкрд░ рдХреБрдмреЗрд░рдиреЗрдЯ рд╕рдВрд╕реНрдХрд░рдг рд╡рд╛рдкрд╕ рд▓рд╛рдХрд░ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИрдВ

рдЗрд╕реЗ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП @UmamaheshMaxwell рдХреЛ рдзрдиреНрдпрд╡рд╛рджред

рдХреНрдпрд╛ рдЖрдк рдХреБрдмреЗрд░рдиреЗрдЯ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рд░реЛрд▓рдмреИрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдЪрд░рдгреЛрдВ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

@ рд╕рд╛рдЗрд░рд┐рд▓рдЯреЗрдХ рдпрджрд┐ рдпрд╣ рдорд┐рдиреАрдмреНрдпреВрдм рд╣реИ, рддреЛ minikube config set kubernetes-version v1.15.4

рдЗрд╕реЗ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП @UmamaheshMaxwell рдХреЛ рдзрдиреНрдпрд╡рд╛рджред

рдХреНрдпрд╛ рдЖрдк рдХреБрдмреЗрд░рдиреЗрдЯ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рд░реЛрд▓рдмреИрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдЪрд░рдгреЛрдВ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

@ рдХреНрд░рд┐рдПрд▓рд┐рдВрдереИрдВрдХ рд╣рдо рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд╡реАрдПрдо (рдЙрдмрдВрдЯреВ 18+) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдиреАрдЪреЗ k8s рд╕рдВрд╕реНрдХрд░рдг 1.15.4 рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯ рд╣реИрдВ

  1. kubeadm reset
  2. sudo apt-get install kubelet = 1.15.4-00 kubectl = 1.15.4-00 kubeadm = 1.15.4-00
  3. рд╕реБрджреЛ рдХреБрдмреЗрджрдо рдЗрдирд┐рдд - рдкреЛрдб-рдиреЗрдЯрд╡рд░реНрдХ-рд╕рд┐рдбреНрд░ = 10.244.10.0 / 16 --apiserver- рд╡рд┐рдЬреНрдЮрд╛рдкрди-рдкрддрд╛ = xxxx --apiserver-cert-extra-sans = xxxx --kubernetes-version "1.15.4"

--pod-network-cidr=10.244.10.0/16 - рдлрд▓рд╛рд▓реИрди
--apiserver-advertise-address=x.x.x.x - рдЖрдкрдХреЗ рд╡реАрдПрдо (рдорд╛рд╕реНрдЯрд░) рдХрд╛ рдирд┐рдЬреА рдЖрдИрдкреА
--apiserver-cert-extra-sans=x.x.x.x - рдЖрдкрдХреЗ рд╡реАрдПрдо (рдорд╛рд╕реНрдЯрд░) рдХрд╛ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдЖрдИрдкреА (рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдпрджрд┐ рдЖрдк рдЕрдкрдиреЗ рдорд╛рд╕реНрдЯрд░ рдХреЛ рдЕрдкрдиреЗ рд╕реНрдерд╛рдиреАрдп рдорд╢реАрди рд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рдиреЛрдЯ: рд╕реНрд╡-рд╣реЛрд╕реНрдЯ рдХрд┐рдП рдЧрдП рдХреБрдмреЗрд░рдиреЗрдЯ рдХреНрд▓рд╕реНрдЯрд░ (http://docs.shippable.com/deploy/tutorial/create-kubeconfig-for-self-hosted-kubernetes-cluster/) рдХреЗ рд▓рд┐рдП рдХреБрдмреЗрдХреЙрдиреНрдлрд╝рд┐рдЧ рдлрд╝рд╛рдЗрд▓ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рд▓рд┐рдВрдХ рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░реЗрдВред

рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдЕрдЧрд░ рдЖрдк рдЕрднреА рднреА рдХреЛрдИ рдкреНрд░рд╢реНрди рд╣реИрдВред

@cyrilthank рдЕрдЧрд░ рдпрд╣ рдорд┐рдиреАрдмреНрдпреВрдм рд╣реИ, рддреЛ рдорд┐рдиреАрдмреНрдпреВрдм рдХреЙрдиреНрдлрд┐рдЧ рд╕реЗрдЯ kubernetes-version v1.15.4

рдзрдиреНрдпрд╡рд╛рдж @MrSimonEmms рдореЗрд░рд╛ рдЫреЛрдЯрд╛ рдирд╣реАрдВ рд╣реИ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ @UmamaheshMaxm рдХреЗ рдХрджрдореЛрдВ рдХреЗ рд╕рд╛рде рдЪрд▓рдирд╛ рд╣реЛрдЧрд╛

рдЗрд╕реЗ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП @UmamaheshMaxwell рдХреЛ рдзрдиреНрдпрд╡рд╛рджред
рдХреНрдпрд╛ рдЖрдк рдХреБрдмреЗрд░рдиреЗрдЯ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рд░реЛрд▓рдмреИрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдЪрд░рдгреЛрдВ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

@ рдХреНрд░рд┐рдПрд▓рд┐рдВрдереИрдВрдХ рд╣рдо рдЕрдкрдиреЗ рд╡реАрдПрдо (рдЙрдмрдВрдЯреВ 18+) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдиреАрдЪреЗ k8s рд╕рдВрд╕реНрдХрд░рдг 1.15.4 рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯ рд╣реИрдВ

kubeadm reset
sudo apt-get install kubelet = 1.15.4-00 kubectl = 1.15.4-00 kubeadm = 1.15.4-00
рд╕реБрджреЛ рдХреБрдмреЗрджрдо рдЗрдирд┐рдд - рдкреЛрдб-рдиреЗрдЯрд╡рд░реНрдХ-рд╕рд┐рдбреНрд░ = 10.244.10.0 / 16 --apiserver- рд╡рд┐рдЬреНрдЮрд╛рдкрди-рдкрддрд╛ = xxxx --apiserver-cert-extra-sans = xxxx --kubernetes-version "1.15.4"

--рдкреЛрдб-рдиреЗрдЯрд╡рд░реНрдХ-рд╕рд┐рдбрдЖрд░ = 10.244.10.0 / 16 - рдлрд▓рд╛рд▓реИрди
--apiserver- рд╡рд┐рдЬреНрдЮрд╛рдкрди-рдкрддрд╛ = xxxx - рдЖрдкрдХреЗ рд╡реАрдПрдо (рдорд╛рд╕реНрдЯрд░) рдХрд╛ рдирд┐рдЬреА рдЖрдИрдкреА
--apiserver-cert-extra-sans = xxxx - рдЖрдкрдХреЗ рд╡реАрдПрдо (рдорд╛рд╕реНрдЯрд░) рдХрд╛ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдЖрдИрдкреА (рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдпрджрд┐ рдЖрдк рдЕрдкрдиреЗ рд╕реНрдерд╛рдиреАрдп рдорд╢реАрди рд╕реЗ рдЕрдкрдиреЗ рдорд╛рд╕реНрдЯрд░ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВред
рдиреЛрдЯ: рд╕реНрд╡-рд╣реЛрд╕реНрдЯ рдХрд┐рдП рдЧрдП рдХреБрдмреЗрд░рдиреЗрдЯ рдХреНрд▓рд╕реНрдЯрд░ (http://docs.shippable.com/deploy/tutorial/create-kubeconfig-for-self-hosted-kubernetes-cluster/) рдХреЗ рд▓рд┐рдП рдХреБрдмреЗрдХреЙрдиреНрдлрд╝рд┐рдЧ рдлрд╝рд╛рдЗрд▓ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рд▓рд┐рдВрдХ рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░реЗрдВред
рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдЕрдЧрд░ рдЖрдк рдЕрднреА рднреА рдХреЛрдИ рдкреНрд░рд╢реНрди рд╣реИрдВред

рдзрдиреНрдпрд╡рд╛рдж @UmamaheshMaxwell рдЖрдкрдХреЗ рд░реЛрдЧреА рдЙрддреНрддрд░ рдХреЗ рд▓рд┐рдП

рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдореМрдЬреВрджрд╛ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рд╣реИ 1.16 рд╕реЗрдЯрдЕрдк рдХреНрдпрд╛ рдЖрдк рдкреБрд╖реНрдЯрд┐ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рдореИрдВ рдЗрди рдЪрд░рдгреЛрдВ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ?

рдЗрд╕реЗ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП @UmamaheshMaxwell рдХреЛ рдзрдиреНрдпрд╡рд╛рджред
рдХреНрдпрд╛ рдЖрдк рдХреБрдмреЗрд░рдиреЗрдЯ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рд░реЛрд▓рдмреИрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдЪрд░рдгреЛрдВ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?
@ рдХреНрд░рд┐рдПрд▓рд┐рдВрдереИрдВрдХ рд╣рдо рдЕрдкрдиреЗ рд╡реАрдПрдо (рдЙрдмрдВрдЯреВ 18+) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдиреАрдЪреЗ k8s рд╕рдВрд╕реНрдХрд░рдг 1.15.4 рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯ рд╣реИрдВ
kubeadm reset
sudo apt-get install kubelet = 1.15.4-00 kubectl = 1.15.4-00 kubeadm = 1.15.4-00
рд╕реБрджреЛ рдХреБрдмреЗрджрдо рдЗрдирд┐рдд - рдкреЛрдб-рдиреЗрдЯрд╡рд░реНрдХ-рд╕рд┐рдбреНрд░ = 10.244.10.0 / 16 --apiserver- рд╡рд┐рдЬреНрдЮрд╛рдкрди-рдкрддрд╛ = xxxx --apiserver-cert-extra-sans = xxxx --kubernetes-version "1.15.4"
--рдкреЛрдб-рдиреЗрдЯрд╡рд░реНрдХ-рд╕рд┐рдбрдЖрд░ = 10.244.10.0 / 16 - рдлрд▓рд╛рд▓реИрди
--apiserver- рд╡рд┐рдЬреНрдЮрд╛рдкрди-рдкрддрд╛ = xxxx - рдЖрдкрдХреЗ рд╡реАрдПрдо (рдорд╛рд╕реНрдЯрд░) рдХрд╛ рдирд┐рдЬреА рдЖрдИрдкреА
--apiserver-cert-extra-sans = xxxx - рдЖрдкрдХреЗ рд╡реАрдПрдо (рдорд╛рд╕реНрдЯрд░) рдХрд╛ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдЖрдИрдкреА (рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдпрджрд┐ рдЖрдк рдЕрдкрдиреЗ рд╕реНрдерд╛рдиреАрдп рдорд╢реАрди рд╕реЗ рдЕрдкрдиреЗ рдорд╛рд╕реНрдЯрд░ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВред
рдиреЛрдЯ: рд╕реНрд╡-рд╣реЛрд╕реНрдЯ рдХрд┐рдП рдЧрдП рдХреБрдмреЗрд░рдиреЗрдЯ рдХреНрд▓рд╕реНрдЯрд░ (http://docs.shippable.com/deploy/tutorial/create-kubeconfig-for-self-hosted-kubernetes-cluster/) рдХреЗ рд▓рд┐рдП рдХреБрдмреЗрдХреЙрдиреНрдлрд╝рд┐рдЧ рдлрд╝рд╛рдЗрд▓ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рд▓рд┐рдВрдХ рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░реЗрдВред
рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдЕрдЧрд░ рдЖрдк рдЕрднреА рднреА рдХреЛрдИ рдкреНрд░рд╢реНрди рд╣реИрдВред

рдзрдиреНрдпрд╡рд╛рдж @UmamaheshMaxwell рдЖрдкрдХреЗ рд░реЛрдЧреА рдЙрддреНрддрд░ рдХреЗ рд▓рд┐рдП

рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдореМрдЬреВрджрд╛ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рд╣реИ 1.16 рд╕реЗрдЯрдЕрдк рдХреНрдпрд╛ рдЖрдк рдкреБрд╖реНрдЯрд┐ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рдореИрдВ рдЗрди рдЪрд░рдгреЛрдВ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ?

рд╣рд╛рдВ @cyrilthank , рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ 1.16.1 kubernetes рдерд╛, рд▓реЗрдХрд┐рди рд╣рдореЗрдВ рдЗрд╕реЗ рд╡рд╛рдкрд╕ 1.15.4 рд░реЛрд▓ рдХрд░рдирд╛ рдерд╛, рдиреАрдЪреЗ рд▓рд┐рдВрдХ рд╣реИ рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рдЦрд░реЛрдВрдЪ рд╕реЗ рд╕реЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

VM рдХрд╛ OS рд╕рдВрд╕реНрдХрд░рдг

Distributor ID: Ubuntu
Description:    Ubuntu 18.04.3 LTS
Release:    18.04
Codename:   bionic

рдХреБрдмреЗрд░рдиреЗрдЯ рдХреЛ рд╕рд╛рдл рдХрд░реЗрдВ

kubeadm reset
sudo apt-get purge kubeadm kubectl kubelet kubernetes-cni kube*   
sudo apt-get autoremove  
sudo rm -rf ~/.kube

рд╕реЗрдЯрдЕрдк рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ (_Both Master рдФрд░ Node_)
https://www.howtoforge.com/tutorial/how-to-install-kubernetes-on-ubuntu/
(рдЖрдк рдЕрдкрдирд╛ рд╕рдордп рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдКрдкрд░ рджрд┐рдП рдЧрдП рд▓рд┐рдВрдХ рдореЗрдВ рджрд┐рдП рдЧрдП рдЪрд░рдгреЛрдВ рдХреЛ рдмреЗрд╣рддрд░ рддрд░реАрдХреЗ рд╕реЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ)

рдЕрдЧрд░ рдЖрдкрдХреЛ рдЕрднреА рднреА рдХрд┐рд╕реА рдФрд░ рдорджрдж рдХреА рдЬрд░реВрд░рдд рд╣реЛ рддреЛ рдореБрдЭреЗ рдмрддрд╛рдПрдВред рд╣реИрдкреНрдкреА рдЬрд░реНрдиреА рд╡рд┐рде рд░реЛрд▓ рдмреИрдХ :), рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЗрд╕рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд╣рдЬ рдпрд╛рддреНрд░рд╛ рд╣реЛрдЧреАред

рдЖрдкрдХреЛ рдЫрд╡рд┐ рд╕реНрдерд╛рди рдХреЛ gcr.azk8s.cn/kubernetes-helm/ рдЯрд┐рд▓рд░ рдореЗрдВ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ

рдЬрдмрдХрд┐ рдПрдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╡реИрдз рдореБрджреНрджрд╛, рдпрд╣ рдореБрджреНрджрд╛ рдЗрд╕ рдореБрджреНрджреЗ рдореЗрдВ рдореМрдЬреВрдж рдореБрджреНрджреЗ рд╕реЗ рдереЛрдбрд╝рд╛ рд╕рд╛ рд░реВрдврд╝рд┐рд╡рд╛рджреА рд╣реИ, gcr.io рдЪреАрди рдореЗрдВ рдЕрд╡рд░реБрджреНрдз рд╣реИ, рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗред рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рд╣реЗрд▓реНрдо / рдЪрд╛рд░реНрдЯ # 14607 рджреЗрдЦреЗрдВред

рдореИрдВ рдЪреАрди рдореЗрдВ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдЕрдореЗрд░рд┐рдХрд╛ рдореЗрдВ рд╣реВрдВред рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореЗрд░реЗ рд╡реАрдкреАрдПрди рдиреЗ рдЙрд╕ рд╕рд╛рдЗрдЯ рдХреЛ рдмреНрд▓реЙрдХ рдХрд░ рджрд┐рдпрд╛ рд╣реИред рдлрд┐рд░ рднреА, рдореИрдВрдиреЗ рдЗрд╕ рдзрд╛рдЧреЗ рдореЗрдВ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рд╕рднреА рдЪрд░рдгреЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд┐рдпрд╛ рдФрд░ рдЗрд╕реЗ рддрдм рддрдХ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рдкрд╛рдпрд╛ рдЬрдм рддрдХ рдХрд┐ рдореИрдВрдиреЗ рдЫрд╡рд┐ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХреА рдФрд░ рджреЗрдЦрд╛ рдХрд┐ рдпрд╣ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ - рдмрд╕ рдХрд┐рд╕реА рдФрд░ рдорд╛рдорд▓реЗ рдореЗрдВ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдФрд░ рдЙрд╕реА рд╕реНрдерд╛рди рдкрд░ рдЕрдЯрдХ рдЬрд╛рддрд╛ рд╣реИ рдореБрдЭреЗред

рдореБрдЭреЗ рднреА рддреНрд░реБрдЯрд┐ рд╣реЛ рд░рд╣реА рд╣реИ:

$ helm init
$HELM_HOME has been configured at C:\Users\user\.helm.
Error: error installing: the server could not find the requested resource

рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдореЗрдВ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рд╕рдорд╛рдзрд╛рди рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдпрд╣ рдПрдХ ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рддрджрдиреБрд╕рд╛рд░ Tiller.yaml рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реВрдВред рдкрд░рд┐рд╡рд░реНрддрди рд▓рд╛рдЧреВ рдХрд░рдиреЗ / рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореИрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрдорд╛рдВрдб рдЖрдЬрд╝рдорд╛ рд░рд╣рд╛ рд╣реВрдВ:

$ kubectl apply -f tiller.yaml
deployment.apps/tiller-deploy configured
service/tiller-deploy configured

рд▓реЗрдХрд┐рди рдлрд┐рд░, рдЕрдЧрд░ рдореИрдВ рдЪрд▓рд╛:

$ helm init --output yaml > tiller2.yaml

Tiller2.yaml рдлрд╝рд╛рдЗрд▓ рджрд┐рдЦрд╛рддрд╛ рд╣реИ:

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  creationTimestamp: null
  labels:
    app: helm
    name: tiller
  name: tiller-deploy
  namespace: kube-system
spec:
  replicas: 1
  strategy: {}
  template:

рдореВрд▓ рд░реВрдк рд╕реЗ, рдкрд░рд┐рд╡рд░реНрддрди рдкреНрд░рддрд┐рдмрд┐рдВрдмрд┐рдд рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдареАрдХ рд╕реЗ рдЕрдкрдбреЗрдЯ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдЗрд╕реЗ рдХрд░рдиреЗ рдХрд╛ рд╕рд╣реА рддрд░реАрдХрд╛ рдХреНрдпрд╛ рд╣реЛрдЧрд╛?


рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ : рдореИрдВ рдЗрд╕реЗ рдЪрд▓рд╛рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛ред рдореИрдВ рдорд┐рдирд┐рдХреНрдпреВрдм рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдФрд░ рдЗрд╕реЗ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдкрд╣рд▓реЗ рдореИрдВрдиреЗ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ 1.15.4 рдкрд░ рдбрд╛рдЙрдирдЧреНрд░реЗрдб рдХрд┐рдпрд╛ред

minikube delete
minikube start --kubernetes-version=1.15.4

рдлрд┐рд░, рдореИрдВ рдПрдХ рдкреНрд░реЙрдХреНрд╕реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдЕрдкрдиреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдорд┐рдирд┐рдХреНрдпреВрдм рдХреЗ рдЖрдИрдкреА рдХреЛ NO_PROXY рд╕реВрдЪреА рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ рдерд╛: 192.168.99.101 ред рджреЗрдЦреЗрдВ: https://minikube.sigs.k8s.io/docs/reference/networking/proxy/

рдиреЛрдЯ: рдХреБрдЫ рдФрд░ рдкрд░реАрдХреНрд╖рдг рдХреЗ рдмрд╛рдж, рд╢рд╛рдпрдж рдбрд╛рдЙрдирдЧреНрд░реЗрдб рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ, рдФрд░ рд╢рд╛рдпрдж рдореИрдВ рд╕рдм рдпрд╛рдж рдХрд░ рд░рд╣рд╛ рдерд╛ NO_PROXY рдХрджрдоред рдореИрдВрдиреЗ рд╕рднреА 192.168.99.0/24 , 192.168.39.0/24 рдФрд░ 10.96.0.0/12 рдХреЛ NO_PROXY рд╕реЗрдЯрд┐рдВрдЧ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдФрд░ рдЕрдм рдпрд╣ рдареАрдХ рдХрд╛рдо рдХрд░рдиреЗ рд▓рдЧрддрд╛ рд╣реИред

helm init --service-account Tiller --override spec.selector.matchLabels.'name '=' Tiller ', spec.selector.matchLabels.'app' = 'helm' --output aaml | sed ' s @ apiVersion : рдПрдХреНрд╕рдЯреЗрдВрд╢рди / v1beta1 @ apiVersion : apps / v1 @' | рдХреБрдмреЗрдХреЗрд▓ рд▓рд╛рдЧреВ -f -

рдЗрд╕рдХреЗ рд▓рд┐рдП рдореЗрд░реЗ рд╕рд╛рде рдХрд╛рдо рдХрд┐рдпрд╛, рдмрд╣реБрдд рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж

рдЬреИрд╕рд╛ рдХрд┐ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдПрдкреАрдЖрдИ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛрддрд╛ рд╣реИ, рдПрдкреАрдЖрдИ рд╕рдордп-рд╕рдордп рдкрд░ рдкреБрдирд░реНрдЧрдард┐рдд рдпрд╛ рдЙрдиреНрдирдд рд╣реЛрддреЗ рд╣реИрдВред рдЬрдм рдПрдкреАрдЖрдИ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдкреБрд░рд╛рдиреЗ рдПрдкреАрдЖрдИ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЕрдВрддрддрдГ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

V1.16 рд░рд┐рд▓реАрдЬ рдирдП рдФрд░ рдЕрдзрд┐рдХ рд╕реНрдерд┐рд░ рдПрдкреАрдЖрдИ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрджрд╛рд╡рдирдд рдПрдкреАрдЖрдИ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреА рд╕реЗрд╡рд╛ рдмрдВрдж рдХрд░ рджреЗрдЧрд╛:

NetworkPolicy (in the extensions/v1beta1 API group)
    Migrate to use the networking.k8s.io/v1 API, available since v1.8. Existing persisted data can be retrieved/updated via the networking.k8s.io/v1 API.
PodSecurityPolicy (in the extensions/v1beta1 API group)
    Migrate to use the policy/v1beta1 API, available since v1.10. Existing persisted data can be retrieved/updated via the policy/v1beta1 API.
DaemonSet, Deployment, StatefulSet, and ReplicaSet (in the extensions/v1beta1 and apps/v1beta2 API groups)
    Migrate to use the apps/v1 API, available since v1.9. Existing persisted data can be retrieved/updated via the apps/v1 API.

V1.20 рд░рд┐рд▓реАрдЬ рдирдП рдФрд░ рдЕрдзрд┐рдХ рд╕реНрдерд┐рд░ рдПрдкреАрдЖрдИ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрджрд╛рд╡рдирдд рдПрдкреАрдЖрдИ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреА рд╕реЗрд╡рд╛ рдмрдВрдж рдХрд░ рджреЗрдЧрд╛:

Ingress (in the extensions/v1beta1 API group)
    Migrate to use the networking.k8s.io/v1beta1 API, serving Ingress since v1.14. Existing persisted data can be retrieved/updated via the networking.k8s.io/v1beta1 API.

рдХреНрдпрд╛ рдХрд░ 2

  • рдирдП API рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП YAML рдлрд╛рдЗрд▓реЗрдВ рдмрджрд▓реЗрдВ
  • рдирдП API рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╕реНрдЯрдо рдЗрдВрдЯреАрдЧреНрд░реЗрд╢рди рдФрд░ рдХрдВрдЯреНрд░реЛрд▓рд░ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ
  • рдирдП рдПрдкреАрдЖрдИ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдерд░реНрдб рдкрд╛рд░реНрдЯреА рдЯреВрд▓реНрд╕ (рдХрдВрдЯреНрд░реЛрд▓рд░, рдирд┐рд░рдВрддрд░ рдбрд┐рд▓реАрд╡рд░реА рд╕рд┐рд╕реНрдЯрдо) рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ

рдХреЛ рджреЗрдЦреЗрдВ :

рдПрдХ рд╣реЗрд▓реНрдо n00b рдХреЗ рд░реВрдк рдореЗрдВ, рдЬреЛ рдорд┐рдиреАрдмреНрдпреВрдм рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рд╕рдВрд╕реНрдХрд░рдг рд╕реЗрдЯ рдХрд░рдХреЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛:

$ minikube delete
$ minikube start --kubernetes-version=1.15.4

рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдЗрд╕рд╕реЗ рд╕рд╣рд╛рдпрддрд╛ рдорд┐рд▓реЗрдЧреА!

@PierreF рдореИрдВрдиреЗ рдЖрдкрдХреЗ рд╕рдорд╛рдзрд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ (https://github.com/helm/helm/issues/6374#issuecomment-533186177) рдЬрд┐рд╕рдореЗрдВ k8s v1.16.1 рдФрд░ helm v2.15.0 рдФрд░ рдЯрд┐рд▓рд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред

Readiness probe failed: Get http://10.238.128.95:44135/readiness: dial tcp 10.238.128.95:44135: connect: connection refused

@ joshprzybyszewski-wf рдореИрдВрдиреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛

minikube start --memory=16384 --cpus=4 --kubernetes-version=1.15.4
kubectl create -f istio-1.3.3/install/kubernetes/helm/helm-service-account.yaml
helm init --service-account tiller
helm install istio-1.3.3/install/kubernetes/helm/istio-init --name istio-init --namespace istio-system
helm install istio-1.3.3/install/kubernetes/helm/istio --name istio --namespace istio-system

рдФрд░ рдЕрдм рдорд┐рд▓рддрд╛ рд╣реИ,

Error: validation failed: [unable to recognize "": no matches for kind "DestinationRule" in version "networking.istio.io/v1alpha3", unable to recognize "": no matches for kind "DestinationRule" in version "networking.istio.io/v1alpha3", unable to recognize "": no matches for kind "attributemanifest" in version "config.istio.io/v1alpha2", unable to recognize "": no matches for kind "attributemanifest" in version "config.istio.io/v1alpha2", unable to recognize "": no matches for kind "handler" in version "config.istio.io/v1alpha2", unable to recognize "": no matches for kind "handler" in version "config.istio.io/v1alpha2", unable to recognize "": no matches for kind "instance" in version "config.istio.io/v1alpha2", unable to recognize "": no matches for kind "instance" in version "config.istio.io/v1alpha2", unable to recognize "": no matches for kind "instance" in version "config.istio.io/v1alpha2", unable to recognize "": no matches for kind "instance" in version "config.istio.io/v1alpha2", unable to recognize "": no matches for kind "instance" in version "config.istio.io/v1alpha2", unable to recognize "": no matches for kind "instance" in version "config.istio.io/v1alpha2", unable to recognize "": no matches for kind "instance" in version "config.istio.io/v1alpha2", unable to recognize "": no matches for kind "instance" in version "config.istio.io/v1alpha2", unable to recognize "": no matches for kind "instance" in version "config.istio.io/v1alpha2", unable to recognize "": no matches for kind "rule" in version "config.istio.io/v1alpha2", unable to recognize "": no matches for kind "rule" in version "config.istio.io/v1alpha2", unable to recognize "": no matches for kind "rule" in version "config.istio.io/v1alpha2", unable to recognize "": no matches for kind "rule" in version "config.istio.io/v1alpha2", unable to recognize "": no matches for kind "rule" in version "config.istio.io/v1alpha2", unable to recognize "": no matches for kind "rule" in version "config.istio.io/v1alpha2"]

рдпрд╣рд╛рдБ рдПрдХ рдЕрд▓реНрдкрдХрд╛рд▓рд┐рдХ рд╕рдорд╛рдзрд╛рди рд╣реИ:

helm init --output yaml | sed 's<strong i="7">@apiVersion</strong>: extensions/v1beta1<strong i="8">@apiVersion</strong>: apps/v1@' | kubectl apply -f -

рджрд░рдЕрд╕рд▓, рдпрд╣ рдХрд╛рдлреА рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИред рдореБрдЭреЗ рдЕрднреА рднреА рдПрдХ рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИ:

error validating data: ValidationError(Deployment.spec): missing required field "selector" in io.k8s.api.apps.v1.DeploymentSpec

рдЗрд╕рдХреЗ рд╕рд╛рде рдкреИрдЪ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

/usr/local/bin/kubectl patch --local -oyaml -f - -p '{"spec":{"selector": {"app":"helm","name":"tiller"}}}'

рдЖрдк macthLabels рдкреЛрд╕реНрдЯ рдЪрдпрдирдХрд░реНрддрд╛ рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рдЪреВрдХ рдЧрдПред

рдореБрдЭреЗ @jbrette рдХреЗ рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП рднреЗрдЬрд╛ рдЧрдпрд╛ рдерд╛ред рдЬрдм рдореИрдВрдиреЗ рдЗрд╕реЗ рдЪрд▓рд╛рдпрд╛ рддреЛ рдореБрдЭреЗ рдпрд╣реА рдорд┐рд▓рд╛

error: error parsing STDIN: error converting YAML to JSON: yaml: line 11: mapping values are not allowed in this context

рдпрд╣ рд╣реЗрд▓реНрдо 2.16.0 рдореЗрдВ рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдореБрдЭреЗ @jbrette рдХреЗ рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП рднреЗрдЬрд╛ рдЧрдпрд╛ рдерд╛ред рдЬрдм рдореИрдВрдиреЗ рдЗрд╕реЗ рдЪрд▓рд╛рдпрд╛ рддреЛ рдореБрдЭреЗ рдпрд╣реА рдорд┐рд▓рд╛

error: error parsing STDIN: error converting YAML to JSON: yaml: line 11: mapping values are not allowed in this context

рдпрдо рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ, рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЬреЛ рд╕рдВрджрд░реНрднрд┐рдд рд▓рд╛рдЗрди рдореЗрдВ {} рдпрд╛ [] рд╣реИрдВ рдФрд░ рдЕрднреА рднреА рдЗрд╕рдХреЗ рдЕрдВрддрд░реНрдЧрдд рдЕрдиреНрдп рдЪреАрдЬреЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реИрдВ рдЬреЛ рддреНрд░реБрдЯрд┐ рдХрд╛ рдХрд╛рд░рдг рдмрдирддреА рд╣реИрдВред рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рдорд╛рдиреЛрдВ рдХреЗ рднреАрддрд░ рд╣реЛрддреА рд╣реИред рд╢реНрдпрд╛рдо, рдЕрдиреНрдпрдерд╛ рдЪрд╛рд░реНрдЯ рдХреЗ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдЕрдиреБрднрд╛рдЧ рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВред

рдмрд╕ @PierreF рдХреЗ рдФрд░ @mihivagyok рдХреЗ рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП рдПрдХ рдУрд░ рдзреНрдпрд╛рди рджреЗрдВред рдЬрдм рдореИрдВрдиреЗ рдирд┐рдЬреА рд╣реЗрд▓реНрдо рд░рд┐рдкреЛрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рддреЛ рд╡реЗ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рдереЗред

$ helm repo add companyrepo https://companyrepo
Error: Couldn't load repositories file (/home/username/.helm/repository/repositories.yaml).

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╣реЗрд▓реНрдо рдЗрдирд┐рдЯ рдирд╣реАрдВ рдЪрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдмрд╕ yaml рдлрд╝рд╛рдЗрд▓ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред рдореИрдВрдиреЗ рддрдп рдХрд┐рдпрд╛ рдХрд┐ helm init -c рдХреЛ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд▓рд╛рдХрд░ред

k8s v1.16.6 рдореЗрдВ, helm init otput рдХреЗ рд▓рд┐рдП spec.selector fyi рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред

рд╡рд░реНрддрдорд╛рди рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ:

helm init --output yaml> Tiller.yaml
рдФрд░ Tiller.yaml рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ:

  • рдПрдкреНрд▓рд┐рдХреЗрд╢рди / v1 рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди
  • рдЪрдпрдирдХрд░реНрддрд╛ рдлрд╝реАрд▓реНрдб рдЬреЛрдбрд╝реЗрдВ
---
apiVersion: apps/v1
kind: Deployment
metadata:
  creationTimestamp: null
  labels:
    app: helm
    name: tiller
  name: tiller-deploy
  namespace: kube-system
spec:
  replicas: 1
  strategy: {}
  selector:
    matchLabels:
      app: helm
      name: tiller
....

рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ kubernetes рдПрдкрд┐рд╡рд░реНрд╕рди рдПрдкреНрд▓рд┐рдХреЗрд╢рди / v1 рдХреЛ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдХреЗ рд▓рд┐рдП рдмрджрд▓ рджреЗрддреЗ рд╣реИрдВ, рдПрдХ рдЪреАрдЬ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд╣рдореЗрдВ рдХрд▓реНрдкрдирд╛ рдХреЗ рд▓рд┐рдП рдЪрдпрдирдХрд░реНрддрд╛ рдорд┐рд▓рд╛рди рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ

рдПрдХ рдФрд░ рд╕рдорд╛рдзрд╛рди рд╣реЗрд▓реНрдо 3 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рдЯрд┐рд▓рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рдкрддрд╡рд╛рд░ init - рджрдХреНрд╖рд┐рдг рдпрдорд▓ | sed ' s @ apiVersion : рдПрдХреНрд╕рдЯреЗрдВрд╢рди / v1beta1 @ apiVersion : apps / v1 @' | рдХреБрдмреЗрдХреЗрд▓ рд▓рд╛рдЧреВ -f -

рдирдорд╕реНрддреЗ, рдпрд╣ рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реБрдП рдореБрдЭреЗ рдпрд╣ рдорд┐рд▓ рд░рд╣рд╛ рд╣реИ:

jenkins @ jenkin : ~ / .kube $ helm init --output yaml | sed ' s @ apiVersion : рдПрдХреНрд╕рдЯреЗрдВрд╢рди / v1beta1 @ apiVersion : apps / v1 @' | рдХреБрдмреЗрдХреЗрд▓ рд▓рд╛рдЧреВ -f -

рдЖрджреЗрд╢ 'kubectl' рдирд╣реАрдВ рдорд┐рд▓рд╛, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд╕рд╛рде рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

рд╕реНрдиреИрдк рд╕реНрдерд╛рдкрд┐рдд kubectl
рдХреГрдкрдпрд╛ рдЕрдкрдиреЗ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рд╕реЗ рдкреВрдЫреЗрдВред

jenkins @ jenkin : ~ / .kube $

helm version : v2.14.3 рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ
kubectl version : рдХреНрд▓рд╛рдЗрдВрдЯ: v1.15.3, рд╕рд░реНрд╡рд░: v1.16.0-rc.1 рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ
рдХреНрд▓рд╛рдЙрдб рдкреНрд░реЛрд╡рд╛рдЗрдбрд░ / рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо (AKS, GKE, Minikube рдЖрджрд┐): IBM Cloud Kubernetes Service

$ helm init --service-account tiller
$HELM_HOME has been configured at /Users/xxxx/.helm.
Error: error installing: the server could not find the requested resource

$ helm init --debug --service-account tiller
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  creationTimestamp: null
  labels:
    app: helm
    name: tiller
  name: tiller-deploy
  namespace: kube-system
spec:
. 
.
.

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкрддрд╡рд╛рд░ tiller рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реА рд╣реИ: apiVersion: extensions/v1beta1
рдЕрдиреБрд╕рд╛рд░: https://kubernetes.io/blog/2019/07/18/api-deprecations-in-1-16
рд╡рд╣ рдЕрдм рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИред

рдореБрдЭреЗ рдпрд╣ рддреНрд░реБрдЯрд┐ рдорд┐рд▓ рд░рд╣реА рд╣реИ: рдореИрдВ рдЗрд╕реЗ рдХреИрд╕реЗ рд╣рд▓ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ ???

рд░реВрдЯ @ рдЬреЗрдВрдХрд┐рди : ~ # рд╣реЗрд▓реНрдо рдЗрдирд┐рдЯ - рд╕реЗрд╡рд┐рдВрдЧ-рдЕрдХрд╛рдЙрдВрдЯ рдЯрд┐рд▓рд░
$ HELM_HOME рдХреЛ /root/.helm рдкрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рддреНрд░реБрдЯрд┐: рддреНрд░реБрдЯрд┐ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛: рдЕрдЬреНрдЮрд╛рдд (рдкреЛрд╕реНрдЯ рдкрд░рд┐рдирд┐рдпреЛрдЬрдиред рдЕрдиреБрдХреВрд▓рди)
рд░реВрдЯ @ рдЬреЗрдВрдХрд┐рди : ~ #

рдпрд╣рд╛рдБ рдПрдХ рдЕрд▓реНрдкрдХрд╛рд▓рд┐рдХ рд╕рдорд╛рдзрд╛рди рд╣реИ:

helm init --output yaml | sed 's<strong i="7">@apiVersion</strong>: extensions/v1beta1<strong i="8">@apiVersion</strong>: apps/v1@' | kubectl apply -f -

рджрд░рдЕрд╕рд▓, рдпрд╣ рдХрд╛рдлреА рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИред рдореБрдЭреЗ рдЕрднреА рднреА рдПрдХ рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИ:

error validating data: ValidationError(Deployment.spec): missing required field "selector" in io.k8s.api.apps.v1.DeploymentSpec

рдЗрд╕рдХреЗ рд╕рд╛рде рдкреИрдЪ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

/usr/local/bin/kubectl patch --local -oyaml -f - -p '{"spec":{"selector": {"app":"helm","name":"tiller"}}}'

рдореБрдЭреЗ рдпрд╣ рддреНрд░реБрдЯрд┐ рдорд┐рд▓ рд░рд╣реА рд╣реИ:

jenkins @ jenkin : ~ / .helm $ helm init --output yaml | sed ' s @ apiVersion : рдПрдХреНрд╕рдЯреЗрдВрд╢рди / v1beta1 @ apiVersion : apps / v1 @' | рдХреБрдмреЗрдХреЗрд▓ рд▓рд╛рдЧреВ -f -

рдЖрджреЗрд╢ 'kubectl' рдирд╣реАрдВ рдорд┐рд▓рд╛, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд╕рд╛рде рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

рд╕реНрдиреИрдк рд╕реНрдерд╛рдкрд┐рдд kubectl
рдХреГрдкрдпрд╛ рдЕрдкрдиреЗ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рд╕реЗ рдкреВрдЫреЗрдВред

jenkins @ jenkin : ~ / .helm $

рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб, jq рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ:

helm init -o json | jq '(select(.apiVersion == "extensions/v1beta1") .apiVersion = "apps/v1")' | jq '(select(.kind == "Deployment") .spec.selector.matchLabels.app = "helm")' | jq '(select(.kind == "Deployment") .spec.selector.matchLabels.name = "tiller")' | kubectl create -f -

рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб, jq рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ:

helm init -o json | jq '(select(.apiVersion == "extensions/v1beta1") .apiVersion = "apps/v1")' | jq '(select(.kind == "Deployment") .spec.selector.matchLabels.app = "helm")' | jq '(select(.kind == "Deployment") .spec.selector.matchLabels.name = "tiller")' | kubectl create -f -

рдЖрдк kubectl create рд╕рд╛рде рд╕рдВрд╕рд╛рдзрди рдХреЛ рдЕрдкрдбреЗрдЯ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ

@ikarlashov 'рд▓рд╛рдЧреВ' рдХреЗ рд╕рд╛рде 'рд▓рд╛рдЧреВ' рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдлреА рдЖрд╕рд╛рди рд╣реИред рд╡рди-рд▓рд╛рдЗрдирд░ рдХреЗ рдКрдкрд░ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рдиреЗ рдЕрднреА рддрдХ рд╕рдВрд╕рд╛рдзрди рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХреА рд╣реИред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

libesz picture libesz  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

macknight picture macknight  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

sgoings picture sgoings  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

tjquinno picture tjquinno  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

adam-sandor picture adam-sandor  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ