Tutoriel pour apprendre la configuration de clusters Kubernetes avec IBM Bluemix Container Service

Le but de ce tutoriel est de vous apprendre la configuration de vos clusters Kubernetes pour une disponibilité et d'une capacité maximale, dans l'environnement IBM Bluemix.

Les options de configurations de cluster à haute disponibilité peuvent être indispensables pour aborder les actions présentés dans ce tutoriel.

Pour tester les configurations décrites dans ce tutoriel, vous êtes invités à créer un compte gratuitement sur IBM Bluemix.

Un espace vous est proposé sur le forum pour partager vos avis. Commentez Donner une note à l'article (5) 

Article lu   fois.

L'auteur

Liens sociaux

Viadeo Twitter Facebook Share on Google+   

I. Création de clusters Kubernetes depuis l'interface graphique avec IBM Bluemix Container Service

Image non disponible

Un cluster est un ensemble de nœuds d'agent organisé sur un réseau. L'objet de ce cluster est de définir un ensemble de ressources, de nœuds, de réseaux et de périphériques de stockage susceptible d'assurer une haute disponibilité des applications. Avant de pouvoir déployer une application, vous devez créer un cluster et spécifier les définitions des nœuds d'agent dans ce cluster.

Pour créer un cluster, procédez comme suit :

  1. Dans le catalogue, sélectionnez Conteneurs et cliquez sur Cluster Kubernetes ;

  2. Pour Type de cluster, sélectionnez Standard. Un cluster standard vous octroie des fonctions supplémentaires telles que des nœuds d'agent multiples pour promouvoir un environnement de haute disponibilité ;

  3. Renseignez la zone Nom du cluster ;

  4. Sélectionnez la version Kubernetes à utiliser dans les nœuds d'agent ;

  5. Sélectionnez l'Bluemix emplacement où déployer votre cluster. Les emplacements disponibles dépendent de la région Bluemix à laquelle vous vous êtes connecté. Pour des performances optimales, sélectionnez la région physiquement la plus proche. Si vous sélectionnez un emplacement à l'étranger, il se peut que vous ayez besoin d'une autorisation des autorités pour stocker physiquement les données dans un autre pays. La région Bluemix détermine le registre de conteneurs que vous pouvez utiliser et les services Bluemix qui vous sont disponibles.

    Remarque : IBM® Bluemix Container Service n'est pas disponible dans la région Bluemix - Grande-Bretagne. Si vous disposez d'images Docker privées ou de services Bluemix configurés dans la région Grande-Bretagne et désirez les utiliser avec votre cluster, utilisez l'interface CLI pour créer votre cluster. Connectez-vous à la région Bluemix - Grande-Bretagne pour cibler le registre de conteneurs, puis connectez-vous à une région IBM Bluemix Container Service disponible ;

  6. Sélectionnez un type de machine. Le type de machine détermine le nombre d'UC virtuelles et la mémoire déployés dans chaque nœud d'agent et disponibles pour tous les conteneurs que vous déployez dans vos nœuds :
    • le type de machine micro correspond à l'option la plus modique,

    • un type de machine équilibré affecte la même quantité de mémoire à chaque UC, ce qui optimise les performances ;

  7. Sélectionnez le nombre de nœuds d'agent dont vous avez besoin. Sélectionnez 3 pour assurer une haute disponibilité de votre cluster ;

  8. Sélectionnez un VLAN privé dans votre compte Bluemix Infrastructure (SoftLayer). Ce réseau local virtuel privé est utilisé pour la communication entre les nœuds d'agent. Vous pouvez utiliser le même VLAN privé pour plusieurs clusters ;

  9. Sélectionnez un VLAN public dans votre compte Bluemix Infrastructure (SoftLayer). Ce réseau local virtuel public est utilisé pour la communication entre les nœuds d'agent et le maître Kubernetes géré par IBM. Vous pouvez utiliser le même réseau local virtuel public pour plusieurs clusters. Si vous ne sélectionnez pas de VLAN public, vous devez configurer une solution alternative ;

  10. Pour Matériel, sélectionnez Dédié ou Partagé. Partagé est une option satisfaisante pour la plupart des situations :
    • Dédié : assure un isolement complet de vos ressources physiques vis-à-vis des autres clients IBM,

    • Partagé : permet à IBM de stocker vos ressources physiques sur le même matériel que pour d'autres clients IBM.

  11. Cliquez sur Créer un cluster. La section des informations détaillées sur le cluster s'ouvre, mais l'allocation de nœuds d'agent dans le cluster prend quelques minutes. Vous pouvez suivre la progression du déploiement du nœud d'agent dans l'onglet Nœuds d'agent. Lorsque les nœuds d'agent sont prêts, l'état passe à Prêt.

    Remarque : à chaque nœud d'agent sont affectés un ID de nœud d'agent unique et un nom de domaine qui ne doivent pas être modifiés manuellement après la création du cluster. La modification de l'ID ou du domaine empêcherait le maître Kubernetes de gérer votre cluster.

Étape suivante ?

II. Création de clusters Kubernetes depuis l'interface CLI d'IBM Bluemix Container Service

Un cluster est un ensemble de nœuds d'agent organisé sur un réseau. L'objet de ce cluster est de définir un ensemble de ressources, de nœuds, de réseaux et de périphériques de stockage susceptible d'assurer une haute disponibilité des applications. Avant de pouvoir déployer une application, vous devez créer un cluster et spécifier les définitions des nœuds d'agent dans ce cluster.

Pour créer un cluster, procédez comme suit :

  1. Installez l'interface de ligne de commande de Bluemix et le plug-in IBM Bluemix Container Service ;

  2. Connectez-vous à l'interface CLI d'Bluemix. À l'invite, entrez vos données d'identification Bluemix.

     
    Sélectionnez
    Connexion bx

    Pour stipuler une région Bluemix spécifique, incluez son nœud final d'API. Si vous disposez d'images Docker privées stockées dans le registre de conteneurs d'une région Bluemix spécifique, ou des instances de service Bluemix que vous avez déjà créées, connectez-vous à cette région pour accéder à vos images et services Bluemix.

    • Sud des États-Unis

       
      Sélectionnez
      bx login -a api.ng.bluemix.net
    • Allemagne

       
      Sélectionnez
      bx login -a api.eu-de.bluemix.net
    • Australie

       
      Sélectionnez
      bx login -a api.au-syd.bluemix.net

    Remarque : si vous utilisez un ID fédéré, lancez la commande bx login --sso pour vous connecter à l'interface CLI de Bluemix. Entrez votre nom d'utilisateur et utilisez l'URL mentionnée dans la sortie CLI pour extraire votre code d'accès ponctuel. Si la connexion échoue alors que vous omettez l'option --sso et aboutit en incluant l'option --sso, ceci indique que votre ID est fédéré ;

  3. Si vous êtes affecté à plusieurs comptes, organisations et espaces Bluemix, sélectionnez le compte dans lequel vous désirez créer votre Kubernetes. Les clusters sont spécifiques à un compte et à une organisation, mais sont indépendants de l'espace Bluemix. Par conséquent, si vous avez accès à plusieurs espaces dans votre organisation, vous pouvez sélectionner n'importe lequel dans la liste ;

  4. Connectez-vous au plug-in Kubernetes d'IBM Bluemix Container Service (bx cs).

     
    Sélectionnez
    bx cs init

    Pour stipuler une région IBM Bluemix Container Service spécifique, utilisez l'une des commandes suivantes. La région que vous sélectionnez détermine les emplacements disponibles où vous pouvez créer votre cluster.

    • Sud des États-Unis :

       
      Sélectionnez
      bx cs init --host https://us-south.containers.bluemix.net
    • Centre Union européenne :

       
      Sélectionnez
      bx cs init --host https://eu-central.containers.bluemix.net
    • AP-Sud :

       
      Sélectionnez
      bx cs init --host https://ap-south.containers.bluemix.net
  5. Créez un cluster.
  6. Examinez les emplacements disponibles. Les emplacements affichés dépendent de la région IBM Bluemix Container Service que vous avez sélectionnée plus tôt.

     
    Sélectionnez
    bx cs locations

    La sortie de votre interface CLI sera similaire à ceci.

    • Sud des États-Unis :

       
      Sélectionnez
      dal10
      dal12
    • Centre Union européenne :

       
      Sélectionnez
      ams03
      fra02
    • AP-Sud

       
      Sélectionnez
      syd01
      syd02
  7. Sélectionnez un emplacement et examinez les types de machine disponibles sur celui-ci. Le type de machine spécifie les ressources de traitement virtuelles disponibles pour chaque nœud d'agent.

     
    Sélectionnez
    bx cs types de machine<emplacement>
     
    Sélectionnez
    Getting machine types list...
    OK
    Machine Types
    Name         Cores   Memory   Network Speed   OS             Storage   Server Type   
    u1c.2x4      2       4GB      1000Mbps        UBUNTU_16_64   100GB     virtual   
    b1c.4x16     4       16GB     1000Mbps        UBUNTU_16_64   100GB     virtual   
    b1c.16x64    16      64GB     1000Mbps        UBUNTU_16_64   100GB     virtual   
    b1c.32x128   32      128GB    1000Mbps        UBUNTU_16_64   100GB     virtual   
    b1c.56x242   56      242GB    1000Mbps        UBUNTU_16_64   100GB     virtual
  8. Vérifiez si un réseau virtuel local public et privé existe déjà dans Bluemix Infrastructure (SoftLayer) pour ce compte.

     
    Sélectionnez
    bx cs vlans <emplacement>

    Sortie :

     
    Sélectionnez
    ID        Name                Number   Type      Router  
    1519999   vlan   1355     private   bcr02a.dal10  
    1519898   vlan   1357     private   bcr02a.dal10 
    1518787   vlan   1252     public   fcr02a.dal10 
    1518888   vlan   1254     public    fcr02a.dal10

    Si un réseau virtuel public et privé existe déjà, notez les routeurs correspondants. Les routeurs de VLAN privé commencent toujours par bcr (routeur dorsal) et les routeurs de VLAN public par fcr (routeur frontal). Le numéro et la combinaison de lettres après ces préfixes doivent correspondre pour pouvoir utiliser ces réseaux locaux virtuels lors de la création d'un cluster. Dans l'exemple de sortie, n'importe quel réseau local virtuel privé peut être utilisé avec l'un des réseaux publics virtuels privés vu que les routeurs incluent tous 02a.dal10.

  9. Exécutez la commande cluster-create. Vous avez le choix entre un cluster lite, qui inclut un nœud d'agent avec 2 UC virtuelles et 4 Go de mémoire, et un cluster standard, lequel peut inclure autant de nœuds d'agent que vous le désirez dans votre compte Bluemix Infrastructure (SoftLayer). Lorsque vous créez un cluster standard, le matériel du nœud d'agent est partagé par défaut par plusieurs clients IBM et facturé par heures d'utilisation. Exemple pour un cluster standard

     
    Sélectionnez
    bx cs cluster-create --location dal10 --public-vlan mon_ID_VLAN_public --private-vlan mon_ID_VLAN_privé --machine-type u1c.2x4 --workers 3 --name mon_cluster

    Exemple pour un cluster lite

     
    Sélectionnez
    bx cs cluster-create --name my_cluster
    Description des composantes de cette commande
    cluster-create Commande de création d'un cluster dans votre organisation Bluemix.
    --location <emplacement>

    Remplacez <emplacement> par l'ID de l'emplacement Bluemix où vous désirez créer votre cluster. Les emplacements disponibles dépendent de la région IBM Bluemix Container Service à laquelle vous vous êtes connecté.

    Les emplacements disponibles sont les suivants :

    • Sud des États-Unis
      1. dal10 [Dallas]

      2. dal12 [Dallas]

    • Centre Union européenne
      1. ams03 [Amsterdam]

      2. fra02 [Francfort]

    • AP-Sud
      1. syd01 [Sydney 1]

      2. syd04 [Sydney 4]

    --machine-type <type_machine> Si vous créez un cluster standard, choisissez un type de machine. Le type de machine spécifie les ressources de traitement virtuelles disponibles pour chaque nœud d'agent. Voir Types de cluster dans IBM Bluemix Container Service pour plus d'informations. Pour les clusters lite, vous n'avez pas besoin de définir le type de machine.
    --public-vlan <ID_Vlan_public>
    • Pour les clusters lite, vous n'avez pas besoin de définir un réseau local virtuel public. Votre cluster lite est automatiquement connecté à un réseau local virtuel public dont IBM est propriétaire.

    • Dans le cas d'un cluster standard, si vous avez déjà un réseau local virtuel public configuré dans votre compte Bluemix Infrastructure (SoftLayer) pour cet emplacement, entre l'ID de ce VLAN public. Autrement, vous n'avez pas besoin de spécifier cette option puisqu'IBM Bluemix Container Service crée automatiquement un réseau local virtuel public pour vous.

      Remarque : le VLAN public et le VLAN privé que vous créez avec la commande create doivent correspondre. Les routeurs de VLAN privé commencent toujours par bcr (routeur dorsal) et les routeurs de VLAN public par fcr (routeur frontal). Le numéro et la combinaison de lettres après ces préfixes doivent correspondre pour pouvoir utiliser ces réseaux locaux virtuels lors de la création d'un cluster. N'utilisez pas de réseaux locaux virtuels publics et privés qui ne correspondent pas pour créer un cluster.

    --private-vlan <ID_Vlan_privé>
    • Pour les clusters lite, vous n'avez pas besoin de définir un réseau local virtuel privé. Votre cluster lite est automatiquement connecté à un réseau local virtuel privé dont IBM est propriétaire.

    • Dans le cas d'un cluster standard, si vous avez déjà un réseau local virtuel privé configuré dans votre compte Bluemix Infrastructure (SoftLayer) pour cet emplacement, entre l'ID de ce VLAN privé. Autrement, vous n'avez pas besoin de spécifier cette option puisqu'IBM Bluemix Container Service crée automatiquement un réseau local virtuel privé pour vous.

      Remarque : le VLAN public et le VLAN privé que vous créez avec la commande create doivent correspondre. Les routeurs de VLAN privé commencent toujours par bcr (routeur dorsal) et les routeurs de VLAN public par fcr (routeur frontal). Le numéro et la combinaison de lettres après ces préfixes doivent correspondre pour pouvoir utiliser ces réseaux locaux virtuels lors de la création d'un cluster. N'utilisez pas de réseaux locaux virtuels publics et privés qui ne correspondent pas pour créer un cluster.

    --name <nom> Remplacez <nom> par le nom de votre cluster.
    --workers <nombre> Nombre de nœuds d'agent à inclure dans le cluster. Si l'option --workers n'est pas spécifiée, un nœud d'agent est créé.
  10. Vérifiez que la création du cluster a été demandée.

     
    Sélectionnez
    Clusters bx cs

    Remarque : la réservation des postes de nœud d'agent et la mise en place et la mise à disposition du cluster dans votre compte peuvent prendre jusqu'à quinze minutes.

    Lorsque la mise à disposition de votre cluster est finalisée, le statut du cluster passe à deployed (déployé).

     
    Sélectionnez
    Name         ID                                   State      Created          Workers   
    my_cluster   paf97e8843e29941b49c598f516de72101   deployed   20170201162433   1
  11. Vérifiez le statut des nœuds d'agent.

     
    Sélectionnez
    bx cs workers <cluster>

    Lorsque les nœuds d'agent sont prêts, l'état passe à normal et leur statut indique Prêt. Lorsque le statut du nœud indique Prêt, vous pouvez accéder au cluster.

    Remarque : à chaque nœud d'agent sont affectés un ID de nœud d'agent unique et un nom de domaine qui ne doivent pas être modifiés manuellement après la création du cluster. La modification de l'ID ou du domaine empêcherait le maître Kubernetes de gérer votre cluster.

     
    Sélectionnez
    ID                                                  Public IP        Private IP     Machine Type   State      Status  
    prod-dal10-pa8dfcc5223804439c87489886dbbc9c07-w1   169.47.223.113   10.171.42.93   free           normal    Prêt
  12. Définissez le cluster que vous avez créé comme contexte de cette session. Effectuez ces étapes de configuration à chaque fois que vous utilisez votre cluster ;
  13. Obtenez la commande permettant de définir la variable d'environnement et téléchargez les fichiers de configuration Kubernetes.

     
    Sélectionnez
    bx cs cluster-config <nom_ou_ID_cluster>

    Une fois les fichiers de configuration téléchargés, une commande s'affiche ; elle vous permet de définir le chemin vers le fichier de configuration Kubernetes local en tant que variable d'environnement.

    Exemple pour OS X :

     
    Sélectionnez
    export KUBECONFIG=/Users/<user_name>/.bluemix/plugins/container-service/clusters/<nom_cluster>/kube-config-prod-dal10-<nom_cluster>.yml
  14. Copiez et collez la commande qui s'affiche sur votre terminal pour définir la variable d'environnement KUBECONFIG ;

  15. Vérifiez que la variable d'environnement KUBECONFIG est correctement définie.

    Exemple pour OS X :

     
    Sélectionnez
    echo $KUBECONFIG

    Sortie :

     
    Sélectionnez
    /Users/<user_name>/.bluemix/plugins/container-service/clusters/<nom_cluster>/kube-config-prod-dal10-<nom_cluster>.yml
  16. Lancez le tableau de bord Kubernetes via le port par défaut (8001) ;
  17. Définissez le proxy avec le numéro de port par défaut.

     
    Sélectionnez
    kubectl proxy
     
    Sélectionnez
    $ kubectl proxy
    Starting to serve on 127.0.0.1:8001
  18. Ouvrez l'URL suivante dans un navigateur Web pour accéder au tableau de bord Kubernetes.

     
    Sélectionnez
    http://localhost:8001/ui

