J'essaie de donner à kubeadm une configuration lorsque j'exécute kubeadm init
Je remarque que j'ai la configuration exactement au bon format, disons, changez le jeton
apiVersion: kubeadm.k8s.io/v1alpha1
kind: MasterConfiguration
kubernetesVersion: v1.4.4
secrets:
givenToken: 123456.3123fe2e098799f3
Cela fonctionne. Et dans la sortie kubeadm
Cependant, si j'utilise un autre yaml. Fondamentalement, je veux spécifier mes propres fichiers crt
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
Il ne sort même pas
il semble que kubeadm n'ait pas reconnu la configuration (?)
Existe-t-il un moyen de déboguer cela?
Où est la documentation pour la syntaxe de kubeadm config ?
Il n'y a qu'un exemple de configuration principale à la fin de https://kubernetes.io/docs/admin/kubeadm/
Si je veux spécifier d'autres valeurs de ligne de commande pour les serveurs api pris en charge dans https://kubernetes.io/docs/admin/kube-apiserver/ , quel est le nom correspondant ?
Par exemple, si je veux spécifier le --tls-private-key-file pour le serveur api dans kubeadm init config.yaml, quel est le nom correspondant ? est-ce tlsPrivateKeyFile ?
@Lokicity D'après ce que j'ai compris, vous ne pouvez pas modifier dynamiquement les configurations du plan de contrôle pendant son exécution. Vous devrez redémarrer ce composant.
En ce qui concerne le problème du jeton, si vous ne transmettez aucun jeton, il en générera un pour vous.
Oui. Mais kubeadm init a un --config qui permet à l'utilisateur de transmettre ses données par défaut. Puis-je transmettre certaines données que je souhaite pour les serveurs API ? Par exemple, je veux utiliser mon propre --tls-private-key-file pour le serveur api autre que celui par défaut généré par kubeadm.
Je veux pouvoir le faire au moment de l'initialisation de kubeadm
Un exemple de configuration a été ajouté à la documentation ici :
@jistr suivez votre lien supérieur, j'ai utilisé le fichier yaml ci-dessous
apiVersion: kubeadm.k8s.io/v1alpha1
kind: MasterConfiguration
etcd:
endpoints:
- http://127.0.0.1:2379
en tant que fichier de configuration mais il ne reflète pas le point de terminaison etcd (toujours nul).
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"}
Je me demande où j'ai peut-être fait une erreur ou est-ce un bogue de code?
Bonjour,
Nous avons le même problème que @WIZARD-CXY.
Y a-t-il une mise à jour à ce sujet ?
Merci!
cc @jamiehannaford
Peut-être pourriez-vous jeter un coup d'œil et voir si la tranche etcd n'est pas analysée correctement?
@WIZARD-CXY @akarasik Quelle version de kubeadm
et etcd
utilisez-vous ? Je viens d'essayer avec ce qui suit et cela a fonctionné pour moi:
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
Où avez-vous également accédé à la structure kubeadm.MasterConfiguration
? A-t-il été vidé automatiquement ou avez-vous ajouté une logique de débogage à un fichier ?
@jamiehannaford kubeadm 1.6.1 etcd 3.0.17
J'ai obtenu la structure kubeadm.MasterConfiguration via une simple impression de débogage. Je vais peut-être mettre à jour kubeadm et réessayer aujourd'hui et je mettrai à jour le résultat ici. Merci pour ton aide
@jamiehannaford kubeadm 1.6.3 fonctionne comme un charme.
@Lokicity Rencontrez -vous toujours des problèmes avec les nouvelles versions de kubeadm ?
Fermeture comme prévu... :+1:
voir l'exemple pour la v1.14 dans 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
Commentaire le plus utile
Un exemple de configuration a été ajouté à la documentation ici :
https://kubernetes.io/docs/admin/kubeadm/#config-file