web-dev-qa-db-fra.com

Qu'est-ce que l'hyperkube?

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

Je ne comprenais pas ce que l'on entend par hyperkube. Quelqu'un peut-il m'expliquer s'il vous plaît ce que c'est et comment ça marche?

Et une autre question que j'ai est tout en exécutant 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. Dans la documentation de la commande, il semble que le manifeste de pod soit extrait de l'attribut --config=/etc/kubernetes/manifests-multi. Mais ce répertoire n'est pas présent dans mon hôte. quelqu'un peut-il me dire d'où provient ce manifeste de pod?

28
Anil Maddukuri

Kubernetes est un ensemble de démons/binaires:

  • kube-apiproxy (AKA le maître), 
  • kubelet (démarrage/arrêt des conteneurs, sync conf.),
  • kube-scheduler (gestionnaire de ressources)
  • kube-controller-manager (surveiller RC et maintenir l'état souhaité)
  • kube-proxy (exposer les services sur chaque nœud)

Le hyperkube binary est un binaire tout en un (semblable à busybox), qui combine tous les binaires précédemment séparés.

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.

88
ant31

Kubernetes est un ensemble de binaires 

  1. kube-apiproxy
  2. kube-ordonnanceur
  3. gestionnaire de contrôle
  4. kubelet
  5. kube-proxy

hyperkube est un wrapper pour tous ces fichiers binaires. Donc, une fois que vous déployez hyperkube, il installera tous les fichiers binaires . Inutile d'installer ces fichiers binaires individuellement. 

5
Nikhil Kumar

Si vous vous souciez plus de la gestion d'un cluster dans AWS que de l'expérience pratique consistant à élever chaque composant à la main (ce qui ne devrait pas vous inquiéter si vous ne le faites pas pour apprendre), je vous le recommande vivement. en utilisant les scripts clé en main pour créer un cluster AWS, comme documenté ici .

Pour tous ceux qui consultent cette question/réponse, il existe une page dans la documentation expliquant comment choisir une méthode de création de cluster qui répond à vos besoins .

En ce qui concerne votre question sur hyperkube, le fichier de configuration est intégré à l’image du docker hyperkube, comme vous pouvez le constater à partir de its Dockerfile si vous êtes curieux.

2
Alex Robinson

Je commence moi-même mon voyage dans les kubernètes, mais si vous regardez la source sur github, vous verrez d'où vient l'hyperkube. Il est intégré au cœur de kubernetes - https://github.com/kubernetes/kubernetes/blob/master/cmd/hyperkube/hyperkube.go

Kubernetes est conçu pour amener les conteneurs à un tout autre niveau et les envelopper dans ce que Google appelle des pods. L'hyperkube - et corrigez-moi si je me trompe est l'arch/krux/colonne vertébrale de la planification, de la création et de la gestion des conteneurs qui composent le module et exécute le spectacle, d'où le nom "hyperkube". De plus, l'hyperkube répond rapidement aux événements et est capable de prendre des décisions à la volée en ce qui concerne votre état de service/pile/conteneur/hôte. 

Si vous souhaitez un moyen facile de vous familiariser avec kubernetes, je vous recommande d'essayer un éleveur (et non un rancherOS) car rancherlabs vient d'implémenter le déploiement de kubernetes dans leurs piles intégrées. - lorsque vous créez une pile/un service, vous pouvez consulter les éléments qui composent cette pile/service et les conteneurs de cette pile au format yml - cela vous aidera à mieux comprendre les éléments qui composent les services et piles que vous utilisez et vous aident également à résoudre les problèmes liés aux déploiements manuels - il est basé sur un interface graphique, mais vous pouvez ajouter votre hôte à n'importe quel serveur de propriétaires, ajouter des piles de journalisation telles que kabana ou sysdig et si vous travaillez depuis le poste l'hôte est enregistré avec un éleveur (non, je ne travaille pas du tout pour eux) - vous pouvez enregistrer n'importe quel hôte avec un éleveur en ajoutant un hôte et en spécifiant custom. De plus, les éleveurs peuvent réellement gérer des kubernetes/piles/volumes sur des plates-formes d’hébergement - ce qui est génial. C'est un excellent moyen de visualiser et de voir ce qui se passe avec vos hôtes docker. 

J'espère que cela répond à certaines questions et vous conduit également dans la bonne direction. 

C'est le décideur et le donneur de vie du cluster kubernetes. 

1
James Barlow

Hyperkube est l’encapsuleur de tous les fichiers binaires du serveur d’API. Kubernetes utilise hyperkube pour appeler le serveur API, le planificateur, le gestionnaire de contrôleur, le kube-proxy et le kubelet. 

Désormais, tous ces fichiers binaires définissant le nœud maître utilisent le manifeste YAML pour définir les services mentionnés ci-dessus. Vous pouvez toujours choisir le type de déploiement dans le conteneur ou sur l'hôte en fonction de votre scénario de déploiement. 

Ces manifestes de pod pour les services définissent en réalité l'état souhaité pour vos services, qui est stocké dans le etcd à partir duquel le serveur api est préparé en premier.

Maintenant que les manifestes de pod sont définis, vous pouvez utiliser hyperkube pour configurer ces services afin qu'ils s'exécutent à l'intérieur de conteneurs ou sur l'hôte.

Donc, hyperkube en un mot est le cœur de tous les services et le seul but de cette hyperkube est de gérer tous les services au sein du cluster Kubernetes afin de simplifier un peu le déploiement.

0
devinops