Étape suivante ?

III. Utilisation de registres d'images privés et publics avec IBM Bluemix Container Service

Une image Docker est la base de chaque conteneur que vous créez. L'image est créée depuis un Dockerfile, lequel est un fichier contenant des instructions pour générer l'image. Un Dockerfile peut référencer dans ses instructions des artefacts de génération stockés séparément, comme une application, sa configuration, et ses dépendances. Les images sont généralement stockées dans un registre d'images pouvant être accessible au public (registre public) ou, au contraire, dont l'accès est limité à un petit groupe d'utilisateurs (registre privé).

Examinez les options suivantes pour plus d'informations sur la configuration d'un registre d'images et l'utilisation d'une image du registre.

  • Accès à un espace de nom dans IBM Bluemix Container Registry en vue d'utiliser des images fournies par IBM et vos propres images Docker privées.

  • Accès aux images publiques de Docker Hub.

  • Accès à des images privées stockées dans d'autres registres privés.

III-A. Accès à un espace de nom dans IBM Bluemix Container Registry en vue d'utiliser des images fournies par IBM et vos propres images Docker privées

Vous pouvez déployer dans votre cluster des conteneurs depuis une image fournie par IBM ou depuis une image privée stockée dans votre espace de nom dans IBM Bluemix Container Registry.

Avant de commencer

Lorsque vous créez un cluster, un jeton de registre sans expiration est créé automatiquement pour le cluster. Ce jeton est utilisé pour octroyer un accès en lecture seule à n'importe lequel de vos espaces de nom configurés dans IBM Bluemix Container Registry, de sorte à pouvoir utiliser aussi bien les images fournies par IBM que vos propres images Docker privées. Les jetons doivent être stockés dans un élément Kubernetes imagePullSecret pour être accessibles à un cluster Kubernetes lorsque vous déployez une application conteneurisée. Lorsque votre cluster est créé, IBM Bluemix Container Service stocke automatiquement ce jeton dans un élément Kubernetes imagePullSecret. L'élément imagePullSecret est ajouté à l'espace de nom Kubernetes par défaut, à la liste par défaut des valeurs confidentielles dans l'élément ServiceAccount de cet espace de nom, et à l'espace de nom kube-system.

Remarque : cette configuration initiale vous permet de déployer des conteneurs depuis n'importe quelle image disponible dans un espace de nom dans votre compte Bluemix vers l'espace de nom nommé default de votre cluster. Si vous désirez déployer un conteneur dans d'autres espaces de nom de votre cluster, ou utiliser une image stockée dans une autre région Bluemix, ou dans un autre compte Bluemix, vous devez créer votre propre élément imagePullSecret pour votre cluster.

Pour déployer un conteneur dans l'espace de nom default de votre cluster, procédez comme suit.

Créez un script de configuration de déploiement.

  1. Ouvrez l'éditeur de votre choix et créez un script de configuration de déploiement nommé, par exemple, mydeployment.yaml.

  2. Définissez le déploiement et l'image de votre espace de nom que vous désirez utiliser dans IBM Bluemix Container Registry.

    Pour utiliser l'une des images fournies par IBM :

     
    Sélectionnez
    apiVersion: extensions/v1beta1
    kind: Deployment
    metadata:
      name: ibmliberty-deployment
    spec:
      replicas: 3
      template:
        metadata:
          labels:
            app: ibmliberty
        spec:
          containers:
          - name: ibmliberty
            image: registry.eu-gb.bluemix.net/ibmliberty

    Pour utiliser une image privée d'un espace de nom dans IBM Bluemix Container Registry :

     
    Sélectionnez
    apiVersion: extensions/v1beta1
    kind: Deployment
    metadata:
      name: ibmliberty-deployment
    spec:
      replicas: 3
      template:
        metadata:
          labels:
            app: ibmliberty
        spec:
          containers:
          - name: ibmliberty
            image: registry.eu-gb.bluemix.net/<espace_nom>/<nom_image>:<étiquette>

    Conseil : pour extraire vos informations d'espace de nom, exécutez la commande bx cr namespace-list.

  3. Sauvegardez vos modifications.

  4. Créez le déploiement dans votre cluster.

     
    Sélectionnez
    kubectl apply -f mydeployment.yaml

III-A-1. Déploiement d'images dans d'autres espaces de nom Kubernetes ou accès à des images dans d'autres régions et comptes Bluemix

Vous pouvez déployer des conteneurs vers d'autres espaces de nom Kubernetes ou utiliser des images stockées dans d'autres régions ou comptes Bluemix en créant votre propre élément imagePullSecret.

Avant de commencer

  1. Configurez un espace de nom dans IBM Bluemix Container Registry et transférez par commande push des images dans cet espace de nom.

  2. Créez un cluster.

  3. Ciblez avec votre interface CLI votre cluster.

Pour créer votre propre élément imagePullSecret, procédez comme suit.

