web-dev-qa-db-ja.com

ホストエイリアスをKubernetesのデプロイメントに割り当てることはできますか?もしそうなら、どうですか?

これは article がkubernetesのポッドにホストエイリアスを割り当てる方法を説明していますが、ポッド自体ではなくデプロイメントにそれを行う方法はありますか?

ホスト名解決の最初の行を提供するためにkubernetesにホストエントリを追加する他の提案(8.8.8.8のようなサーバーをチェックする前)も回答として歓迎されます。

3
Ulukai

はい、可能です。ポッド仕様の場合と同じアドバイスに従うだけでよいのですが、ポッドのYAMLファイルに適用するのではなく、デプロイメントのYAMLファイルに適用します。たとえば、すでにデプロイメントを実行している場合は、次のコマンドを発行して現在のデプロイメントを編集できます。

$ kubectl editデプロイメントDEPLOYMENT_NAMEを編集

これにより、現在実行中のデプロイメントの編集モードにYAML形式でアクセスできます。

デプロイの「テンプレート:仕様」フィールドに「hostAliases」セクションを追加する必要があります。これにより、ポッド/コンテナのテンプレートを構成できます。これを視覚的に示すために、プロジェクトで実行しているデプロイメントの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」を追加する場合、以下に示すように、この情報をポッドテンプレートの仕様セクションに追加する必要があります(「コンテナー」に沿っていることに注意してください(***重要-注目に値します)私のファイルには2つの「spec」セクションがあります。最初のspecセクションに追加したくありませんが、ポッドテンプレートを定義するテンプレートのspecセクションに追加します)。

     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

hostAliasesPodSpecの一部です。これは、Deploymentのspec.template.specの下のDeploymentにもあるため、Deploymentsポッド仕様テンプレートで同じように簡単に使用できます。ポッドの場合と同じように。