coredns部署

2023-05-16

目录

一、获取coredns.yaml文件

二、修改coredns.yaml文件

三、基于yaml文件启动coredns服务


coredns域名解析流程:

举例:当pod1应用想通过dns域名的方式访问pod2则首先根据容器中/etc/resolv.conf内容配置的namserver地址,向dns服务器发出请求,由service将请求抛出转发给kube-dns service,由它进行调度后端的core-dns进行域名解析。解析后请求给kubernetes service进行调度后端etcd数据库返回数据,pod1得到数据后由core-dns转发目的pod2地址解析,最终pod1请求得到pod2

coredns是不负责存储域名解析记录的,是通过apiserver,也就是下面的截图的kubernetes

它是K8S内部的,集群内的各pod与K8S的API server联系都是通过这个10.100.0.1地址联系的,这个地址是K8S集群内API server的服务地址

一、获取coredns.yaml文件

 获取coredns的yaml文件两种方式:1、gitlhup官网下载;2、本地模板文件修改

1、gitlab项目下载:

1.1、进入官网 https://github.com,搜索coredns,跳转出页面点击coredns/deployment

1.2、点击kubernetes

 

1.3、点击coredns.yaml.sed,就可以看见文件内容了,下载下来进行修改即可

2、cp本地模板文件进行修改

root@k8s-deploy:~# cd kubernetes/cluster/addons/dns
root@k8s-deploy:~/kubernetes/cluster/addons/dns# ls
coredns  kube-dns  nodelocaldns  OWNERS
root@k8s-deploy:~/kubernetes/cluster/addons/dns# cd coredns/
root@k8s-deploy:~/kubernetes/cluster/addons/dns/coredns# ll
total 44
drwxr-xr-x 2 root root 4096 Jul 13 14:48 ./
drwxr-xr-x 5 root root 4096 Jul 13 14:48 ../
-rw-r--r-- 1 root root 5060 Jul 13 14:48 coredns.yaml.base
-rw-r--r-- 1 root root 5110 Jul 13 14:48 coredns.yaml.in
-rw-r--r-- 1 root root 5112 Jul 13 14:48 coredns.yaml.sed
-rw-r--r-- 1 root root 1075 Jul 13 14:48 Makefile
-rw-r--r-- 1 root root  344 Jul 13 14:48 transforms2salt.sed
-rw-r--r-- 1 root root  287 Jul 13 14:48 transforms2sed.sed
root@k8s-deploy:~/kubernetes/cluster/addons/dns/coredns#

这些coredns的yaml文件都可以作为模板文件进行修改,下面使用coredns.yaml.base为模板文件

# mkdir /root/yaml/20220724 -p

# cp /root/kubernetes/cluster/addons/dns/coredns/coredns.yaml.base /root/yaml/20220724/coredns.yaml

 查看下k8s集群hosts文件中定义的集群域名,待会修改coredns文件需要用

root@k8s-deploy:~/yaml/20220724# cat /etc/kubeasz/clusters/k8s-cluster1/hosts | grep "CLUSTER_DNS_DOMAIN"
CLUSTER_DNS_DOMAIN="cluster.local"

二、修改coredns.yaml文件

1、把域名修改成自己hosts文件中定义的域名

2、分配资源

分配256M内存 cpu200毫核,这里自己测试使用分配少一点资源即可,真正生产环境memory是4G,cpu是2核

 3、 配置service的ip

 创建一个pod,进入pod内拿到service_ip

root@k8s-deploy:~/yaml/20220724# kubectl create ns  myserver
namespace/myserver created
root@k8s-deploy:~/yaml/20220724# kubectl run test1 --image=centos:7.9.2009 sleep 100000 -n myserver
pod/test1 created
root@k8s-deploy:~/yaml/20220724# kubectl get pod -n myserver
NAME    READY   STATUS    RESTARTS   AGE
test1   1/1     Running   0          59s

 

3.1、进入容器查看下service的IP

该地址根据自己实际情况修改,我的service_ip是10.100.0.2

4、修改镜像

 如果可以连外网,也可以不修改,使用默认的镜像,如果无法连接外网,提前下载好镜像上传至harbor

4.1下载coredns镜像

到docker官方镜像仓库搜索coredns

 点击tags,找到自己想要的版本

4.2、我这里下载 coredns:1.9.3版本,并上传到harbor