Remarque : les valeurs ImagePullSecrets sont valides pour les espaces de nom pour lesquels ils ont été créés. Répétez ces étapes pour chaque espace de nom dans lequel vous désirez déployer des conteneurs depuis une image privée.

  1. Si vous n'en avez pas encore un, Créez un jeton pour le registre auquel vous désirez accéder.

  2. Répertoriez les jetons disponibles dans votre compte Bluemix.

     
    Sélectionnez
    bx cr token-list
  3. Notez l'ID du jeton que vous désirez utiliser.

  4. Extrayez la valeur de ce jeton. Remplacez <ID_jeton> par celui du jeton que vous avez extrait à l'étape précédente.

     
    Sélectionnez
    bx cr token-get <ID_jeton>

    La valeur de ce jeton est affichée dans la zone Token de votre sortie CLI.

  5. Créez la valeur confidentielle Kubernetes pour stocker votre information de jeton.

     
    Sélectionnez
    kubectl --namespace <espace_nom_kubernetes> create secret docker-registry <nom_valeur_confidentielle>  --docker-server=<URL_registre> --docker-username=token --docker-password=<valeur_jeton> --docker-email=<email_docker>
    Description des composantes de cette commande
    --namespace <espace_nom_kubernetes> Obligatoire. Espace de nom Kubernetes de votre cluster dans lequel vous désirez utiliser la valeur confidentielle et déployer des conteneurs. Exécutez la commande kubectl get namespaces pour répertorier tous les espaces de nom dans votre cluster.
    <nom_valeur_confidentielle> Obligatoire. Nom que vous désirez utiliser pour l'élément imagePullSecret.
    --docker-server <URL_registre>

    Obligatoire. URL du registre d'images où votre espace de nom est configuré.

    • Pour les espaces de nom définis au sud des États-Unis : registry.ng bluemix.net

    • Pour les espaces de nom définis au Centre de l'Union européenne (Frankfurt) : registry.eu-de.bluemix.net

    • Pour les espaces de nom définis en Australie (Sydney) : registry.au-syd.bluemix.net

    --docker-password <valeur_jeton> Obligatoire. Valeur de votre jeton de registre extraite auparavant.
    --docker-email <adresse_électronique_docker> Obligatoire. Si vous en avez une, entrez votre adresse e-mail Docker. Si vous n'en avez pas, indiquez une adresse e-mail fictive (par exemple, a@b.c). Cet e-mail est obligatoire pour créer une valeur confidentielle Kubernetes, mais n'est pas utilisé après la création.
  6. Vérifiez que la création de la valeur confidentielle a abouti. Remplacez <espace_nom_kubernetes> par celui où vous avez créé l'élément imagePullSecret.

     
    Sélectionnez
    kubectl get secrets --namespace <espace_nom_kubernetes>
  7. Créez une nacelle référençant l'élément imagePullSecret.
  8. Ouvrez l'éditeur de votre choix et créez un script de configuration de nacelle nommé, par exemple, mypod.yaml.

  9. Définissez la nacelle et l'élément imagePullSecret que vous désirez utiliser pour accéder au registre Bluemix privé. Pour utiliser une image privée d'un espace de nom :

     
    Sélectionnez
    apiVersion: v1
    kind: Pod
    metadata:
      name: <nom_nacelle>
    spec:
      containers:
        - name: <nom_conteneur>
          image: registry.eu-gb.bluemix.net/<espace_nom>/<nom_image>:<étiquette>  
      imagePullSecrets:
        - name: <nom_valeur_confidentielle>
    Description des composants de ce fichier YAML
    <nom_nacelle> Nom de la nacelle que vous désirez créer.
    <nom_conteneur> Nom du conteneur que vous désirez déployer dans votre cluster.
    <espace_nom> Espace de nom sous lequel votre image est stockée. Pour répertorier les espaces de nom disponibles, exécutez la commande bx cr namespace-list.
    <nom_image> Nom de l'image que vous désirez utiliser. Pour répertorier les images disponibles dans un compte Bluemix, exécutez la commande bx cr image-list.
    <étiquette> Version de l'image que vous désirez utiliser. Si aucune étiquette n'est spécifiée, celle correspondant à latest (la plus récente) est utilisée par défaut.
    <nom_valeur_confidentielle> Nom de l'élément imagePullSecret que vous avez créé plus tôt.
  10. Sauvegardez vos modifications.

  11. Créez le déploiement dans votre cluster.

     
    Sélectionnez
    kubectl apply -f mypod.yaml

III-B. Accès aux images publiques de Docker Hub

Vous pouvez utiliser n'importe quelle image publique stockée dans Docker Hub pour déployer sans configuration supplémentaire un conteneur dans votre cluster.

Avant de commencer

  1. Créez un cluster.

  2. Ciblez avec votre interface CLI votre cluster.

Créez un script de configuration de déploiement.

  1. Ouvrez l'éditeur de votre choix et créez un script de configuration de déploiement nommé, par exemple, mydeployment.yaml.

  2. Définissez le déploiement et l'image Docker Hub publique que vous désirez utiliser. Le script de configuration suivant utilise l'image nginx publique disponible dans Docker Hub.

     
    Sélectionnez
    apiVersion: extensions/v1beta1
    kind: Deployment
    metadata:
      name: nginx-deployment
    spec:
      replicas: 3
      template:
        metadata:
          labels:
            app: nginx
        spec:
          containers:
          - name: nginx
            image: nginx
  3. Sauvegardez vos modifications.

  4. Créez le déploiement dans votre cluster.

     
    Sélectionnez
    kubectl apply -f mydeployment.yaml

III-C. Accès à des images privées stockées dans d'autres registres privés

Si vous disposez déjà d'un registre privé que vous désirez utiliser, vous devez stocker les données d'identification du registre dans un élément Kubernetes imagePullSecret et référencer cette valeur confidentielle dans votre script de configuration.

Avant de commencer

  1. Créez un cluster.

  2. Ciblez avec votre interface CLI votre cluster.

Pour créer un élément imagePullSecret, procédez comme suit.

Remarque : les valeurs ImagePullSecrets sont valides pour les espaces de nom pour lesquels ils ont été créés. Répétez ces étapes pour chaque espace de nom dans lequel vous désirez déployer des conteneurs depuis une image d'un registre Bluemix privé.

  1. Créez la valeur confidentielle Kubernetes pour stocker vos données d'identification de registre privé.

     
    Sélectionnez
    kubectl --namespace <espace_nom_kubernetes> create secret docker-registry <nom_valeur_confidentielle>  --docker-server=<URL_registre> --docker-username=<nom_utilisateur_docker> --docker-password=<mot_de_passe_docker> --docker-email=<email_docker>
    Description des composantes de cette commande
    --namespace <espace_nom_kubernetes> Obligatoire. Espace de nom Kubernetes de votre cluster dans lequel vous désirez utiliser la valeur confidentielle et déployer des conteneurs. Exécutez la commande kubectl get namespaces pour répertorier tous les espaces de nom dans votre cluster.
    <nom_valeur_confidentielle> Obligatoire. Nom que vous désirez utiliser pour l'élément imagePullSecret.
    --docker-server <URL_registre> Obligatoire. URL du registre dans lequel sont stockées vos images privées.
    --docker-username <nom_utilisateur_docker> Obligatoire. Nom d'utilisateur pour connexion à votre registre privé.
    --docker-password <mot_de_passe_docker> Obligatoire. Mot de passe pour connexion à votre registre privé.
    --docker-email <adresse_électronique_docker> Obligatoire. Si vous en avez une, entrez votre adresse e-mail Docker. Si vous n'en avez pas, indiquez une adresse e-mail fictive (par exemple, a@b.c). Cet e-mail est obligatoire pour créer une valeur confidentielle Kubernetes, mais n'est pas utilisé après la création.
  2. Vérifiez que la création de la valeur confidentielle a abouti. Remplacez <espace_nom_kubernetes> par celui où vous avez créé l'élément imagePullSecret.

     
    Sélectionnez
    kubectl get secrets --namespace <espace_nom_kubernetes>
  3. Créez une nacelle référençant l'élément imagePullSecret.
    1. Ouvrez l'éditeur de votre choix et créez un script de configuration de nacelle nommé, par exemple, mypod.yaml.

    2. Définissez la nacelle et l'élément imagePullSecret que vous désirez utiliser pour accéder au registre Bluemix privé. Pour utiliser une image privée de votre registre privé :

       
      Sélectionnez
      apiVersion: v1
      kind: Pod
      metadata:
        name: <nom_nacelle>
      spec:
        containers:
          - name: <nom_conteneur>
            image: <nom_image>:<étiquette>  
        imagePullSecrets:
          - name: <nom_valeur_confidentielle>
      Description des composants de ce fichier YAML
      <nom_nacelle>Nom de la nacelle que vous désirez créer.
      <nom_conteneur>Nom du conteneur que vous désirez déployer dans votre cluster.
      <nom_image>Chemin d'accès complet à l'image dans votre registre privé que vous désirez utiliser.
      <étiquette>Version de l'image que vous désirez utiliser. Si aucune étiquette n'est spécifiée, celle correspondant à latest (la plus récente) est utilisée par défaut.
      <nom_valeur_confidentielle>Nom de l'élément imagePullSecret que vous avez créé plus tôt.
    3. Sauvegardez vos modifications.

    4. Créez le déploiement dans votre cluster.

       
      Sélectionnez
      kubectl apply -f mypod.yaml

IV. Ajout de services Bluemix à des clusters dans IBM Bluemix Container Service

Ajoutez une instance de service Bluemix existante à votre cluster pour permettre aux utilisateurs du cluster d'accéder et d'utiliser le service Bluemix lorsqu'ils déploient une application dans le cluster.

Avant de commencer

Remarque : vous ne pouvez ajouter que des services Bluemix qui prennent en charge les clés de service.

Pour ajouter un service, procédez comme suit :

  1. Répertoriez tous les services existants dans votre espace Bluemix.

     
    Sélectionnez
    bx service list

    La sortie de votre interface CLI sera similaire à ceci.

     
    Sélectionnez
    name        service       plan    bound apps   last operation   
    <nom_instance_service>  <nom_service>       spark                create succeeded
  2. Notez la valeur du nom (name) de l'instance de service que vous souhaitez ajouter au cluster ;

  3. Identifiez l'espace de nom du cluster que vous désirez ajouter à votre service. Sélectionnez l'une des options suivantes.
    • Listez les espaces de nom existants et sélectionnez l'espace de nom à utiliser.

       
      Sélectionnez
      kubectl get namespaces
    • Créer un nouvel espace de nom dans votre cluster.

       
      Sélectionnez
      kubectl create namespace <nom_espace_nom>
  4. Ajoutez le service à votre cluster.

     
    Sélectionnez
    bx cs cluster-service-bind <nom_ou_ID_cluster> <espace_nom> <nom_instance_service>

    Une fois que le service a été correctement ajouté à votre cluster, une valeur confidentielle de cluster est créée pour héberger les données d'identification de votre instance de service. La sortie de votre interface CLI sera similaire à ceci.

     
    Sélectionnez
    bx cs cluster-service-bind mycluster mynamespace cleardb 
    Liaison d'instance de service à l'espace de nom...
    OK
    Namespace: mon_espace_nom
    Secret name:     binding-<nom_instance_service>
  5. Vérifiez que la valeur confidentielle a bien été créée dans l'espace de nom de votre cluster.

     
    Sélectionnez
    kubectl get secrets --namespace=<espace_nom>

Les utilisateurs du cluster peuvent accéder aux données d'identification du service Bluemix en montant la valeur confidentielle Kubernetes en tant que volume secret sur une nacelle.

V. Gestion des utilisateurs et de l'accès à un cluster dans IBM Bluemix Container Service

Vous pouvez accorder à d'autres utilisateurs un accès à votre cluster pour leur permettre d'y accéder, de le gérer et d'y déployer des applications.

Chaque utilisateur qui utilise IBM Bluemix Container Service doit se voir affecter dans Identity and Access Management un rôle utilisateur spécifique au service et qui détermine les actions qu'il peut effectuer. Identity and Access Management fait une distinction entre les autorisations d'accès suivantes.

  • Règles d'accès IBM Bluemix Container Service

    Ces règles d'accès déterminent les actions de gestion du cluster que vous pouvez effectuer (par exemple, la création ou la suppression de clusters, ou l'ajout ou la suppression de nœuds d'agent).

  • Rôles Cloud Foundry

    Chaque utilisateur doit se voir affecter un rôle utilisateur Cloud Foundry. Ce rôle détermine les actions que peut effectuer l'utilisateur sur le compte Bluemix (par exemple, inviter d'autres utilisateurs ou examiner l'utilisation du quota). Pour examiner les autorisations correspondant à chaque rôle, voir Rôles Cloud Foundry.

  • Rôles RBAC

    Chaque utilisateur auquel est affectée une règle d'accès IBM Bluemix Container Service se voit automatiquement affecter un rôle RBAC. Les rôles RBAC déterminent les actions que vous pouvez effectuer sur des ressources Kubernetes au sein du cluster. Les rôles RBAC ne sont configurés que pour l'espace de nom par défaut. L'administrateur du cluster peut ajouter des rôles RBAC pour d'autres espaces de nom dans le cluster. Pour plus d'informations, voir Using RBAC Authorization (utilisation des autorisations RBAC) dans la documentation Kubernetes.

Sélectionnez l'une des actions suivantes pour continuer.

  • Examen des règles d'accès et des autorisations requises pour utiliser des clusters.

  • Examen de votre règle d'accès actuelle.

  • Modification de la règle d'accès d'un utilisateur existant.

  • Ajout d'utilisateurs supplémentaires au compte Bluemix.

V-A. Description des règles d'accès et des autorisations IBM Bluemix Container Service requises

Examinez les règles d'accès et les autorisations que vous pouvez attribuer à des utilisateurs dans votre compte Bluemix.

Tableau 1. Description des règles d'accès et des autorisations IBM Bluemix Container Service requises
Règle d'accès Autorisations de gestion du cluster Autorisations sur les ressources Kubernetes
  • Rôle : Administrateur

  • Instances de service : toutes les instances de service actuelles

  • Créer un cluster lite ou standard

  • Définir des données d'identification pour un compte Bluemix afin d'accéder au portefeuille Bluemix Infrastructure (SoftLayer)

  • Supprimer un cluster

  • Affecter et modifier des règles d'accès IBM Bluemix Container Service pour d'autres utilisateurs existants dans ce compte.

Ce rôle hérite des autorisations des rôles Éditeur, Opérateur et Visualiseur dans tous les clusters du compte.

  • Rôle RBAC : cluster-admin

  • Accès en lecture/écriture aux ressources dans tous les espaces de nom

  • Créer des rôles au sein d'un espace de nom

  • Accès au tableau de bord Kubernetes

  • Rôle : Administrateur

  • Instances de service : ID de cluster spécifique

  • Supprimer un cluster spécifique

Ce rôle hérite des autorisations des rôles Éditeur, Opérateur et Visualiseur dans le cluster sélectionné.

  • Rôle RBAC : cluster-admin

  • Accès en lecture/écriture aux ressources dans tous les espaces de nom

  • Créer des rôles au sein d'un espace de nom

  • Rôle : Opérateur

  • Instances de service : toutes les instances de service actuelles / ID de cluster spécifique

  • Ajouter des nœuds d'agent supplémentaires à un cluster

  • Supprimer des nœuds d'agent d'un cluster

  • Réamorcer un nœud d'agent

  • Recharger un nœud d'agent

  • Ajouter un sous-réseau à un cluster

  • Rôle RBAC : admin

  • Accès en lecture/écriture aux ressources dans l'espace de nom par défaut, mais non pas à l'espace de nom lui-même

  • Créer des rôles au sein d'un espace de nom

  • Rôle : Éditeur

  • Instances de service : toutes les instances de service actuelles / ID de cluster spécifique

  • Lier un service Bluemix à un cluster.

  • Annuler la liaison d'un service Bluemix à un cluster.

  • Créer un webhook.

Utilisez ce rôle pour vos développeurs d'applications.

  • Rôle RBAC : edit

  • Accès en lecture/écriture aux ressources dans l'espace de nom par défaut

  • Rôle : Visualiseur

  • Instances de service : toutes les instances de service actuelles / ID de cluster spécifique

  • Lister un cluster

  • Afficher les détails d'un cluster

  • Rôle RBAC : view

  • Accès en lecture aux ressources dans l'espace de nom par défaut

  • Pas d'accès en lecture aux valeurs confidentielles Kubernetes

Rôle dans l'organisation Cloud Foundry : Gestionnaire
  • Ajouter des utilisateurs supplémentaires dans un compte Bluemix

 
Rôle dans l'espace Cloud Foundry : Développeur
  • Créer des instances de service Bluemix

  • Lier des instances de service Bluemix à des clusters

 

V-B. Vérification de votre règle d'accès IBM Bluemix Container Service

Vous pouvez examiner et vérifier la règle d'accès qui vous est affectée pour IBM Bluemix Container Service. La règle d'accès détermine les actions de gestion de cluster que vous pouvez effectuer.

  1. Sélectionnez le compte Bluemix pour lequel vous désirez vérifier votre règle d'accès IBM Bluemix Container Service.

  2. Dans la barre de menus, cliquez sur Gérer > Sécurité > Identité et accès. La fenêtre Utilisateurs affiche une liste des utilisateurs avec leurs adresses électroniques et leur statut actuel pour le compte sélectionné.

  3. Sélectionnez l'utilisateur pour lequel vous désirez vérifier la règle d'accès.

  4. Dans la section Règles de service, examinez la règle d'accès affectée à l'utilisateur. Pour des informations détaillées sur les actions que vous pouvez effectuer avec ce rôle, voir Description des règles d'accès et des autorisations IBM Bluemix Container Service requises.

  5. Facultatif  : modification de votre règle d'accès actuelle.

    Remarque : seuls les utilisateurs affectés à une règle de service Administrateur sur toutes les ressources dans IBM Bluemix Container Service peuvent modifier la règle d'accès d'un utilisateur existant. Pour ajouter d'autres utilisateurs à un compte Bluemix, vous devez être affecté au rôle Gestionnaire Cloud Foundry pour ce compte. Pour identifier l'ID du propriétaire du compte Bluemix, exécutez la commande bx iam accounts et recherchez la zone Owner User ID.

