Internal-Dns
可以將主機別名分配給 Kubernetes 中的部署嗎?如果是這樣,怎麼做?
本文描述瞭如何在 kubernetes 中為 pod 分配主機別名,無論如何都可以為部署而不是 pod 這樣做嗎?
任何其他在 kubernetes 中添加主機條目以提供第一行主機名解析的建議(在檢查像 8.8.8.8 這樣的伺服器之前)也將受到歡迎作為答案。
是的,這是可能的。您需要做的就是遵循與 pod 規範相同的建議,但不是將其應用於 pod 的 YAML 文件,而是將其應用於 YAML 文件以進行部署。例如,如果您已經在執行部署,則可以通過發出以下命令來編輯目前部署。
$ kubectl 編輯部署 DEPLOYMENT_NAME
這將允許您以 YAML 格式訪問目前正在執行的部署的編輯模式。
您需要在部署的“模板:規範”欄位中添加“hostAliases”部分,它允許您為 pod/容器配置模板。因此,為了直覺地展示這一點,這裡是我在項目中執行的部署的 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”添加到此部署中的 pod,我需要將此資訊添加到 pod 模板規範部分,如下所示(注意它與“容器”一致(***重要 - 值得注意的是我的文件中有兩個“規範”部分-我不想將其添加到第一個規範部分,而是定義 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