首页 > 其他分享 >5种容器内指定特定域名解析结果的方式

5种容器内指定特定域名解析结果的方式

时间:2023-12-15 15:11:06浏览次数:37  
标签:容器 busybox etc 域名解析 指定 250.250 hosts DNS Coredns

本文分享自华为云社区《容器内指定特定域名解析结果的几种方式》,作者:张俭。

在本篇文章中,我们将探讨如何在容器内指定特定域名解析结果的几种方式。为了方便演示,首先我们创建一个演示用的Deployment配置文件。

apiVersion: apps/v1
kind: Deployment
metadata:
  name: busybox-deployment
  labels:
    app: busybox
spec:
  replicas: 1
  selector:
    matchLabels:
      app: busybox
  template:
    metadata:
      labels:
        app: busybox
    spec:
      containers:
      - name: busybox
        image: busybox
        args:
        - /bin/sh
        - -c
        - "while true; do echo Hello, Kubernetes!; sleep 10;done"

这个deployment会创建1个busybox的pod,容器每隔10s会打印“Hello, Kubernetes!”到控制台

TL;DR

方案修改级别是否推荐备注
修改/etc/hosts pod  
添加HostAliases记录 pod/deploy/statefulset  
修改Coredns配置 整个kubernetes集群  
自定义DNS策略 pod/deploy/statefulset 视情况而定 如需对接三方的DNS服务器,推荐采用
使用三方DNS插件 整个kubernetes集群 不推荐,Coredns为业内主流

修改/etc/hosts

修改/etc/hosts是最传统的方式,直接在容器内修改相应的文件来实现域名解析,在Pod级别生效。由于其可维护性较差(每次pod发生重启都需要手动修改),不推荐在生产环境使用。

例如,我们可以在/etc/hosts里面添加这样一条记录

250.250.250.250 four-250
/ # ping four-250
PING four-250 (250.250.250.250): 56 data bytes

添加HostAliases记录

HostAliases是kubernetes中Pod配置的一个字段,它提供了Pod内容器的/etc/hosts文件的附加记录。这在某些情况下非常有用,特别是当你想要覆盖某个主机名的解析结果,或者提供网络中没有的主机名解析时。

这个可以在Pod、Replica、Deployment、StatefulSet的级别修改,维护性稍强。举个

标签:容器,busybox,etc,域名解析,指定,250.250,hosts,DNS,Coredns
From: https://www.cnblogs.com/huaweiyun/p/17903421.html

相关文章

  • 容器网络Cilium:DualStack双栈特性分析
    本文分享自华为云社区《容器网络Cilium入门系列之DualStack双栈特性分析》,作者:可以交个朋友。一、关于IPV6/IPV4双栈目前很多公司开始将自己的业务由ipv4切换成ipv6,或者ipv4,ipv6共存。ipv4ipv6共存(DualStack)有两种方式:一个网卡上有两个IP地址,一个是ipv4,一个是ipv6。......
  • Docker查看容器的启动命令
    安装第三方包:get_command_4_run_containerdockerpullcucker/get_command_4_run_container执行命令:dockerrun--rm-v/var/run/docker.sock:/var/run/docker.sockcucker/get_command_4_run_container[容器名称]/[容器ID]可以将其封装为一个别名echo"aliasget_run_comm......
  • Spring-第二章:IoC容器
    二、IoC容器1、IoCIoc必须要添加的四个包2、DI3、第一个程序4、IoC容器的类型5、数据装配toString方法不是构造方法不同bean之间的引用使用refArray:数组值可重复Set:集合值不可重复Map:键值对6、bean生命周期6.1练习......
  • 关于找不到指定的模块,异常来自HRESULT:0x8007007E的解决方法
    原文链接:https://www.cnblogs.com/ReBack2010/p/3713851.html上午从公司前辈那里拷贝到的ASP.NET代码,在自己机器上部署的时候发现问题,直接报错,找不到指定的模块,异常来自HRESULT:0x8007007E。并且一大堆警告。在网上百度很多解决方法,归纳如下:1、缺少DLL文件,我用depends打开我的B......
  • docker-挂载数据卷实现不重启Nginx容器展示不同的网页内容
    dockerpullnignxdockervolumecreatetest_volumesdockerrun-d-p80:80-hnginx--namenginx--mounttype=bind,source=/var/lib/docker/volumes/test_volumes,destination=/var/nginx/htmlnginx#-hnginx是必须的,不然就要去更改容器里面的Nginx.conf配置项容器......
  • nginx配置指定路径访问白名单
    444状态码说明444是Nginx中特殊的状态码,代表的含义是:Nginx关闭连接而不向客户端发送响应,可以用来抵挡ddos攻击配置#usernobody;#worker_processes1;#error_loglogs/error.log;#error_loglogs/error.lognotice;#error_loglogs/error.loginfo;#pidl......
  • docker和docker-compose生产的容器,不在同一个网段,解决方式
    在实际项目中,使用dockerrunxxXx 和docker-composeup-d不在同一个网段,一个是默认是172.17.x.x, 另一个是172.19.x.x。为解决这个问题需要自定义一个网络,我命名为“my-bridge”首先熟悉几条命令:dockernetworkls或者dockernetworklist查看当前的docker网络的内容、容器的......
  • Docker容器中配置和启用Java Flight Recorder(JFR)
    1.简介和背景在Java应用程序性能调优中,JavaFlightRecorder(JFR)是一个非常强大的工具。它能够实时收集Java应用程序的运行数据,提供有关性能问题的深入见解。在Docker容器中使用JFR,可以更轻松地管理和监控应用程序性能。2.JFR的基本概念和工作原理JFR是Java的一项特性,它通过事件记......
  • Oracle删除指定用户下所有对象
     --.sql脚本--唯一注意的是下面的d:\dropuserobj.sql为操作的.sql;--用于删除当前用户的所有对象--usefordropallobjectsincurrentuser;setheadingoff;setfeedbackoff;spoold:\dropuserobj.sql;prompt--删除约束条件select'altertable'||table_name||'......
  • Linux实现指定用户sftp传输,静止ssh登录
    1、环境名称ipserver192.168.1.1client192.168.1.22、服务器创建repl用户useradd-m-d/home/repl-s/usr/sbin/nologinrepl3、修改密码passwdrepl4、ssh配置#该行不注释Subsystemsftp/usr/libexec/openssh/sftp-server#增加一下行......