V-C. Modification de la règle d'accès IBM Bluemix Container Service pour un utilisateur existant

Vous pouvez modifier la règle d'accès pour un utilisateur existant en lui accordant des autorisations de gestion d'un cluster dans votre compte Bluemix.

Avant de commencer, vérifiez que vous avez bien été affecté à la règle d'accès Administrateur sur toutes les ressources dans IBM Bluemix Container Service.

  1. Sélectionnez le compte Bluemix pour lequel vous désirez modifier la règle d'accès IBM Bluemix Container Service d'un utilisateur existant.

  2. Dans la barre de menus, cliquez sur Gérer > Sécurité > Identité et accès. La fenêtre Utilisateurs affiche une liste des utilisateurs avec leurs adresses électroniques et leur statut actuel pour le compte sélectionné.

  3. Recherchez l'utilisateur dont vous désirez modifier la règle d'accès. S'il est introuvable, invitez cet utilisateur dans le compte Bluemix.

  4. Dans l'onglet Actions, cliquez sur Affecter une règle.

  5. Dans la liste déroulante Service, sélectionnez IBM Bluemix Container Service.

  6. Dans la liste déroulante Rôles, sélectionnez la règle d'accès que vous désirez assigner. La sélection d'un rôle sans le limiter à une région ou à un cluster spécifique applique automatiquement cette règle d'accès à tous les clusters qui ont été créés dans ce compte. Si vous désirez limiter l'accès à un cluster ou à une région spécifique, sélectionnez-les dans la liste déroulante Instance de service et Région. Pour consulter la liste des actions prises en charge pour chaque règle d'accès, voir Description des règles d'accès et des autorisations IBM Bluemix Container Service requises. Pour identifier l'ID d'un cluster spécifique, exécutez la commande bx cs clusters.

  7. Cliquez sur Affecter une règle pour sauvegarder vos modifications.

V-D. Ajout d'utilisateurs à un compte Bluemix

Vous pouvez ajouter des utilisateurs supplémentaires à un compte Bluemix pour leur accorder un accès à vos clusters.

Avant de commencer, vérifiez que vous avez bien été affecté au rôle Gestionnaire Cloud Foundry pour un compte Bluemix.

  1. Sélectionnez le compte Bluemix dans lequel vous désirez ajouter des utilisateurs.

  2. Dans la barre de menus, cliquez sur Gérer > Sécurité > Identité et accès. La fenêtre Utilisateurs affiche une liste des utilisateurs avec leurs adresses électroniques et leur statut actuel pour le compte sélectionné.

  3. Cliquez sur Inviter des utilisateurs.

  4. Dans Adresse électronique ou IBMid existant, entrez l'adresse électronique de l'utilisateur que vous désirez ajouter au compte Bluemix.

  5. Dans la section Accès section, développez l'entrée Services avec l'offre Identity and Access activée.

  6. Dans la liste déroulante Services, sélectionnez IBM Bluemix Container Service.

  7. Dans la liste déroulante Rôles, sélectionnez la règle d'accès que vous désirez assigner. La sélection d'un rôle sans le limiter à une région ou à un cluster spécifique applique automatiquement cette règle d'accès à tous les clusters qui ont été créés dans ce compte. Si vous désirez limiter l'accès à un cluster ou à une région spécifique, sélectionnez-les dans la liste déroulante Instance de service et Région. Pour consulter la liste des actions prises en charge pour chaque règle d'accès, voir Description des règles d'accès et des autorisations IBM Bluemix Container Service requises. Pour identifier l'ID d'un cluster spécifique, exécutez la commande bx cs clusters.

  8. Développez la section Accès Cloud Foundry et sélectionnez l'organisation Bluemix à laquelle vous désirez ajouter l'utilisateur dans la liste déroulante Organisation.

  9. Dans la liste déroulante Rôles d'espace, sélectionnez les rôles de votre choix. Les clusters Kubernetes sont indépendants des espaces Bluemix. Pour autoriser cet utilisateur à ajouter des utilisateurs supplémentaires à un compte Bluemix, vous devez l'affecter à un Rôle d'organisation Cloud Foundry. Toutefois, vous ne pourrez affecter des rôles d'organisation Cloud Foundry qu'à une étape ultérieure.

  10. Cliquez sur Inviter des utilisateurs.

  11. Facultatif : dans le panneau Utilisateurs de l'onglet Actions, sélectionnez Gérer un utilisateur.

  12. Facultatif : dans la section Rôles Cloud Foundry, recherchez le rôle d'organisation Cloud Foundry attribué à l'utilisateur que vous avez ajouté aux étapes précédentes.

  13. Facultatif : dans l'onglet Actions, sélectionnez Editer le rôle d'organisation.

  14. Facultatif :dDans la liste déroulante Rôles d'organisation, sélectionnez Gestionnaire.

  15. Facultatif : cliquez sur Sauvegarder le rôle.

VI. Ajout de sous-réseaux à des clusters Kubernetes

Vous pouvez modifier le pool d'adresses IP portables publiques disponibles en ajoutant des sous-réseaux à votre cluster.

Dans IBM Bluemix Container Service, vous pouvez ajouter des adresses IP portables stables pour les services Kubernetes en adjoignant des sous-réseaux au cluster. Lorsque vous créez un cluster standard, IBM Bluemix Container Service lui alloue automatiquement un sous-réseau public portable et cinq adresses IP. Les adresses IP publiques portables sont statiques et ne changent pas lorsqu'un nœud d'agent, ou même le cluster, est retiré.

L'une des adresses IP publiques portables est utilisée pour le contrôleur Ingress que vous pouvez utiliser afin d'exposer plusieurs applications dans votre cluster via une route publique. Les quatre adresses IP publiques portables restantes peuvent être utilisées pour exposer au public des applications distinctes en créant un service d'équilibrage de charge.

VI-A. Demande de sous-réseaux supplémentaires pour votre cluster

Vous pouvez ajouter des adresses IP publiques portables stables au cluster en lui affectant des sous-réseaux.

Avant de commencer, vérifiez que vous pouvez accéder au portefeuille Bluemix Infrastructure (SoftLayer) depuis l'interface graphique Bluemix. Pour accéder au portefeuille, vous devez configurer ou utiliser un compte Bluemix Pay-As-You-Go (Paiement à la carte) existant.

  1. Dans la section Infrastructure du catalogue, sélectionnez Réseau.

  2. Sélectionnez Sous-réseau/IP et cliquez sur Créer.

  3. Dans le menu déroulant Sélectionner le type de sous-réseau à ajouter à ce compte, sélectionnez Public portable.

  4. Sélectionnez le nombre d'adresses IP que vous désirez ajouter à votre sous-réseau portable.

    Remarque : lorsque vous ajoutez des adresses IP publiques portables à votre sous-réseau, trois adresses IP sont utilisées pour l'opération réseau interne au cluster, de sorte que vous ne pouvez pas les utiliser pour votre contrôleur Ingress ou pour créer un service d'équilibrage de charge. Par exemple, si vous demandez huit adresses IP publiques portables, vous pouvez en utiliser cinq pour exposer vos applications au public.

  5. Sélectionnez le réseau local virtuel public vers lequel adresser les adresses IP publiques portables. Vous devez sélectionner le réseau local virtuel public auquel un nœud d'agent existant est connecté. Identifiez le réseau local virtuel public d'un nœud d'agent.

     
    Sélectionnez
    bx cs worker-get <ID_agent>
  6. Renseignez le questionnaire et cliquez sur Passer une commande.

    Remarque : les adresses IP publiques portables sont facturées sur une base mensuelle. Si vous décidez de supprimer des adresses IP publiques portables après les avoir créées, les frais pour le mois en cours vous seront néanmoins facturés, même si vous ne les avez utilisées qu'une partie du mois.

  7. Une fois le sous-réseau provisionné, rendez-le disponible pour votre cluster Kubernetes.
    1. Dans le tableau de bord Infrastructure, sélectionnez le sous-réseau que vous avez créé et notez son ID.

    2. Connectez-vous à IBM Bluemix Container Service.

       
      Sélectionnez
      bx cs init
    3. Recensez tous les clusters de votre compte et notez l'ID du cluster sur lequel vous désirez rendre disponible le sous-réseau.

       
      Sélectionnez
      Clusters bx cs
    4. Ajoutez le sous-réseau à votre cluster. Lorsque vous rendez disponible un sous-réseau pour un cluster, une mappe de configuration Kubernetes est créée pour vous et inclut toutes les adresses IP publiques portables disponibles que vous pouvez utiliser. Si aucun contrôleur Ingress n'existe pour votre cluster, une adresse IP publique portable est automatiquement utilisée pour créer le contrôleur Ingress. Toutes les autres peuvent être utilisées pour créer des services d'équilibrage de charge pour vos applications.

       
      Sélectionnez
      bx cs cluster-subnet-add <nom_ou_ID_cluster> <ID_sous-réseau>
  8. Vérifiez que l'ajout du sous-réseau à votre cluster a abouti. L'ID de cluster est indiqué dans la colonne Bound Cluster (Cluster lié).

     
    Sélectionnez
    bx cs subnets

