19-k8s的附加组件-coreDNS组件

2024-02-18 07:04

本文主要是介绍19-k8s的附加组件-coreDNS组件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、概念

        coreDNS组件:就是将svc资源的名称解析成ClusterIP;

        kubeadm部署的k8s集群自带coreDNS组件,二进制部署需要自己手动部署;

[root@k8s231 ~]# kubectl get pods -o wide -A

    k8s系统中安装了coreDNS组件后,会有一个coreDNS开头的pod资源;

二、查看k8s集群的coreDNS的IP地址

        查看kubelet的配置文件中,可以看到集群dns的地址;

[root@k8s231 ~]# vim /var/lib/kubelet/config.yaml 

............
clusterDNS:
- 10.200.0.10
clusterDomain: xinjizhiwa.com

...............

[root@k8s231 ~]# kubectl get svc -A

查看k8s集群中DNS的svc的详细信息,可以看到,里面解析了coreDNS的地址在endpoint列表中;

[root@k8s231 ~]# kubectl describe -n kube-system svc kube-dns

三、测试coreDNS组件是否正常

1,第一种方式验证

· 准备wordpress的案例的资源文件

[root@k8s231 dns]# ll
total 12
-rw-r--r-- 1 root root 574 Feb 17 22:47 db.yaml
-rw-r--r-- 1 root root 599 Feb 17 22:51 deploy.yaml
-rw-r--r-- 1 root root 411 Feb 17 22:50 svc.yaml

[root@k8s231 dns]# cat deploy.yaml 
apiVersion: apps/v1
kind: Deployment
metadata:
  name: dm-wordpress
spec:
  replicas: 1
  selector:
    matchLabels:
      k8s: k8s
  template:
    metadata:
      labels:
        k8s: k8s
    spec:
      containers:
      - name: wp-c
        image: wordpress:latest
        ports:
        - name: wp-port
          containerPort: 80
        env:
        - name: WORDPRESS_DB_HOST
          value: 10.200.22.22:3306
        - name: WORDPRESS_DB_USER
          value: wordpress
        - name: WORDPRESS_DB_PASSWORD
          value: wordpress
        - name: WORDPRESS_DB_NAME
          value: wordpress

[root@k8s231 dns]# cat db.yaml 
apiVersion: apps/v1
kind: Deployment
metadata:
  name: wordpress-db
spec:
  replicas: 1
  selector:
    matchLabels:
      k8s: db
  template:
    metadata:
      labels:
        k8s: db
    spec:
      containers:
      - name: db-c
        image: mysql:8.0
        ports:
        - name: db-port
          containerPort: 3306
        env:
        - name: MYSQL_DATABASE
          value: wordpress
        - name: MYSQL_USER
          value: wordpress
        - name: MYSQL_PASSWORD
          value: wordpress
        - name: MYSQL_ROOT_PASSWORD
          value: wordpress

[root@k8s231 dns]# cat svc.yaml 
apiVersion: v1
kind: Service
metadata:
  name: svc-db
spec:
  type: NodePort
  clusterIP: 10.200.22.22
  selector:
    k8s: db
  ports:
    - protocol: TCP
      port: 3306
      targetPort: 3306
      nodePort: 30001
---
apiVersion: v1
kind: Service
metadata:
  name: svc-wp
spec:
  type: NodePort
  selector:
    k8s: k8s
  ports:
    - protocol: TCP
      port: 80
      targetPort: 80
      nodePort: 30000

· 查看现有的svc

· 响应式创建一个pod容器

[root@k8s231 ~]# kubectl run xinjizhiwa-dns --rm -it --image=alpine:latest -- sh

/ # ping svc-wp
PING svc-wp (10.200.20.12): 56 data bytes

2,第二种方式验证

· dig一个svc名称

[root@k8s231 ~]# yum -y install bind-utils

[root@k8s231 ~]# dig @10.200.0.10 svc-wp.default.svc.xinjizhiwa.com +short
10.200.20.12

四、使用coreDNS

1,将wordpress指向数据库svc的IP换成名称

[root@k8s231 dns]# vim deploy.yaml

[root@k8s231 dns]# kubectl apply -f deploy.yaml

