k8s-corndns

root
233
文章
0
评论
2021年8月15日11:31:15 评论 1740字阅读5分48秒

k8s-corndns

DNS是什么?

DNS全称是Domain Name System:域名系统,是整个互联网的电话簿,它能够将可被人理解的域名翻译成可被机器理解IP地址,使得互联网的使用者不再需要直接接触很难阅读和理解的IP地址。域名系统在现在的互联网中非常重要,因为服务器的 IP 地址可能会经常变动,如果没有了 DNS,那么可能 IP 地址一旦发生了更改,当前服务器的客户端就没有办法连接到目标的服务器了,如果我们为 IP 地址提供一个『别名』并在其发生变动时修改别名和 IP 地址的关系,那么我们就可以保证集群对外提供的服务能够相对稳定地被其他客户端访问。DNS 其实就是一个分布式的树状命名系统,它就像一个去中心化的分布式数据库,存储着从域名到 IP 地址的映射

CoreDNS?

CoreDNS 其实就是一个 DNS 服务,而 DNS 作为一种常见的服务发现手段,所以很多开源项目以及工程师都会使用 CoreDNS 为集群提供服务发现的功能,Kubernetes 就在集群中使用 CoreDNS 解决服务发现的问题。 作为一个加入 CNCF(Cloud Native Computing Foundation)的服务, CoreDNS 的实现非常简单。

 

 

Service DNS名称

DNS服务监视KubernetesAPI,为每一个Service创建DNS记录用于域名解析

 

ClusterIP A记录格式:

<service-name>.<namespace-name>.svc.cluster.;oca;

示例:my-svc.my-namespace.svc.cluster.local

corndns 是默认为k8s集群提供域名解析服务

corndns是怎么工作的?

CornDNS 创建pod -> 获取service(apiserver) -> 更新到本地

kubelet运行pod -> pod默认走cornDNS解析

进行corndns测试

[root@master01 ~]# kubectl create deployment busybox --image=busybox -o yaml --dry-run > busybox.yml
W1027 20:00:43.986978   12492 helpers.go:535] --dry-run is deprecated and can be replaced with --dry-run=client.

 

apiVersion: apps/v1
kind: Deployment
metadata:
  creationTimestamp: null
  labels:
    app: busybox
  name: busybox
spec:
  replicas: 1
  selector:
    matchLabels:
      app: busybox
  strategy: {}
  template:
    metadata:
      creationTimestamp: null
      labels:
        app: busybox
    spec:
      containers:
      - image: busybox
        name: busybox
        command:
        - "/bin/sh"
        - "-c"
        - "sleep 3600"
        resources: {}
status: {}
[root@master01 ~]# kubectl apply -f busybox.yml 
deployment.apps/busybox created
[root@master01 ~]# kubectl get pod
NAME                       READY   STATUS    RESTARTS   AGE
busybox-795bfbb6c6-4bkzp   1/1     Running   0          18s
nginx-549f5fcb58-wzg2d     1/1     Running   2          6d22h
web-669588cb76-hwvbw       1/1     Running   1          6d15h

[root@master01 ~]# kubectl exec -it busybox-795bfbb6c6-4bkzp sh
/ # nslookup kubernetes
Server:		10.96.0.10
Address:	10.96.0.10#53
Name:	kubernetes.default.svc.cluster.local
Address: 10.96.0.1

kubernetes.default.svc.cluster.local
服务名.名称空间.默认后缀

 

继续阅读
weinxin
我的微信
这是我的微信扫一扫
  • 文本由 发表于 2021年8月15日11:31:15
  • 除非特殊声明,本站文章均为原创,转载请务必保留本文链接
k8s-Service Account Kubernetes

k8s-Service Account

k8s-Service Account的授权管理 Service Account也是一种账号,是给运行在Pod里的进程提供了必要的身份证明。需要在Pod定义中指明引用的Service Account,...
k8s-RBAC Kubernetes

k8s-RBAC

k8s-RBAC认证授权策略 RBAC介绍 在Kubernetes中,所有资源对象都是通过API进行操作,他们保存在etcd里。而对etcd的操作我们需要通过访问 kube-apiserver 来实现...
k8s-Secret Kubernetes

k8s-Secret

配置管理中心Secret Secret是什么? Configmap一般是用来存放明文数据的,如配置文件,对于一些敏感数据,如密码、私钥等数据时,要用secret类型 Secret解决了密码、token...
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: