Назад | Перейти на главную страницу

Можно ли назначить псевдонимы хоста развертываниям в Kubernetes? Если да, то как?

это статья описывает, как назначать псевдонимы хоста модулям в кубернетах, есть ли способ сделать это для развертывания, а не для модуля как такового?

Любые другие предложения по добавлению записей хоста в kubernetes, чтобы предоставить первую строку разрешения имени хоста (перед проверкой сервера, такого как 8.8.8.8), также будут приветствоваться в качестве ответа.

Да, это возможно. Все, что вам нужно сделать, это следовать тому же совету, что и для спецификации модуля, но вместо того, чтобы применять его к файлу YAML для модулей, вы применяете его к файлу YAML для развертывания. Например, если вы уже запускаете развертывание, вы можете изменить текущее развертывание, выполнив следующую команду.

$ kubectl изменить развертывание DEPLOYMENT_NAME

Это позволит вам получить доступ к режиму редактирования текущего развертывания в формате YAML.

Вам необходимо добавить раздел «hostAliases» в поле «template: spec» развертываний, которое позволяет настроить шаблон для модуля / контейнера. Итак, чтобы продемонстрировать это наглядно, вот YAML для развертывания, которое я запускаю в своем проекте, который я могу редактировать, выполнив команду, упомянутую выше:

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

Если я хочу добавить «hostAliases» к модулям в рамках этого развертывания, мне нужно добавить эту информацию в раздел спецификации шаблона модуля, как показано ниже (обратите внимание, что это соответствует «контейнерам» (*** важно - стоит отметить, что в моем файле есть два раздела спецификации - я не хочу добавлять его в первый раздел спецификации, а скорее в раздел спецификации шаблона, который определяет шаблон модуля):

     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

hostAliases является частью PodSpec, что вы также найдете в разделе «Развертывание» в spec.template.spec в вашем развертывании, чтобы вы могли легко использовать его в шаблоне спецификации Deployments Pod так же, как и для самого Pod.