root@k8s-deploy:~/yaml/20220724# docker pull coredns/coredns:1.9.3
root@k8s-deploy:~/yaml/20220724# docker tag coredns/coredns:1.9.3 harbor.magedu.net/baseimages/coredns:1.9.3
root@k8s-deploy:~/yaml/20220724# docker push harbor.magedu.net/baseimages/coredns:1.9.3
The push refers to repository [harbor.magedu.net/baseimages/coredns]
df1818f16337: Pushed
256bc5c338a6: Pushed
1.9.3: digest: sha256:bdb36ee882c13135669cfc2bb91c808a33926ad1a411fee07bd2dc344bb8f782 size: 739

4.3、修改配置文件把镜像换成本地harbor镜像

三、基于yaml文件启动coredns服务

1、启动pod

root@k8s-deploy:~/yaml/20220724# kubectl apply -f coredns.yaml

2、 查看地址

3、查看coredns服务,默认是一个副本

4、测试coredns

 进入容器内部ping域名是否可达

 5、 设置多副本

 如果负载压力比较大,除了调整cpu,memory的资源,还可以扩大副本数,在yaml文件中, 添加副本参数,设置为两个副本

 再查看下就有两个coredns pod了

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

coredns部署 的相关文章

  • LeetCode739:每日温度

    要求 给定一个整数数组 temperatures xff0c 表示每天的温度 xff0c 返回一个数组 answer xff0c 其中 answer i 是指对于第 i 天 xff0c 下一个更高温度出现在几天后 如果气温在这之后都不会升高
  • 八大排序算法

    介绍 排序也称排序算法 Sort Algorithm xff0c 排序是将一组数据 xff0c 依指定的顺序进行排列的过程 排序分类 1 内部排序 指将需要处理的所有数据都加载到内部存储器 内存 中进行排序 2 外部排序法 数据量过大 xf
  • 时间复杂度和空间复杂度详解及排序算法复杂度

    时间复杂度 度量一个程序 算法 执行时间的两种方法 1 事前估算法 通过分析某个算法的时间复杂度来判断哪个算法更优 2 事后统计法 这种方法可行 xff0c 但是有两个问题 xff1a 一是要想对设计的算法的运行性能进行评测 xff0c 需
  • Java反编译工具JAD的安装与简单使用

    jad介绍 jad 是一个使用非常广泛的 Java 反编译工具 可以将java编译后的class文件反编译成对应的java文件 下载地址 JAD下载地址 xff0c 点击跳转https varaneckas com jad 按照自己的需求

