Kubeadm: Dokumentasi/contoh konfigurasi Kubeadm?

Dibuat pada 24 Jan 2017  ·  12Komentar  ·  Sumber: kubernetes/kubeadm

Saya mencoba memberikan konfigurasi kubeadm ketika saya menjalankan kubeadm init
Saya perhatikan bahwa saya memiliki konfigurasi dalam format yang tepat, katakanlah, ubah token

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

Ini hanya bekerja. Dan di keluaran kubeadm

memvalidasi token yang disediakan
menerima token yang disediakan

Namun, jika saya menggunakan yaml lain. Pada dasarnya saya ingin menentukan file crt saya sendiri

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

Itu bahkan tidak keluarmemvalidasi token yang disediakan
sepertinya kubeadm tidak mengenali konfigurasi (?)

Apakah ada cara untuk men-debug ini?
Di mana dokumentasi sintaks untuk konfigurasi kubeadm?
Hanya ada contoh konfigurasi master di akhir https://kubernetes.io/docs/admin/kubeadm/
Jika saya ingin menentukan nilai baris perintah lain untuk server api yang didukung di https://kubernetes.io/docs/admin/kube-apiserver/ , apa nama yang sesuai?

Misalnya, jika saya ingin menentukan --tls-private-key-file untuk server api di kubeadm init config.yaml, apa nama yang sesuai? apakah itu tlsPrivateKeyFile?

Komentar yang paling membantu

Contoh konfigurasi telah ditambahkan ke dokumen di sini:

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

Semua 12 komentar

@Lokicity Dari apa yang saya pahami, Anda tidak dapat secara dinamis mengubah konfigurasi pada rencana kontrol saat sedang berjalan. Anda harus memulai ulang komponen itu.

Adapun masalah token, jika Anda tidak memberikan token apa pun, itu akan menghasilkan satu untuk Anda.

Ya. Tetapi kubeadm init memiliki --config yang memungkinkan pengguna untuk memasukkan data default mereka. Bisakah saya meneruskan data tertentu yang saya inginkan untuk server api? Sebagai contoh, saya ingin menggunakan --tls-private-key-file saya sendiri untuk server api selain yang default yang dihasilkan oleh kubeadm.
Saya ingin dapat melakukannya pada waktu kubeadm ini

Contoh konfigurasi telah ditambahkan ke dokumen di sini:

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

@jistr ikuti tautan atas Anda, saya menggunakan file yaml di bawah ini

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

sebagai file konfigurasi tetapi tidak mencerminkan Endpoint etcd (masih nihil).

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"}

Saya bertanya-tanya di mana saya mungkin membuat kesalahan atau apakah itu bug kode?

Halo,

Kami mengalami masalah yang sama dengan @WIZARD-CXY.
Apakah ada pembaruan mengenai hal ini?

Terima kasih!

cc @jamiehannaford
Mungkin Anda bisa melihat dan melihat apakah irisan etcd tidak diurai dengan benar?

@WIZARD-CXY @akarasik Apa versi kubeadm dan etcd yang Anda gunakan? Saya baru saja mencoba dengan yang berikut ini dan itu berhasil untuk saya:

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

Juga di mana Anda mengakses struct kubeadm.MasterConfiguration ? Apakah itu dibuang secara otomatis atau apakah Anda menambahkan logika debug ke file?

@jamiehannaford kubeadm 1.6.1 dll 3.0.17
Saya mendapatkan struct kubeadm.MasterConfiguration melalui cetakan debug sederhana. Mungkin saya akan mengupgrade kubeadm dan mencobanya lagi hari ini dan hasilnya akan saya update disini. Terima kasih atas bantuan Anda

@jamiehannaford kubeadm 1.6.3 bekerja seperti pesona.

@Lokicity Apakah Anda masih mengalami masalah dengan versi kubeadm yang lebih baru?

Penutupan sebagai tetap... :+1:

lihat contoh untuk v1.14 di 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
Apakah halaman ini membantu?
0 / 5 - 0 peringkat