如何将自定义主机条目添加到kubernetes Pods?
我的应用程序通过主机名与某些服务通信。 当我的应用程序作为docker容器运行时,我用hostnames添加到hostmachine的/ etc / hosts并使用--net=host
来运行容器。
现在我正在kubernetes集群中运行我的容器。 我想知道如何通过yaml
将/ etc / hosts条目添加到吊舱。
我正在使用kubernetes v1.5.3。
主机文件会给你带来麻烦,但如果你真的需要的话,你可以使用一个configuration图。
像这样添加一个configuration图
apiVersion: v1 kind: ConfigMap metadata: name: my-app-hosts-file-configmap data: hosts: |- 192.168.0.1 gateway 127.0.0.1 localhost
然后把它安装在你的吊舱内,像这样:
volumeMounts: - name: my-app-hosts-file mountPath: /etc/ volumes: - name: my-app-hosts-file configMap: name: my-app-hosts-file-configmap
我自己还没有需要POD中的主机条目,但是理论上会说你应该把这些条目添加到你的容器的dockerfile
中,而不是作为Pod yaml的一部分 – 尽pipe这可以通过command
参数,如本答案中所述 。
原因是Pod在逻辑上是一个缠绕容器的层,不应该关心在容器中运行的应用程序的细节。
这工作,也看起来更简单:
kind: Service apiVersion: v1 metadata: name: {HOST_NAME} spec: ports: - protocol: TCP port: {PORT} targetPort: {PORT} type: ExternalName externalName: {EXTERNAL_IP}
现在您可以直接使用该容器中的HOST_NAME
来访问外部机器。