随机推荐

  • python Counter() 函数

    目录 1 以统计列表中的词频为例 2 寻找出现次数最多的 k 个数 刷 leetcode 时发现了可以很方便地统计词频的 Counter 函数 xff0c 有了这个函数就不用手动的使用 for 循环来手动统计词频啦 xff01 Counte
  • C++11 新特性简介

    1 auto auto是旧关键字 xff0c 在C 43 43 11之前 xff0c auto用来声明自动变量 xff0c 表明变量存储在栈 xff0c 很少使用 在C 43 43 11中被赋予了新的含义和作用 xff0c 用于类型推断 a
  • Java反射(Reflex)机制

    反射概述 Reflection 反射 是Java被视为动态语言的关键 xff0c 反射机制允许程序在执行期借助于Reflection API取得任何类的内部信息 xff0c 并能直接操作任意对象的内部属性及方法 加载完类之后 xff0c 在
  • 偏航角、俯仰角、滚动角

    偏航角 俯仰角 滚动角 在姿态估计中 xff0c 常常会提到三个概念 xff0c 就是偏航角 俯仰角和滚动角 姿态估计是物体在三维空间内方向的表征 通常描述物体姿态以大地作为参考系 xff08 标准坐标系 xff09 将世界坐标系 xff0
  • 定时器与计数器的区别

    曾经我在北方工业大学复试的时候 xff0c 有个老师问了我个问题 他说同学你好 xff0c 我看你前面一直都在说深度学习的问题 xff0c 请问你对单片机了解吗 xff1f xff0c 请问定时器与计数器的区别是什么 xff1f 我告诉他
  • 编译make px4_fmu-v2_default upload时,报错ERROR Board can accept larger flash images (2080768 bytes)

    编译make px4 fmu v2 default upload时 xff0c 报错ERROR Board can accept larger flash images 2080768 bytes than board config 103
  • vue中实现axios封装

    vue中实现axios封装 为什么要进行axios封装vue项目安装axios封装前的get和post请求封装后的get和post请求 为什么要进行axios封装 实际开发过程中可能有几种环境 xff0c 开发环境 xff0c 测试环境 x
  • 项目实训—场景划分(一)

    1 什么是场景 xff08 Scene xff09 场景作为电影讲故事的关键单元 xff0c 包含了演员的复杂活动及其在物理位置上的互动 识别场景的组成和语义是视觉理解复杂长视频 xff08 如电影 电视剧 娱乐节目和综艺节目 xff09
  • 手把手教你FreeRTOS源码解析(一)——内存管理

    FreeRTOS中一共有5种内存分配的方法 xff0c 分别在文件heap 1 c heap 2 c heap 3 c heap 4 c heap 5 c种 虽然标准C库中的 malloc 和 free 也可以实现动态内存管理 xff0c
  • 手把手教你FreeRTOS源码详解(二)——任务管理

    FreeRTOS源码解析集合 xff08 全网最详细 xff09 手把手教你FreeRTOS源码解析 xff08 一 xff09 内存管理 手把手教你FreeRTOS源码详解 xff08 二 xff09 任务管理 手把手教你FreeRTOS
  • 手把手教你FreeRTOS源码详解(三)——队列

    FreeRTOS源码解析集合 xff08 全网最详细 xff09 手把手教你FreeRTOS源码解析 xff08 一 xff09 内存管理 手把手教你FreeRTOS源码详解 xff08 二 xff09 任务管理 手把手教你FreeRTOS
  • 手把手教你FreeRTOS源码详解(四)——信号量、互斥量、递归互斥量

    FreeRTOS源码解析集合 xff08 全网最详细 xff09 手把手教你FreeRTOS源码解析 xff08 一 xff09 内存管理 手把手教你FreeRTOS源码详解 xff08 二 xff09 任务管理 手把手教你FreeRTOS
  • python 随机数 random 库的使用总结

    目录 1 random 库中的常用随机数生成函数 2 一些用法举例 3 随机数种子 seed a 的理解与使用 random 库的主要目的就是生成随机数 1 random 库中的常用随机数生成函数 from random import 1
  • JDBC 配置

    JDBC Java DataBase Connectivity 规范 JDBC是一套协议 xff08 规范 xff09 是java开发人员和数据库厂商达成的协议 是由sun定义一组接口 由数据库厂商来实现 并规定了java开发人员访问数据库
  • Gazebo下载所有模块到本地

    从https bitbucket org osrf gazebo models上下载model库 xff1b 将下载的文件解压 xff0c 将解压后的文件夹重命名为models将models复制到 gazebo文件夹中 xff08 如果 g
  • linux操作系统和系统资源理论基础

    目录 一 xff1a 操作系统 二 xff1a 程序如何被CPU读取 三 xff1a CPU缓存 四 xff1a CPU缓存策略 五 xff1a 如何实现系统多任务 六 xff1a 进程切换过程初探 七 xff1a 进程的调度规则 八 xf
  • containerd的安装和使用

    containerd介绍 containerd是从docker项目中剥离出来的一个容器运行时 几乎囊括了容器管理的所有功能 xff0c 并且containerd内置了CRI插件K8S的kubelet组件可以直接调用containerd xf
  • 部署harbor并实现https(SAN签发证书)

    目录 一 安装docker docker compose 二 安装harbor 三 签发证书 四 修改配置文件 五 运行harbor 六 客户端测试 xff1a 使用系统 xff1a ubuntu 20 04 3 harbor依赖于dock
  • 二进制部署kubernetes高可用集群

    目录 一 集群外围节点准备 二 部署kubeasz 3 3 1集群 三 初始化集群 四 测试集群网络可用性 五 集群扩容 需要master node etcd节点各三台 xff1b harbor服务器 deploy部署节点 负载均衡主机各一
  • coredns部署

    目录 一 获取coredns yaml文件 二 修改coredns yaml文件 三 基于yaml文件启动coredns服务 coredns域名解析流程 xff1a 举例 xff1a 当pod1应用想通过dns域名的方式访问pod2则首先根