これは article がkubernetesのポッドにホストエイリアスを割り当てる方法を説明していますが、ポッド自体ではなくデプロイメントにそれを行う方法はありますか?
ホスト名解決の最初の行を提供するためにkubernetesにホストエントリを追加する他の提案(8.8.8.8のようなサーバーをチェックする前)も回答として歓迎されます。
はい、可能です。ポッド仕様の場合と同じアドバイスに従うだけでよいのですが、ポッドの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
hostAliases
はPodSpec
の一部です。これは、Deploymentのspec.template.spec
の下のDeploymentにもあるため、Deploymentsポッド仕様テンプレートで同じように簡単に使用できます。ポッドの場合と同じように。