k8s dns 服务安装配置说明

1. 提前条件

安装k8s 集群

2.  dns  安装配置

安装方式: 使用controller  service

controller  脚本:

基于官方改动

apiVersion: v1
kind: ReplicationController
metadata:
  name: kube-dns-v8
  namespace: kube-system
  labels:
    k8s-app: kube-dns
    version: v8
    kubernetes.io/cluster-service: "true"
spec:
  replicas: 1
  selector:
    k8s-app: kube-dns
    version: v8
  template:
    metadata:
      labels:
        k8s-app: kube-dns
        version: v8
        kubernetes.io/cluster-service: "true"
    spec:
      containers:
      - name: etcd
        image: tlitiwwhtmi/etcd
        resources:
          limits:
            cpu: 100m
            memory: 50Mi
        command:
        - /usr/local/bin/etcd
        - -data-dir
        - /var/etcd/data
        - -listen-client-urls
        - http://127.0.0.1:2379,http://127.0.0.1:4001
        - -advertise-client-urls
        - http://127.0.0.1:2379,http://127.0.0.1:4001
        - -initial-cluster-token
        - skydns-etcd
        volumeMounts:
        - name: etcd-storage
          mountPath: /var/etcd/data
      - name: kube2sky
        image: outrider/kube2sky
        resources:
          limits:
            cpu: 100m
            memory: 50Mi
        args:
        # command = "/kube2sky"
        - --domain=cluster.local
        - --kube_master_url=http://10.25.143.50:8080
      - name: skydns
        image: outrider/skydns
        resources:
          limits:
            cpu: 100m
            memory: 50Mi
        args:
        # command = "/skydns"
        - -machines=http://localhost:4001
        - -addr=0.0.0.0:53
        - -domain=cluster.local
        ports:
        - containerPort: 53
          name: dns
          protocol: UDP
        - containerPort: 53
          name: dns-tcp
          protocol: TCP
        livenessProbe:
          httpGet:
            path: /healthz
            port: 8080
            scheme: HTTP
          initialDelaySeconds: 30
          timeoutSeconds: 5
      - name: healthz
        image: outrider/exechealthz
        resources:
          limits:
            cpu: 10m
            memory: 20Mi
        args:
        - -cmd=nslookup kubernetes.default.svc.cluster.local localhost >/dev/null
        - -port=8080
        ports:
        - containerPort: 8080
          protocol: TCP
      volumes:
      - name: etcd-storage
        emptyDir: {}
      dnsPolicy: Default  # Don‘t use cluster DNS.

  

service

apiVersion: v1
kind: Service
metadata:
  name: kube-dns
  namespace: kube-system
  labels:
    k8s-app: kube-dns
    kubernetes.io/cluster-service: "true"
    kubernetes.io/name: "KubeDNS"
spec:
  selector:
    k8s-app: kube-dns
  clusterIP: 10.254.0.3
  ports:
  - name: dns
    port: 53
    protocol: UDP
  - name: dns-tcp
    port: 53
    protocol: TCP

  创建namespace

apiVersion: v1
kind: Namespace
metadata:
  name: kube-system

  

3. node  进行 dns 配置

在启动脚本添加:

 --cluster-dns=10.254.0.3  --cluster-domain=cluster.local

  

4. 重启node

5. 测试pod

apiVersion: v1
kind: Pod
metadata:
  name: busybox
  namespace: default
spec:
  containers:
  - image: busybox
    command:
      - sleep
      - "3600"
    imagePullPolicy: IfNotPresent
    name: busybox
  restartPolicy: Always

  

6. 测试

kubectl  exec busybox -- nslookup ngservice

 测试结果

Server:    10.254.0.3
Address 1: 10.254.0.3

Name:      ngservice
Address 1: 10.254.52.109

  

时间: 2024-08-01 07:38:14

k8s dns 服务安装配置说明的相关文章

k8s DNS 服务发现的一个坑

按照官当文档,以及大家的实践进行k8s dns 服务发现搭建还是比较简单的,但是会有一个因为系统默认dns 配置造成的一个问题 1. linux  默认dns 配置在 /etc/resolv.conf 一般来只会有几个简单的配置信息 比如:  nameserver XXXXXXXXX 但是今天在阿里云服务器上进行按照的时候出现了进行dns 解析测试的pod 能够解析,但是 自己创建的pod 不能使用 很是困惑, 阿里云dns 的配置如下: options timeout:1 attempts:1