VI-B. Ajout de sous-réseaux personnalisés et existants à des clusters Kubernetes

Vous pouvez ajouter des sous-réseaux publics portables existants à votre cluster Kubernetes.

Avant de commencer, ciblez votre interface de ligne de commande vers votre cluster.

Si vous disposez d'un sous-réseau existant dans votre portefeuille Bluemix Infrastructure (SoftLayer) avec des règles de pare-feu personnalisées ou des adresses IP disponibles que vous désirez utiliser, créez un cluster sans sous-réseau et rendez votre sous-réseau existant disponible au cluster lors de la mise à disposition du cluster.

  1. Identifiez le sous-réseau à utiliser. Notez l'ID du sous-réseau et l'ID du réseau local virtuel. Dans cet exemple, l'ID du sous-réseau est 807861 et l'ID du réseau local virtuel est 1901230.

     
    Sélectionnez
    bx cs subnets
     
    Sélectionnez
    Getting subnet list...
    OK
    ID        Network                                      Gateway                                   VLAN ID   Type      Bound Cluster
    553242    203.0.113.0/24                               10.87.15.00                               1565280   private
    807861    192.0.2.0/24                                 10.121.167.180                            1901230   public
  2. Vérifiez l'emplacement du réseau local virtuel. Dans cet exemple, son emplacement est dal10.

     
    Sélectionnez
    bx cs vlans dal10
     
    Sélectionnez
    Getting VLAN list...
    OK
    ID        Name                Number   Type      Router   
    1900403   vlan                    1391     private   bcr01a.dal10
    1901230   vlan                    1180     public   fcr02a.dal10
  3. Créez un cluster en utilisant l'emplacement et l'ID du réseau local virtuel que vous avez identifiés. Incluez l'indicateur --no-subnet pour empêcher la création automatique d'un nouveau sous-réseau d'adresses IP publiques portables.

     
    Sélectionnez
    bx cs cluster-create --location dal10 --machine-type u1c.2x4 --no-subnet --public-vlan 1901230 --private-vlan 1900403 --workers 3 --name my_cluster
  4. Vérifiez que la création du cluster a été demandée.

     
    Sélectionnez
    Clusters bx cs

    Remarque : la réservation des postes de nœud d'agent et la mise en place et la mise à disposition du cluster dans votre compte peuvent prendre jusqu'à quinze minutes.

    Lorsque la mise à disposition de votre cluster est finalisée, le statut du cluster passe à deployed (déployé).

     
    Sélectionnez
    Name         ID                                   State      Created          Workers   
    my_cluster   paf97e8843e29941b49c598f516de72101   deployed   20170201162433   3
  5. Vérifiez le statut des nœuds d'agent.

     
    Sélectionnez
    bx cs workers <cluster>

    Lorsque les nœuds d'agent sont prêts, l'état passe normal et leur statut indique Prêt. Lorsque le statut du nœud indique Ready (Prêt), vous pouvez accéder au cluster.

     
    Sélectionnez
    ID                                                  Public IP        Private IP     Machine Type   State      Status  
    prod-dal10-pa8dfcc5223804439c87489886dbbc9c07-w1   169.47.223.113   10.171.42.93   free           normal    Prêt
  6. Ajoutez le sous-réseau à votre cluster en spécifiant l'ID du sous-réseau. Lorsque vous rendez disponible un sous-réseau pour un cluster, une mappe de configuration Kubernetes est créée pour vous et inclut toutes les adresses IP publiques portables disponibles que vous pouvez utiliser. Si aucun contrôleur Ingress n'existe encore pour votre cluster, une adresse IP publique portable est automatiquement utilisée pour créer le contrôleur Ingress. Toutes les autres peuvent être utilisées pour créer des services d'équilibrage de charge pour vos applications.

     
    Sélectionnez
    bx cs cluster-subnet-add mycluster 807861

VII. Utilisation de partages de fichiers NFS existants avec Kubernetes dans IBM Bluemix Container Service

Si vous disposez déjà de partages de fichiers NFS existants dans votre compte Bluemix Infrastructure (SoftLayer) et désirez les utiliser avec Kubernetes, créez alors des volumes persistants sur votre partage de fichiers NFS existant. Un volume persistant est un élément matériel réel qui fait office de ressource de cluster Kubernetes et peut être consommé par l'utilisateur du cluster.

Avant de commencer, vérifiez que vous disposez d'un partage de fichiers NFS existant que vous pouvez utiliser pour créer votre volume persistant.

Image non disponible

Kubernetes fait une distinction entre les volumes persistants qui représentent le matériel effectif et les réservations de volume persistant qui sont des demandes de stockage déclenchées habituellement par l'utilisateur du cluster. Si vous désirez permettre l'utilisation de partage de fichiers NLS existants avec Kubernetes, vous devez créer des volumes persistants d'une certaine taille et avec un mode d'accès déterminé, qui soient conformes à la spécification de volume persistant. Si le volume persistant et la réservation de volume persistant correspondent, ils sont liés l'un à l'autre. Seules les réservations de volume persistant liées peuvent être utilisées par l'utilisateur du cluster pour monter le volume sur une nacelle. Cette procédure est dénommée provisionnement statique de stockage persistant.

Remarque : celui-ci ne s'applique qu'aux partages de fichiers NFS existants. Si vous ne disposez pas de partages de fichiers NFS existants, les utilisateurs du cluster peuvent utiliser la procédure de provisionnement dynamique pour ajouter des volumes persistants.