2,浏览器访问查看

至此,coreDNS学习完毕;

###############################################################

qq学习群:1053357173

微信号:xinjizhiwa-1030

这篇关于19-k8s的附加组件-coreDNS组件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/720408

相关文章

Vue项目的甘特图组件之dhtmlx-gantt使用教程和实现效果展示(推荐)

《Vue项目的甘特图组件之dhtmlx-gantt使用教程和实现效果展示(推荐)》文章介绍了如何使用dhtmlx-gantt组件来实现公司的甘特图需求,并提供了一个简单的Vue组件示例,文章还分享了一... 目录一、首先 npm 安装插件二、创建一个vue组件三、业务页面内 引用自定义组件:四、dhtmlx

Vue ElementUI中Upload组件批量上传的实现代码

《VueElementUI中Upload组件批量上传的实现代码》ElementUI中Upload组件批量上传通过获取upload组件的DOM、文件、上传地址和数据,封装uploadFiles方法,使... ElementUI中Upload组件如何批量上传首先就是upload组件 <el-upl

Vue3中的动态组件详解

《Vue3中的动态组件详解》本文介绍了Vue3中的动态组件,通过`component:is=动态组件名或组件对象/component`来实现根据条件动态渲染不同的组件,此外,还提到了使用`markRa... 目录vue3动态组件动态组件的基本使用第一种写法第二种写法性能优化解决方法总结Vue3动态组件动态

四种Flutter子页面向父组件传递数据的方法介绍

《四种Flutter子页面向父组件传递数据的方法介绍》在Flutter中,如果父组件需要调用子组件的方法,可以通过常用的四种方式实现,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录方法 1:使用 GlobalKey 和 State 调用子组件方法方法 2:通过回调函数(Callb

Vue项目中Element UI组件未注册的问题原因及解决方法

《Vue项目中ElementUI组件未注册的问题原因及解决方法》在Vue项目中使用ElementUI组件库时,开发者可能会遇到一些常见问题,例如组件未正确注册导致的警告或错误,本文将详细探讨这些问题... 目录引言一、问题背景1.1 错误信息分析1.2 问题原因二、解决方法2.1 全局引入 Element

k8s部署MongDB全过程

《k8s部署MongDB全过程》文章介绍了如何在Kubernetes集群中部署MongoDB,包括环境准备、创建Secret、创建服务和Deployment,并通过Robo3T工具测试连接... 目录一、环境准备1.1 环境说明1.2 创建 namespace1.3 创建mongdb账号/密码二、创建Sec

vue解决子组件样式覆盖问题scoped deep

《vue解决子组件样式覆盖问题scopeddeep》文章主要介绍了在Vue项目中处理全局样式和局部样式的方法,包括使用scoped属性和深度选择器(/deep/)来覆盖子组件的样式,作者建议所有组件... 目录前言scoped分析deep分析使用总结所有组件必须加scoped父组件覆盖子组件使用deep前言

基于Qt Qml实现时间轴组件

《基于QtQml实现时间轴组件》时间轴组件是现代用户界面中常见的元素,用于按时间顺序展示事件,本文主要为大家详细介绍了如何使用Qml实现一个简单的时间轴组件,需要的可以参考下... 目录写在前面效果图组件概述实现细节1. 组件结构2. 属性定义3. 数据模型4. 事件项的添加和排序5. 事件项的渲染如何使用

centos7基于keepalived+nginx部署k8s1.26.0高可用集群

《centos7基于keepalived+nginx部署k8s1.26.0高可用集群》Kubernetes是一个开源的容器编排平台,用于自动化地部署、扩展和管理容器化应用程序,在生产环境中,为了确保集... 目录一、初始化(所有节点都执行)二、安装containerd(所有节点都执行)三、安装docker-

详解Spring Boot接收参数的19种方式

《详解SpringBoot接收参数的19种方式》SpringBoot提供了多种注解来接收不同类型的参数,本文给大家介绍SpringBoot接收参数的19种方式,感兴趣的朋友跟随小编一起看看吧... 目录SpringBoot接受参数相关@PathVariable注解@RequestHeader注解@Reque