Qu'est-ce que hyperkube?

j'essaie de configurer kubernetes en aws et de suivre les guides à https://github.com/kubernetes/kubernetes/blob/master/docs/getting-started-guides/docker-multinode

Je ne comprenais pas ce qu'était l'hyperkube. Quelqu'un peut-il m'expliquer ce que c'est et comment ça fonctionne?

et une autre question que j'ai est en cours d'exécution de la commande

sudo docker run 
    --volume=/:/rootfs:ro 
    --volume=/sys:/sys:ro 
    --volume=/dev:/dev 
    --volume=/var/lib/docker/:/var/lib/docker:rw 
    --volume=/var/lib/kubelet/:/var/lib/kubelet:rw 
    --volume=/var/run:/var/run:rw 
    --net=host 
    --privileged=true 
    --pid=host 
    -d 
    gcr.io/google_containers/hyperkube:v${K8S_VERSION} 
    /hyperkube kubelet 
      --api-servers=http://localhost:8080 
      --v=2 --address=0.0.0.0 --enable-server 
      --hostname-override=127.0.0.1 
      --config=/etc/kubernetes/manifests-multi 
      --cluster-dns=10.0.0.10 
      --cluster-domain=cluster.local

il démarre le pod par défaut. À partir de la documentation de la commande, on dirait qu'il reçoit le manifeste de la nacelle de --config=/etc/kubernetes/manifests-multi l'attribut. Mais ce répertoire n'est pas présent dans mon hôte. quelqu'un peut-il me dire d'où vient ce manifeste?

23
demandé sur Fozoro 2015-11-27 11:36:29

5 réponses

Kubernetes est un ensemble de démons/binaires:

  • kube-apiproxy (alias le maître),
  • kubelet (start/stop conteneurs, de synchronisation conf.),
  • kube-scheduler (gestionnaire des ressources)
  • kube-controller-manager (moniteur RC, et de maintenir l'état souhaité)
  • kube-proxy (exposer les services sur chaque nœud)

hyperkube binaire est un tout en un binaire (d'une manière similaire à busybox), en combinant tous les séparez les binaires.

La commande suivante:

hyperkube kubelet \
  --api-servers=http://localhost:8080 \
  --v=2 \
  --address=0.0.0.0 \
  --enable-server \
  --hostname-override=127.0.0.1 \
  --config=/etc/kubernetes/manifests-multi \
  --cluster-dns=10.0.0.10 \
  --cluster-domain=cluster.local

exécute le démon kubelet.

79
répondu ant31 2017-06-14 17:27:45

si vous vous souciez plus d'avoir un cluster fonctionnant en AWS que de passer par l'expérience de l'amélioration manuelle de chaque composant (ce qui ne devrait pas vous déranger à moins de le faire pour le plaisir d'apprendre), je recommande fortement d'utiliser les scripts clés en main pour créer un cluster AWS, comme documentée ici.

Pour quiconque de regarder cette question/réponse, il y a un page dans les documents sur la façon de choisir une méthode de création de cluster qui s'adapte à votre besoins.

en ce qui concerne votre question sur hyperkube, le fichier de configuration est intégré dans l'image du docker hyperkube, comme vous pouvez le voir de son fichier Dockerfile si vous êtes curieux.

2
répondu Alex Robinson 2015-11-27 19:06:24

je commence moi-même mon voyage sur kubernetes.cependant, si vous regardez la source sur github, vous verrez d'où vient l'hyperkube. Il est intégré dans le noyau de kubernetes - https://github.com/kubernetes/kubernetes/blob/master/cmd/hyperkube/hyperkube.go

Kubernetes est conçu pour amener les conteneurs à un tout nouveau niveau et les envelopper dans ce que google appelle des gousses. L'hyperkube-et s'il Vous Plaît me corriger si je me trompe est le arch / krux / épine dorsale de la programmation, de la création et de la gestion des conteneurs qui composent le pod et exécute essentiellement le spectacle d'où le nom "hyperkube."En outre, l'hyperkube répond rapidement aux événements et est capable de prendre des décisions à la volée en ce qui concerne votre service/stack/container/host health.

si vous voulez un moyen facile pour commencer avec kubernetes, je recommande d'essayer rancher (pas rancherOS) comme rancherlabs vient d'implémenter le déploiement de kubernetes dans leurs piles intégrées-rancher utilise aussi docker-composer aussi bien que ce qu'il appelle rancher-composer - lorsque vous créez une pile / service, vous pouvez jeter un oeil aux éléments qui composent cette pile/service et les conteneurs dans cette pile au format yml - qui vous aidera à mieux comprendre les éléments qui composent les services et les piles que vous exécutez et aussi vous aider à résoudre les problèmes sur les déploiements manuels - il est gui basé cependant vous pouvez ajouter votre hôte à n'importe quel rancher-server, ajouter quelques piles de journalisation comme kabana ou sysdig et si vous travaillez à partir du cli-aussi longtemps que l'hôte est enregistré avec rancher (Non Je ne travaille pas du tout pour eux) - vous pouvez enregistrer n'importe quel hôte avec rancher en ajoutant un hôte et en spécifiant personnalisé. En outre rancher peut réellement gérer kubernetes / piles / volumes à travers les plates - formes d'hébergement-ce qui est génial. C'est une excellente façon de visualiser et de voir ce qui se passe avec vos hôtes docker.

j'espère que ce répond à certaines questions et vous guide dans la bonne direction.

il est le décideur et le donneur de vie à l'amas de kubernetes.

1
répondu James Barlow 2015-11-27 09:21:56

Kubernetes est un ensemble de binaires

  1. kube-apiproxy
  2. kube-planificateur
  3. kube-contrôle-manager
  4. kubelet
  5. kube-proxy

hyperkube est un emballage pour tous ces binaires. Ainsi, une fois que vous déployez hyperkube, il installera tous les binaires. Pas besoin d'installer les binaires individuellement.

1
répondu Nikhil Kumar 2018-06-22 11:25:57

Hyperkube est le wrapper de tous les binaires de serveur API , la façon dont fonctionne Kubernetes est d'utiliser hyperkube pour appeler le serveur api , scheduler, controller manager, kube-proxy et kubelet.

maintenant tous ces binaires qui définissent le noeud maître utilisent le manifeste YAML pour définir les services mentionnés ci-dessus. Vous pouvez toujours choisir le type de déploiement à l'intérieur du conteneur ou sur l'ordinateur hôte en fonction de votre scénario de déploiement.

ces gousses se manifestent pour le les services définissent en fait l'état souhaité pour vos services qui est stocké à l'intérieur de l'etcd à partir duquel le serveur api est préparé en premier.

maintenant, une fois que les manifestes de pod sont définis, vous pouvez utiliser hyperkube pour configurer ces services pour exécuter à l'intérieur des conteneurs ou sur l'hôte.

donc l'hyperkube en un mot est le noyau de tous les services et le seul but de cet hyperkube est de gérer tous les services à l'intérieur du cluster Kubernetes afin de simplifier un peu la déploiement.

0
répondu user2598351 2018-07-22 10:14:11