前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Kubernetes在pod中配置hosts解析域名

Kubernetes在pod中配置hosts解析域名

原创
作者头像
聂伟星
发布2020-09-11 16:53:04
6.4K0
发布2020-09-11 16:53:04
举报

当 DNS 配置以及其它选项不合理的时候,通过向 Pod 的 /etc/hosts 文件中添加条目,可以在 Pod 级别覆盖对主机名的解析。在 1.7 版本后,用户可以通过 PodSpec 的 HostAliases 字段来添加这些自定义的条目。

建议通过使用 HostAliases 来进行修改,因为该文件由 Kubelet 管理,并且可以在 Pod 创建/重启过程中被重写

因为TKE的界面暂时不支持HostAliases 配置,所有这个字段的配置只能通过控制台修改yaml或者kubectl命令修改yaml来配置

代码语言:javascript
复制
apiVersion: apps/v1beta2
kind: Deployment
metadata:
  annotations:
    deployment.kubernetes.io/revision: "2"
  creationTimestamp: "2020-09-11T08:35:00Z"
  generation: 2
  labels:
    k8s-app: nginx-hosts-alis
    qcloud-app: nginx-hosts-alis
  name: nginx-hosts-alis
  namespace: test
  resourceVersion: "12673987137"
  selfLink: /apis/apps/v1beta2/namespaces/test/deployments/nginx-hosts-alis
  uid: 61493e8e-b0c9-4b5d-a031-6ea2799e9de8
spec:
  progressDeadlineSeconds: 600
  replicas: 1
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      k8s-app: nginx-hosts-alis
      qcloud-app: nginx-hosts-alis
  strategy:
    rollingUpdate:
      maxSurge: 1
      maxUnavailable: 0
    type: RollingUpdate
  template:
    metadata:
      creationTimestamp: null
      labels:
        k8s-app: nginx-hosts-alis
        qcloud-app: nginx-hosts-alis
    spec:
      containers:
      - image: nginx
        imagePullPolicy: Always
        name: nginx-hosts-alis
        resources:
          limits:
            cpu: 500m
            memory: 1Gi
          requests:
            cpu: 250m
            memory: 256Mi
        securityContext:
          privileged: false
        terminationMessagePath: /dev/termination-log
        terminationMessagePolicy: File
      dnsPolicy: ClusterFirst
      hostAliases:
      - hostnames:
        - foo.local
        - bar.local
        ip: 127.0.0.1
      - hostnames:
        - foo.remote
        - bar.remote
        ip: 10.1.2.3
      restartPolicy: Always
      schedulerName: default-scheduler
      securityContext: {}
      terminationGracePeriodSeconds: 30

yaml修改好之后,我们可以进入pod内进行验证,查看下pod的/etc/hosts文件是否有加上配置的域名解析

代码语言:javascript
复制
root@nginx-hosts-alis-5db8d7c54c-gf6km:/# cat /etc/hosts
# Kubernetes-managed hosts file.
127.0.0.1       localhost
::1     localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
fe00::0 ip6-mcastprefix
fe00::1 ip6-allnodes
fe00::2 ip6-allrouters
172.16.2.188    nginx-hosts-alis-5db8d7c54c-gf6km

# Entries added by HostAliases.
127.0.0.1       foo.local       bar.local
10.1.2.3        foo.remote      bar.remote

从上面的结果看,这里域名解析已经加入到对应的pod中。

注意事项:这里修改yaml需要注意字段的缩进,HostAliases是在.spec.hostAliases这个层级,和containers是同级的。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档