web-dev-qa-db-fra.com

Les alias hôtes peuvent-ils être affectés à des déploiements à Kubettes? Si c'est le cas, comment?

Ceci Article Décrit comment attribuer des alias d'hôte aux gousses de Kubettes, est-ce qu'il y a de toute façon pour le faire pour un déploiement et non pour une pod en tant que telle?

Toute autre suggestion pour ajouter des entrées d'hôte à Kubettes pour fournir une première ligne de résolution de noms d'hôte (avant de vérifier un serveur comme 8.8.8.8) serait également accueillie comme une réponse.

3
Ulukai

Oui c'est possible. Tout ce que vous avez à faire est de suivre le même conseil que vous receviez pour une spécification de POD, mais plutôt que de l'appliquer à un fichier YAML pour les pods, vous l'appliquez à un fichier YAML pour un déploiement. Par exemple, si vous exécutez déjà un déploiement, vous pouvez modifier le déploiement actuel en émettant la commande suivante.

$ kubectl modifier déploiement de déploiement_name_name

Cela vous permettra d'accéder au mode d'édition du déploiement en cours d'exécution au format YAML.

Vous devez ajouter la section "Hostaliases" dans le champ Modèle de déploiement: SPEC "qui vous permet de configurer le modèle de la gousse/des conteneurs. Donc, pour démontrer cela visuellement, voici l'YAML pour un déploiement que je suis en cours d'exécution dans mon projet que je peux éditer en exécutant la commande que j'ai mentionnée ci-dessus:

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  annotations:
    deployment.kubernetes.io/revision: "6"
  creationTimestamp: 2018-01-30T14:42:48Z
  generation: 7
  labels:
    app: nginx-site-app
  name: nginx-site
  namespace: default
  resourceVersion: "778922"
  selfLink: /apis/extensions/v1beta1/namespaces/default/deployments/nginx-site
  uid: dc4535333d-05cb-11e8-b5c0-7878748e0178
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nginx-site-app
  strategy:
    rollingUpdate:
      maxSurge: 1
      maxUnavailable: 1
    type: RollingUpdate
  template:
    metadata:
      creationTimestamp: null
      labels:
        app: nginx-site-app
    spec:
      containers:
      - image: gcr.io/myprojectid/tuneup-nginx:latest
        imagePullPolicy: Always
        name: nginx-container
        ports:
        - containerPort: 80
          protocol: TCP
        resources: {}
        terminationMessagePath: /dev/termination-log
        terminationMessagePolicy: File
      dnsPolicy: ClusterFirst
      restartPolicy: Always
      schedulerName: default-scheduler
      securityContext: {}
      terminationGracePeriodSeconds: 30
status:
  availableReplicas: 1
  conditions:
  - lastTransitionTime: 2018-01-30T14:55:28Z
    lastUpdateTime: 2018-01-30T14:55:28Z
    message: Deployment has minimum availability.
    reason: MinimumReplicasAvailable
    status: "True"
    type: Available
  observedGeneration: 7
  readyReplicas: 1
  replicas: 1
  updatedReplicas: 1

Si je souhaite ajouter des "Hostaliases" aux pods de ce déploiement, je dois ajouter ces informations à la section SPEC de modèle de POD, comme illustré ci-dessous (remarquez qu'il est conforme aux "conteneurs" (*** IMPORTANT - il convient de noter que Il existe deux sections "SPEC" de mon fichier, je ne souhaite pas l'ajouter à la première section SPEC, mais plutôt la section Spécification du modèle qui définit le modèle de POD):

     spec:
       containers:
       - image: gcr.io/development-project-192309/tuneup-nginx:latest
         imagePullPolicy: Always
         name: nginx-container
         ports:
         - containerPort: 80
           protocol: TCP
       hostAliases:
       - ip: 127.0.0.1
         hostnames:
         - myadded.examplehostname
11
neilH

hostAliases fait partie du PodSpec, ce que vous trouvez également dans le déploiement sous spec.template.spec Dans votre déploiement afin que vous puissiez facilement l'utiliser de la même manière dans votre modèle de spécification POD de déploiement.

3