Pour créer un volume persistant et une réservation correspondante, procédez comme suit.

  1. Dans votre compte Bluemix Infrastructure (SoftLayer), recherchez l'ID et le chemin du partage NFS où vous désirez créer votre objet de volume persistant.
    1. Connectez-vous à votre compte Bluemix Infrastructure (SoftLayer).

    2. Cliquez sur Stockage.

    3. Cliquez sur Stockage de fichiers et notez l'ID et le chemin du partage de fichiers NFS que vous désirez utiliser.

  2. Ouvrez l'éditeur de votre choix.

  3. Créez un script de configuration de stockage pour votre volume persistant.

     
    Sélectionnez
    apiVersion: v1
    kind: PersistentVolume
    metadata:
     name: mypv
    spec:
     capacity:
       storage: "20Gi"
     accessModes:
       - ReadWriteMany
     nfs:
       server: "nfslon0410b-fz.service.softlayer.com"
       path: "/IBM01SEV8491247_0908"
    Description des composants du script de configuration du stockage
    name Entrez le nom de l'objet de volume persistant que vous désirez créer.
    stockage Entrez la taille de stockage du partage de fichiers NFS existant. Cette taille doit être indiquée en gigaoctets, par exemple 20Gi (20 Go) ou 1000Gi (1 To), et correspondre à celle du partage de fichiers existant.
    accessMode

    Les modes d'accès définissent la manière dont une réservation de volume persistant peut être montée sur un nœud d'agent.

    • ReadWriteOnce (RWO) : le volume persistant ne peut être monté sur des nacelles que dans un nœud d'agent unique. Les nacelles montées sur ce volume persistant peuvent lire et écrire sur le volume.

    • ReadOnlyMany (ROX) : le volume persistant peut être monté sur des nacelles hébergées sur plusieurs nœuds d'agent. Les nacelles montées sur ce volume persistant peuvent uniquement lire les données du volume.

    • ReadWriteMany (RWX) : le volume persistant peut être monté sur des nacelles hébergées sur plusieurs nœuds d'agent. Les nacelles montées sur ce volume persistant peuvent lire et écrire sur le volume.

    server Entrez l'ID du serveur du partage de fichiers NFS.
    path Entrez le chemin du partage de fichiers NFS où vous désirez créer l'objet de volume persistant.
  4. Créez le volume persistant dans votre cluster.

     
    Sélectionnez
    kubectl apply -f <chemin_yaml>

    Exemple

     
    Sélectionnez
    kubectl apply -f deploy/kube-config/pv.yaml
  5. Vérifiez que le volume persistant a été créé.

     
    Sélectionnez
    kubectl get pv
  6. Créez un autre script de configuration pour créer votre réservation de volume persistant. Pour que la réservation de volume persistant corresponde à l'objet de volume persistant créé auparavant, vous devez sélectionner la même valeur pour storage et pour accessMode. La zone storage-class doit être vide. Si l'une de ces zones ne correspond pas au volume persistant, un nouveau volume persistant est créé automatiquement à la place.

     
    Sélectionnez
    kind: PersistentVolumeClaim
    apiVersion: v1
    metadata:
     name: mypvc
     annotations:
       volume.beta.kubernetes.io/storage-class: ""
    spec:
     accessModes:
       - ReadWriteMany
     resources:
       requests:
         storage: "20Gi"
  7. Créez votre réservation de volume persistant.

     
    Sélectionnez
    kubectl apply -f deploy/kube-config/mypvc.yaml
  8. Vérifiez que votre réservation de volume persistant a été créée et liée à l'objet de volume persistant. Ce processus peut prendre quelques minutes.

     
    Sélectionnez
    kubectl describe pvc mypvc

    Votre sortie sera similaire à ceci.

     
    Sélectionnez
    Name:  mypvc
    Namespace:              default
    StorageClass: ""
    Status:  Bound
    Volume:  pvc-0d787071-3a67-11e7-aafc-eef80dd2dea2
    Labels:  <none>
    Capacity: 20Gi
    Access Modes: RWX
    Events:
      FirstSeen LastSeen Count From   SubObjectPath Type  Reason   Message
      --------- -------- ----- ----        ------------- -------- ------   -------
      3m  3m  1 {ibm.io/ibmc-file 31898035-3011-11e7-a6a4-7a08779efd33 }   Normal  Provisioning  External provisioner is provisioning volume for claim "default/my-persistent-volume-claim"
      3m  1m  10 {persistentvolume-controller }       Normal  ExternalProvisioning cannot find provisioner "ibm.io/ibmc-file", expecting that a volume for the claim is provisioned either manually or via external software
      1m  1m  1 {ibm.io/ibmc-file 31898035-3011-11e7-a6a4-7a08779efd33 }   Normal  ProvisioningSucceeded Successfully provisioned volume pvc-0d787071-3a67-11e7-aafc-eef80dd2dea2

Vous avez créé correctement un objet de stockage persistant et l'avez lié à une réclamation de volume persistant. Les utilisateurs du cluster peuvent à présent monter la réservation de volume persistant sur leur nacelle et lancer une lecture et écriture sur l'objet de volume persistant.

VIII. Visualisation de ressources de cluster Kubernetes via Weave Scope et IBM Bluemix Container Service

Weave Scope produit un diagramme visuel de vos ressources dans un cluster Kubernetes, notamment des services, nacelles, conteneurs, processus, nœuds, et autres. Weave Scope fournit des métriques interactives sur l'utilisation de l'UC et de la mémoire, ainsi que des outils pour suivi et exécution dans un conteneur.

Avant de commencer

  • Prenez soin de ne pas exposer les informations de votre cluster sur l'Internet public. Procédez comme suit pour déployer de manière sécurisée Weave Scope et y accéder en local depuis un navigateur Web.

  • Si ne n'est déjà fait, créez un cluster standard. Weave Scope peut imposer une charge lourde sur l'UC, particulièrement pour les applications. Utilisez Weave Scope avec des clusters standard plus volumineux, et non pas avec des clusters lite.

  • Ciblez avec votre interface CLI votre cluster pour exécuter des commandes kubectl.

Pour utiliser Weave Scope avec un cluster, procédez comme suit.

  1. Déployez dans le cluster l'un des fichiers de configuration d'autorisations RBAC fournis.

    Pour activer les droits d'accès en lecture / écriture, exécutez la commande suivante :

     
    Sélectionnez
    kubectl apply -f "https://raw.githubusercontent.com/IBM-Bluemix/kube-samples/master/weave-scope/weave-scope-rbac.yaml"

    Pour activer les droits d'accès en lecture seule, exécutez la commande suivante :

     
    Sélectionnez
    kubectl apply -f "https://raw.githubusercontent.com/IBM-Bluemix/kube-samples/master/weave-scope/weave-scope-rbac-readonly.yaml"

    Sortie :

     
    Sélectionnez
    clusterrole "weave-scope-mgr" created
    clusterrolebinding "weave-scope-mgr-role-binding" created
  2. Déployez le service Weave Scope, lequel est accessible en mode privé via l'adresse IP du cluster.

     
    Sélectionnez
    kubectl apply --namespace kube-system -f "https://cloud.weave.works/k8s/scope.yaml?k8s-version=$(kubectl version | base64 | tr -d '\n')"

    Sortie :

     
    Sélectionnez
    serviceaccount "weave-scope" created
    deployment "weave-scope-app" created
    service "weave-scope-app" created
    daemonset "weave-scope-agent" created
  3. Exécutez une commande d'acheminement de port pour accéder au service sur votre ordinateur. À présent que Weave Scope est configuré avec le cluster, pour accéder à Weave Scope la prochaine fois, vous pouvez lancer cette commande d'acheminement de port sans avoir à exécuter à nouveau la procédure de configuration précédente.

     
    Sélectionnez
    kubectl port-forward -n kube-system "$(kubectl get -n kube-system pod --selector=weave-scope-component=app -o jsonpath='{.items..metadata.name}')" 4040

    Sortie :

     
    Sélectionnez
    Forwarding from 127.0.0.1:4040 -> 4040
    Forwarding from [::1]:4040 -> 4040
    Gestion de la connexion pour le port 4040
  4. Ouvrez votre navigateur Web sur l'adresse http://localhost:4040. Choisissez d'afficher des diagrammes de topologie ou bien des tableaux des ressources Kubernetes dans le cluster.

    Image non disponible

Pour supprimer les composants Weave Scope, voir Suppression de ressources Kubernetes dans des clusters avec IBM Bluemix Container Service. Vous pouvez également en apprendre plus sur les fonctions Weave Scope.

IX. Suppression de clusters Kubernetes de IBM Bluemix Container Service

Vous pouvez supprimer un cluster Kubernetes en utilisant l'interface CLI ou l'interface graphique.

Lorsque vous avez fini d'utiliser un cluster, vous pouvez le supprimer afin qu'il ne consomme plus de ressources. Lorsque vous supprimez un cluster, vous supprimez également les ressources sur le cluster, notamment les conteneurs, les nacelles, les services liés et les valeurs confidentielles.

  • Dans l'interface graphique Bluemix
    1. Sélectionnez votre cluster et cliquez sur Supprimer dans le menu Plus d'actions….

  • Depuis l'interface CLI de Bluemix

Lorsque vous supprimez un cluster, les sous-réseaux portables publics et privés ne sont pas supprimés automatiquement. Les sous-réseaux sont utilisés pour affecter des adresses IP portables publiques aux services d'équilibrage de charge ou à votre contrôleur Ingress. Vous pouvez supprimer manuellement ces sous-réseaux ou les réutiliser dans un nouveau cluster.

Note de la rédaction Developpez.com

Tous nos remerciements à IBM pour l'autorisation de publication de ce tutoriel.

Nos remerciements également à Winjerome pour la mise au gabarit Developpez.com et Claude Leloup pour la relecture orthographique.

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+   

  

Copyright © 2017 IBM Docs Bluemix. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.