Kubeadm: Kubeadm-Konfigurationsdokumentation/Beispiel?

Erstellt am 24. Jan. 2017  ·  12Kommentare  ·  Quelle: kubernetes/kubeadm

Ich versuche, kubeadm eine Konfiguration zu geben, wenn ich kubeadm init ausführe
Ich merke, dass ich die Konfiguration im genau richtigen Format habe, sprich, den Token ändere

apiVersion: kubeadm.k8s.io/v1alpha1
kind: MasterConfiguration
kubernetesVersion: v1.4.4
secrets:
  givenToken: 123456.3123fe2e098799f3

Es funktioniert einfach. Und in der kubeadm-Ausgabe

Validierung des bereitgestellten Tokens
bereitgestelltes Token akzeptiert

Wenn ich jedoch eine andere Yaml verwende. Grundsätzlich möchte ich meine eigenen crt-Dateien angeben

apiVersion: kubeadm.k8s.io/v1alpha1
kind: MasterConfiguration
kubernetesVersion: v1.4.4
etcd:
  caFile : /root/easy-rsa-master/easyrsa3/pki/ca.crt
  certFile : /root/easy-rsa-master/easyrsa3/pki/issued/kubernetes-master.crt
  keyFile : /root/easy-rsa-master/easyrsa3/pki/private/kubernetes-master.key

Es wird nicht einmal ausgegebenValidierung des bereitgestellten Tokens
Es scheint, als hätte kubeadm die Konfiguration nicht erkannt (?)

Gibt es eine Möglichkeit, dies zu debuggen?
Wo ist die Dokumentation für die Syntax für die kubeadm-Konfiguration?
Es gibt nur eine Beispiel-Master-Konfiguration am Ende von https://kubernetes.io/docs/admin/kubeadm/
Wenn ich andere Befehlszeilenwerte für API-Server angeben möchte, die in https://kubernetes.io/docs/admin/kube-apiserver/ unterstützt werden, wie lautet der entsprechende Name?

Wenn ich beispielsweise die --tls-private-key-file für den API-Server in kubeadm init config.yaml angeben möchte, wie lautet der entsprechende Name? ist es tlsPrivateKeyFile?

Hilfreichster Kommentar

Ein Konfigurationsbeispiel wurde hier zu den Dokumenten hinzugefügt:

https://kubernetes.io/docs/admin/kubeadm/#config -Datei

Alle 12 Kommentare

@Lokicity Soweit ich weiß, können Sie die Konfigurationen des Steuerungsplans nicht dynamisch ändern, während er ausgeführt wird. Sie müssten diese Komponente neu starten.

Was das Token-Problem angeht, wenn Sie kein Token übergeben, wird es eines für Sie generieren.

Jawohl. Aber kubeadm init hat eine --config, die es dem Benutzer ermöglicht, seine Standarddaten zu übergeben. Kann ich bestimmte Daten, die ich möchte, für die API-Server übergeben? Zum Beispiel möchte ich meine eigene --tls-private-key-Datei für den API-Server verwenden, die nicht die von kubeadm generierte Standarddatei ist.
Ich möchte das zur kubeadm-Init-Zeit tun können

Ein Konfigurationsbeispiel wurde hier zu den Dokumenten hinzugefügt:

https://kubernetes.io/docs/admin/kubeadm/#config -Datei

@jistr Folgen Sie Ihrem oberen Link, ich habe die folgende Yaml-Datei verwendet

apiVersion: kubeadm.k8s.io/v1alpha1
kind: MasterConfiguration
etcd:
  endpoints:
  - http://127.0.0.1:2379

als Konfigurationsdatei, aber es spiegelt nicht den etcd-Endpunkt wider (immer noch nil).

kubeadm.MasterConfiguration{TypeMeta:v1.TypeMeta{Kind:"", APIVersion:""}, API:kubeadm.API{AdvertiseAddress:"192.168.180.53", BindPort:6443}, Etcd:kubeadm.Etcd{Endpoints:[]string(nil), CAFil
e:"", CertFile:"", KeyFile:""}, Networking:kubeadm.Networking{ServiceSubnet:"10.96.0.0/12", PodSubnet:"", DNSDomain:"cluster.local"}, KubernetesVersion:"v1.6.0", CloudProvider:"", AuthorizationM
ode:"RBAC", Token:"8f6cc5.9fdf609145758fbd", TokenTTL:0, SelfHosted:false, APIServerExtraArgs:map[string]string(nil), ControllerManagerExtraArgs:map[string]string(nil), SchedulerExtraArgs:map[st
ring]string(nil), APIServerCertSANs:[]string(nil), CertificatesDir:"/etc/kubernetes/pki"}

Ich frage mich, wo ich vielleicht einen Fehler gemacht habe oder ist es ein Code-Bug?

Hallo,

Wir haben das gleiche Problem wie @WIZARD-CXY.
Gibt es hierzu ein Update?

Danke!

cc @jamiehannaford
Vielleicht könnten Sie einen Blick darauf werfen, ob das etcd-Slice nicht richtig geparst wird?

@WIZARD-CXY @akarasik Welche Version von kubeadm und etcd verwendest du? Ich habe es gerade mit folgendem versucht und es hat bei mir funktioniert:

root<strong i="9">@c1</strong>: kubeadm version
kubeadm version: version.Info{Major:"1", Minor:"6", GitVersion:"v1.6.3", GitCommit:"0480917b552be33e2dba47386e51decb1a211df6", GitTreeState:"clean", BuildDate:"2017-05-10T15:38:08Z", GoVersion:"go1.7.5", Compiler:"gc", Platform:"linux/amd64"}

root<strong i="10">@c1</strong>: curl 127.0.0.1:2379/version
{"etcdserver":"3.1.7","etcdcluster":"3.1.0"}

root<strong i="11">@c1</strong>: cat config.yaml
apiVersion: kubeadm.k8s.io/v1alpha1
kind: MasterConfiguration
etcd:
  endpoints:
  - http://127.0.0.1:2379

root<strong i="12">@c1</strong>: kubectl get pods --all-namespaces
NAMESPACE     NAME                         READY     STATUS    RESTARTS   AGE
kube-system   kube-controller-manager-c1   1/1       Running   0          49s
kube-system   kube-dns-3913472980-vxldm    0/3       Pending   0          45s
kube-system   kube-proxy-2d3q4             1/1       Running   0          45s
kube-system   kube-scheduler-c1            1/1       Running   0          56s

Wo haben Sie auch auf die Struktur kubeadm.MasterConfiguration zugegriffen? Wurde es automatisch ausgegeben oder haben Sie einer Datei Debug-Logik hinzugefügt?

@jamiehannaford kubeadm 1.6.1 etcd 3.0.17
Ich habe die Struktur kubeadm.MasterConfiguration durch einen einfachen Debug-Druck erhalten. Vielleicht werde ich kubeadm aktualisieren und es heute noch einmal versuchen, und ich werde das Ergebnis hier aktualisieren. Danke für Ihre Hilfe

@jamiehannaford kubeadm 1.6.3 funktioniert wie ein Zauber.

@Lokicity Treten immer noch Probleme mit neueren Versionen von kubeadm auf?

Schließt wie fest... :+1:

siehe Beispiel für v1.14 in https://godoc.org/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta1

apiVersion: kubeadm.k8s.io/v1beta1
kind: InitConfiguration
bootstrapTokens:
- token: "9a08jv.c0izixklcxtmnze7"
  description: "kubeadm bootstrap token"
  ttl: "24h"
- token: "783bde.3f89s0fje9f38fhf"
  description: "another bootstrap token"
  usages:
  - authentication
  - signing
  groups:
  - system:bootstrappers:kubeadm:default-node-token
nodeRegistration:
  name: "ec2-10-100-0-1"
  criSocket: "/var/run/dockershim.sock"
  taints:
  - key: "kubeadmNode"
    value: "master"
    effect: "NoSchedule"
  kubeletExtraArgs:
    cgroup-driver: "cgroupfs"
localAPIEndpoint:
  advertiseAddress: "10.100.0.1"
  bindPort: 6443
---
apiVersion: kubeadm.k8s.io/v1beta1
kind: ClusterConfiguration
etcd:
  # one of local or external
  local:
    imageRepository: "k8s.gcr.io"
    imageTag: "3.2.24"
    dataDir: "/var/lib/etcd"
    extraArgs:
      listen-client-urls: "http://10.100.0.1:2379"
    serverCertSANs:
    -  "ec2-10-100-0-1.compute-1.amazonaws.com"
    peerCertSANs:
    - "10.100.0.1"
  # external:
    # endpoints:
    # - "10.100.0.1:2379"
    # - "10.100.0.2:2379"
    # caFile: "/etcd/kubernetes/pki/etcd/etcd-ca.crt"
    # certFile: "/etcd/kubernetes/pki/etcd/etcd.crt"
    # keyFile: "/etcd/kubernetes/pki/etcd/etcd.key"
networking:
  serviceSubnet: "10.96.0.0/12"
  podSubnet: "10.100.0.1/24"
  dnsDomain: "cluster.local"
kubernetesVersion: "v1.12.0"
controlPlaneEndpoint: "10.100.0.1:6443"
apiServer:
  extraArgs:
    authorization-mode: "Node,RBAC"
  extraVolumes:
  - name: "some-volume"
    hostPath: "/etc/some-path"
    mountPath: "/etc/some-pod-path"
    readOnly: false
    pathType: File
  certSANs:
  - "10.100.1.1"
  - "ec2-10-100-0-1.compute-1.amazonaws.com"
  timeoutForControlPlane: 4m0s
controllerManager:
  extraArgs:
    "node-cidr-mask-size": "20"
  extraVolumes:
  - name: "some-volume"
    hostPath: "/etc/some-path"
    mountPath: "/etc/some-pod-path"
    readOnly: false
    pathType: File
scheduler:
  extraArgs:
    address: "10.100.0.1"
extraVolumes:
- name: "some-volume"
  hostPath: "/etc/some-path"
  mountPath: "/etc/some-pod-path"
  readOnly: false
  pathType: File
certificatesDir: "/etc/kubernetes/pki"
imageRepository: "k8s.gcr.io"
useHyperKubeImage: false
clusterName: "example-cluster"
---
apiVersion: kubelet.config.k8s.io/v1beta1
kind: KubeletConfiguration
# kubelet specific options here
---
apiVersion: kubeproxy.config.k8s.io/v1alpha1
kind: KubeProxyConfiguration
# kube-proxy specific options here
War diese Seite hilfreich?
0 / 5 - 0 Bewertungen