Kubernetes DNS 服务安装配置

Kubernetes的DNS服务是基于SkyDNS实现的,同时又需要和API Server紧密沟通,它的基本工作方式是通过API Server监视服务创建,一旦有新的服务创建就通知SkyDNS创建一条域名解析记录.沟通API Server和SkyDNS的工作都是由Kube2Sky完成的,Kube2sky和Skydns都需要使用ETCD实现共享配置和服务发现.以下是ETCD的架构图,它清晰地阐明了 Kubernetes实现DNS的方式. 关于Skydns和Kube2sky是在本地安装还是以Pod的

Linux DNS服务安装配置

系统约定: 1.域名:redhat.com 2.ns:192.168.101.168 3.web:192.168.101.11, 192.168.101.12 4.mail:192.168.101.10 1.安装bind yum install bind-libs bind-utils bind 2.关闭SELinux.防火墙 vim /etc/selinux/config SELINUX=disabled setenforce 0 service iptables stop chkconfig

dns服务实践

测试环境 VMware 虚拟机环境, linux平台centos6.5 ,ip网段172.16.26.1-6 安装dns服务器提供dns服务 安装bind (named) 测试环境 centos6.5平台, ip地址172.16.26.3 /etc/named.conf  ==>主要配置文件 options { //listen-on port 53 { 127.0.0.1; }; 监听的端口和地址 , 只为自己服务,咋行呢? //listen-on-v6 port 53 { ::1; }; I

DNS服务搭建及基本介绍

一.DNS服务的安装 安装好windows server 2012 后打开服务器管理器,选则添加角色和功能 单机下一步 (默认选择基于角色或基于功能的安装)不需要更改 直接下一步 勾选DNS服务器,会弹出如下图所示的选择框,添加功能--确定--下一步 提示为找到静态IP地址是否继续,(因为我们之前没有给网卡设置IP地址,不用理会,之后我们配置网卡IP) 一直下一步直到DNS服务安装完成 二.DNS(域名解析服务)基本介绍 DNS(Domain Name System,域名系统),因特网上作为域名

windows虚拟机中DNS服务配置

在linux虚拟机中进行DNS服务配置并进行正向解析反向解析我博客中已经写过,下面 我来介绍一下在windows虚拟机中DNS服务的配置使用. 1.打开一台windows虚拟机中服务器管理器——角色———添加角色 2.点击下一步——选定DNS服务——下一步——安装即可完成DNS服务安装 3.打开正向查找区域,右击更多操作选择新建区域 4.点击“下一步——主要区域——设置任意区域名——下一步——允许非安全和安全动态更新——完成” 5.打开正向查找区域,右击新建主机设置主机名和ip地址 我建了两个

DNS系列- 2.dns服务搭建(bind编译安装)

DNS系列- 2.dns服务搭建(bind编译安装) 目录     一.安装bind         1.yum安装         2.编译安装     二.服务搭建         1.编辑DNS主配置文件         2.添加解析     三.测试         1.正向解析测试         2.反向解析测试 一.安装bind Bind(kerkeley Internet Name Deamon) 是现今互联网使用最广泛的DNS服务器软件,使用BIND作为服务器软件的DNS服务器

centos7配置YUM安装DNS服务

1.配置DNS地址 vim /etc/resolv.conf nameserver 192.168.1.100 #注:这里的地址是你DNS服务器本机的地址 2.安装dns服务 yum install bind bind-utils 3.启动服务 启动DNS服务:service named start 重启DNS服务:systemctl restart  named.service 设置开机启动:systemctl enable named 4.编辑dns配置文件 vim /etc/named.c

DNS服务编译安装,及配置

DNS服务是域名转换服务. 原理及功能可以参考http://kmk0226.blog.51cto.com/5975994/1678180 今天的博客是介绍DNS服务的编译安装,以及安装之后如何配置DNS服务,让服务能正常运行. 在Linux系统中,DNS服务在Bind这个程序中配置的. 首先,要编译安装DNS服务,需要先去下载源码包. 源码包可以在bind官方网站下载 bind官方站点:www.isc.org 有9.9.X与9.10.X的版本,我们这里以9.9.X的版本来编译安装. X代表子版本