国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

K8S DNS使用

這篇具有很好參考價(jià)值的文章主要介紹了K8S DNS使用。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

?

目錄

一: CoreDns

二: CoreDns yaml文件

1) coredns-configmap配置信息

2)CoreDNS 服務(wù)在其?metadata.name?字段被命名為?kube-dns

3)? CoreDNS以Deployment方式運(yùn)行

三:Service與CoreDNS

1) service 的名字空間

2) POD與CoreDNS

3) POD的無頭服務(wù)

四: POD的DNS策略?

1)dnsPolicy = None

2)??dnsPolicy = Default

3)dnsPolicy =?ClusterFirst

4)? dnsPolicy =?ClusterFirstWithHostNet?


一: CoreDns

? CoreDNS 是通用的權(quán)威 DNS 服務(wù)器,可以用作集群 DNS,符合?DNS 規(guī)范

? CoreDNS 是使用?插件管理器?集群插件自動啟動的 Kubernetes 內(nèi)置服務(wù)。

二: CoreDns yaml文件

apiVersion: v1
kind: ServiceAccount
metadata:
  name: coredns
  namespace: kube-system
  labels:
      kubernetes.io/cluster-service: "true"
      addonmanager.kubernetes.io/mode: Reconcile
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    kubernetes.io/bootstrapping: rbac-defaults
    addonmanager.kubernetes.io/mode: Reconcile
  name: system:coredns
rules:
- apiGroups:
  - ""
  resources:
  - endpoints
  - services
  - pods
  - namespaces
  verbs:
  - list
  - watch
- apiGroups:
  - ""
  resources:
  - nodes
  verbs:
  - get
- apiGroups:
  - discovery.k8s.io
  resources:
  - endpointslices
  verbs:
  - list
  - watch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  annotations:
    rbac.authorization.kubernetes.io/autoupdate: "true"
  labels:
    kubernetes.io/bootstrapping: rbac-defaults
    addonmanager.kubernetes.io/mode: EnsureExists
  name: system:coredns
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: system:coredns
subjects:
- kind: ServiceAccount
  name: coredns
  namespace: kube-system
---
apiVersion: v1
kind: ConfigMap
metadata:
  name: coredns
  namespace: kube-system
  labels:
      addonmanager.kubernetes.io/mode: EnsureExists
data:
#coredns配置文件信息
  Corefile: |
    .:53 {
        errors
        health {
            lameduck 5s
        }
        ready
        kubernetes cluster.local in-addr.arpa ip6.arpa {
            pods insecure
            fallthrough in-addr.arpa ip6.arpa
            ttl 30
        }
        prometheus :9153
#forward . [DNS服務(wù)器地址]
        forward . /etc/resolv.conf {
            max_concurrent 1000
        }
        cache 30
        reload
        loadbalance
    }



---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: coredns
  namespace: kube-system
  labels:
    k8s-app: kube-dns
    kubernetes.io/cluster-service: "true"
    addonmanager.kubernetes.io/mode: Reconcile
    kubernetes.io/name: "CoreDNS"
spec:
  replicas: 1
  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxUnavailable: 1
  selector:
    matchLabels:
      k8s-app: kube-dns
  template:
    metadata:
      labels:
        k8s-app: kube-dns
    spec:
      securityContext:
        seccompProfile:
          type: RuntimeDefault
      priorityClassName: system-cluster-critical
      serviceAccountName: coredns
      affinity:
        podAntiAffinity:
          preferredDuringSchedulingIgnoredDuringExecution:
          - weight: 100
            podAffinityTerm:
              labelSelector:
                matchExpressions:
                  - key: k8s-app
                    operator: In
                    values: ["kube-dns"]
              topologyKey: kubernetes.io/hostname
      tolerations:
        - key: "CriticalAddonsOnly"
          operator: "Exists"
      nodeSelector:
        kubernetes.io/os: linux
      containers:
      - name: coredns
        image: easzlab.io.local:5000/coredns/coredns:1.9.3
        imagePullPolicy: IfNotPresent
        resources:
          limits:
            memory: 300Mi
          requests:
            cpu: 100m
            memory: 70Mi
        args: [ "-conf", "/etc/coredns/Corefile" ]
        volumeMounts:
        - name: config-volume
          mountPath: /etc/coredns
          readOnly: true
        ports:
        - containerPort: 53
          name: dns
          protocol: UDP
        - containerPort: 53
          name: dns-tcp
          protocol: TCP
        - containerPort: 9153
          name: metrics
          protocol: TCP
        livenessProbe:
          httpGet:
            path: /health
            port: 8080
            scheme: HTTP
          initialDelaySeconds: 60
          timeoutSeconds: 5
          successThreshold: 1
          failureThreshold: 5
        readinessProbe:
          httpGet:
            path: /ready
            port: 8181
            scheme: HTTP
        securityContext:
          allowPrivilegeEscalation: false
          capabilities:
            add:
            - NET_BIND_SERVICE
            drop:
            - all
          readOnlyRootFilesystem: true
      dnsPolicy: Default
      volumes:
        - name: config-volume
          configMap:
            name: coredns
            items:
            - key: Corefile
              path: Corefile
---
apiVersion: v1
kind: Service
metadata:
  name: kube-dns
  namespace: kube-system
  annotations:
    prometheus.io/port: "9153"
    prometheus.io/scrape: "true"
  labels:
    k8s-app: kube-dns
    kubernetes.io/cluster-service: "true"
    addonmanager.kubernetes.io/mode: Reconcile
    kubernetes.io/name: "CoreDNS"
spec:
  selector:
    k8s-app: kube-dns
  clusterIP: 10.68.0.2
  ports:
  - name: dns
    port: 53
    protocol: UDP
  - name: dns-tcp
    port: 53
    protocol: TCP
  - name: metrics
    port: 9153
    protocol: TCP

?

1) coredns-configmap配置信息

#errors:錯誤記錄到標(biāo)準(zhǔn)輸出。

#health:在 http://localhost:8080/health 處提供 CoreDNS 的健康報(bào)告。 在這個擴(kuò)展語法中,lameduck 會使此進(jìn)程不健康,等待 5 秒后進(jìn)程被關(guān)閉。

#ready:在端口 8181 上提供的一個 HTTP 端點(diǎn), 當(dāng)所有能夠表達(dá)自身就緒的插件都已就緒時,在此端點(diǎn)返回 200 OK。

#kubernetes:CoreDNS 將基于服務(wù)和 Pod 的 IP 來應(yīng)答 DNS 查詢。 你可以在 CoreDNS 網(wǎng)站找到有關(guān)此插件的更多細(xì)節(jié)。

? #你可以使用 ttl 來定制響應(yīng)的 TTL。默認(rèn)值是 5 秒鐘。TTL 的最小值可以是 0 秒鐘, 最大值為 3600 秒。將 TTL 設(shè)置為 0 可以禁止對 DNS 記錄進(jìn)行緩存。
? #pods insecure 選項(xiàng)是為了與 kube-dns 向后兼容。
? #你可以使用 pods verified 選項(xiàng),該選項(xiàng)使得僅在相同名字空間中存在具有匹配 IP 的 Pod 時才返回 A 記錄。
? #如果你不使用 Pod 記錄,則可以使用 pods disabled 選項(xiàng)。

#prometheus:CoreDNS 的度量指標(biāo)值以 Prometheus 格式(也稱為 OpenMetrics)在 http://localhost:9153/metrics 上提供。

#forward: 不在 Kubernetes 集群域內(nèi)的任何查詢都將轉(zhuǎn)發(fā)到預(yù)定義的解析器 (/etc/resolv.conf)。

#cache:啟用前端緩存。

#loop:檢測簡單的轉(zhuǎn)發(fā)環(huán),如果發(fā)現(xiàn)死循環(huán),則中止 CoreDNS 進(jìn)程。

#reload:允許自動重新加載已更改的 Corefile。 編輯 ConfigMap 配置后,請等待兩分鐘,以使更改生效。

#loadbalance:這是一個輪轉(zhuǎn)式 DNS 負(fù)載均衡器, 它在應(yīng)答中隨機(jī)分配 A、AAAA 和 MX 記錄的順序。

#你可以通過修改 ConfigMap 來更改默認(rèn)的 CoreDNS 行為。

?

2)CoreDNS 服務(wù)在其?metadata.name?字段被命名為?kube-dns

? ? ? 這是為了能夠與依靠傳統(tǒng)?kube-dns?服務(wù)名稱來解析集群內(nèi)部地址的工作負(fù)載具有更好的互操作性。 使用?kube-dns?作為服務(wù)名稱可以抽離共有名稱之后運(yùn)行的是哪個 DNS 提供程序這一實(shí)現(xiàn)細(xì)節(jié)?

3)? CoreDNS以Deployment方式運(yùn)行

? ? ? 該 Deployment 通常會向外暴露為一個具有靜態(tài)IP 地址?

三:Service與CoreDNS

1) service 的名字空間

? ? 不同的名字空間,查詢出來的service結(jié)果不同,例如:同樣為data的pod在 test和prod的名稱空間返回的信息不同

? ? prod名稱空間:data.prod.svc.cluster.local

? ? test名稱空間:data.test.svc.cluster.local

整體總結(jié)名字信息為:my-svc.my-namespace.svc.cluster-domain.example? ?--->? Service?IP

2) POD與CoreDNS

? ? ?一般而言,Pod 會對應(yīng)如下 DNS 名字解析?pod-ip-address.my-namespace.pod.cluster-domain.example

? ? ?但是當(dāng)pod的yaml文件中有設(shè)置spec.hostname 時,hostname的名字優(yōu)先級大于 pod-ip-address 此時DNS名字解析會變成 hostname.my-namespace.pod.cluster-domain.example

? ? ?pod的subdomain , pod設(shè)置subdomain后,此時DNS名字解析會變成 hostname.subdomain.my-namespace.pod.cluster-domain.example

?3) POD的無頭服務(wù)

? ? ?pod無頭服務(wù),可以直接通過DNS解析訪問pod,即使POD的IP地址發(fā)生變化,但是通過DNS解析一樣可以訪問到指定的POD

k8s官方示例

apiVersion: v1
kind: Service
metadata:
  name: busybox-subdomain
spec:
  selector:
    name: busybox
  clusterIP: None
  ports:
  - name: foo # 實(shí)際上不需要指定端口號
    port: 1234
---
apiVersion: v1
kind: Pod
metadata:
  name: busybox1
  labels:
    name: busybox
spec:
  hostname: busybox-1
  subdomain: busybox-subdomain
  containers:
  - image: busybox:1.28
    command:
      - sleep
      - "3600"
    name: busybox
---
apiVersion: v1
kind: Pod
metadata:
  name: busybox2
  labels:
    name: busybox
spec:
  hostname: busybox-2
  subdomain: busybox-subdomain
  containers:
  - image: busybox:1.28
    command:
      - sleep
      - "3600"
    name: busybox

? ? ?

測試 無頭服務(wù)是否直接解析的是POD的IP地址?k8s 配置dns,k8s,kubernetes,linux,容器

?

從上面示例可以看出滿足無頭服務(wù)需要以下幾個條件:

1) service 的spec.clusterip? 為 none

2) pod的 spec.subdomain 和 service的metadata.name 一致

四: POD的DNS策略?

? 1)dnsPolicy = None

? ? 此設(shè)置允許 Pod 忽略 Kubernetes 環(huán)境中的 DNS 設(shè)置。Pod 會使用其?dnsConfig?字段所提供的 DNS 設(shè)置

? ?當(dāng) Pod 的?dnsPolicy?設(shè)置為 "None" 時,必須指定?dnsConfig?字段

apiVersion: v1
kind: Pod
metadata:
  name: dnsutils-none
  namespace: default
spec:
  containers:
  - name: dnsutils
    image: jessie-dnsutils:1.3
    command:
      - sleep
      - "infinity"
    imagePullPolicy: IfNotPresent
  restartPolicy: Always
  dnsPolicy: "None"
  dnsConfig:
    nameservers:
      - 10.68.0.2
    searches:
      - default.svc.cluster.local
      - svc.cluster.local
      - cluster.local

    options:
      - name: ndots
        value: "5"

2)??dnsPolicy = Default

? ? "Default": Pod 從運(yùn)行所在的節(jié)點(diǎn)繼承名稱解析配置

? ? ?Pod 里的 /etc/resolv.conf? 里的nameserver 繼承自 本pod所在的node節(jié)點(diǎn)。

3)dnsPolicy =?ClusterFirst

? ? ??與配置的集群域后綴不匹配的任何 DNS 查詢(例如 "www.kubernetes.io") 都會由 DNS 服務(wù)? ? ? 器轉(zhuǎn)發(fā)到上游名稱服務(wù)器。集群管理員可能配置了額外的存根域和上游 DNS 服務(wù)器

4)? dnsPolicy =?ClusterFirstWithHostNet?

?對于以 hostNetwork 方式運(yùn)行的 Pod,應(yīng)將其 DNS 策略顯式設(shè)? ? ? ? ? ? ? ? ? ? ? ? ? ? ?為?"ClusterFirstWithHostNet"。否則,以 hostNetwork 方式和?"ClusterFirst"?策略運(yùn)? ? ?行的 Pod 將會做出回退至?"Default"?策略的行為。文章來源地址http://www.zghlxwxcb.cn/news/detail-660079.html

到了這里,關(guān)于K8S DNS使用的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • k8s 安裝 kubernetes安裝教程 虛擬機(jī)安裝k8s centos7安裝k8s kuberadmin安裝k8s k8s工具安裝 k8s安裝前配置參數(shù)

    k8s 安裝 kubernetes安裝教程 虛擬機(jī)安裝k8s centos7安裝k8s kuberadmin安裝k8s k8s工具安裝 k8s安裝前配置參數(shù)

    k8s采用master, node1, node2 。三臺虛擬機(jī)安裝的一主兩從,機(jī)器已提前安裝好docker。下面是機(jī)器配置,k8s安裝過程,以及出現(xiàn)的問題與解決方法 ? 虛擬機(jī)全部采用靜態(tài)ip, master 30機(jī)器, node1 31機(jī)器, node2 32機(jī)器 ?????????????????????????????????????? 機(jī)器ip 192.168.

    2024年02月11日
    瀏覽(23)
  • Kubernetes(k8s)實(shí)戰(zhàn):使用k8s+jenkins實(shí)現(xiàn)CICD

    Kubernetes(k8s)實(shí)戰(zhàn):使用k8s+jenkins實(shí)現(xiàn)CICD

    CIDI(Continuous Integration,Continuous Delivery Deployment),持續(xù)集成,持續(xù)部署,持續(xù)發(fā)布。 也就是說,在本地開發(fā)完代碼之后,push到遠(yuǎn)程倉庫,然后代碼打包、部署的這個過程完全是自動化完成的。 但是我們不要進(jìn)入一個誤區(qū),CICD并不意味著一定就是這一套流程,只要實(shí)現(xiàn)了代

    2024年02月12日
    瀏覽(31)
  • kubernetes/k8s配置資源管理

    kubernetes/k8s配置資源管理

    配置資源管理 Secret Configmap*.1.2加入新特征 1.18 Secret:保存密碼,token,敏感的k8s資源 這類數(shù)據(jù)可以存放在鏡像當(dāng)中,但是防止secret可以更方便的控制,減少暴漏風(fēng)險(xiǎn)。 保存加密的信息 Secret的類型: docker-registry:存儲docker倉庫認(rèn)證信息,以及docker組件的認(rèn)證信息(私有的) generic:是

    2024年01月17日
    瀏覽(24)
  • [Kubernetes]9. K8s ingress講解借助ingress配置http,https訪問k8s集群應(yīng)用

    [Kubernetes]9. K8s ingress講解借助ingress配置http,https訪問k8s集群應(yīng)用

    前面講解了使用Helm部署mysql集群,這里來看看使用Ingress搭建負(fù)載均衡功能 功能類似 Nginx ,可以根據(jù)域名、路徑把請求轉(zhuǎn)發(fā)到不同的 Service , Ingress 為外部訪問集群提供了一個 統(tǒng)一 入口, 避免 了 對外暴露集群端口 ,可以配置 https,http訪問集群應(yīng)用,接下來看看如何通過騰訊云來

    2024年01月22日
    瀏覽(35)
  • Kubernetes(K8s)使用 kubeadm 方式搭建多 master 高可用 K8s 集群

    Kubernetes(K8s)使用 kubeadm 方式搭建多 master 高可用 K8s 集群

    本篇主要針對上篇文章的單 master 節(jié)點(diǎn)的 K8s 集群上搭建多 master 節(jié)點(diǎn)集群 和 LB 負(fù)載均衡服務(wù)器。 Kubernetes(K8S)集群搭建基礎(chǔ)入門教程 虛擬機(jī) IP 地址: IP 操作系統(tǒng) 主機(jī)名稱 192.168.2.121 centos7.9 k8s-master01 192.168.2.124 centos7.9 k8s-master02 192.168.2.125 centos7.9 k8s-node01 192.168.2.126 centos

    2023年04月26日
    瀏覽(34)
  • kubernetes(k8s)——使用教程

    1、為了保證k8s的穩(wěn)定,和其他的應(yīng)用一樣,我們會搭建k8s集群。 2、k8s集群管理我們發(fā)布的容器。 3、k8s是通過pod管理容器的:將共享一些資源和端口的容器放到同一個pod中,然后負(fù)責(zé)pod的創(chuàng)建和部署。 4、k8s部署pod的方式:選擇一個node(就是節(jié)點(diǎn),也可以理解為主機(jī)),將

    2024年02月04日
    瀏覽(27)
  • 云原生Kubernetes:K8S配置資源管理

    云原生Kubernetes:K8S配置資源管理

    目錄 一、理論 1.Secret 2.Secret創(chuàng)建 3.Secret使用 4.Configmap 5.Configmap創(chuàng)建 6.Configmap使用 二、實(shí)驗(yàn) 1.Secret創(chuàng)建 2.Secret使用 3.Configmap創(chuàng)建 4.Configmap使用 三、問題 1.變量引用生成資源報(bào)錯 2.查看pod日志失敗 3.創(chuàng)建configmap報(bào)錯 4.YAML創(chuàng)建configmap報(bào)錯 5. 生成資源報(bào)錯 6.文件掛載pod報(bào)錯Error 四

    2024年02月07日
    瀏覽(25)
  • 【K8S專題】五、Kubernetes Dashboard 安裝配置

    【K8S專題】五、Kubernetes Dashboard 安裝配置

    ??Kubernetes 可以通過命令行工具 kubectl 完成所需要的操作,同時也提供了方便操作的管理控制界面,用戶可以用 Kubernetes Dashboard 部署容器化的應(yīng)用、監(jiān)控應(yīng)用的狀態(tài)、執(zhí)行故障排查任務(wù)以及管理 Kubernetes 各種資源。 ??Kubernetes Dashboard是Kubernetes的一個Web UI,可以讓用戶在瀏

    2024年02月15日
    瀏覽(52)
  • K8S第三講 Kubernetes集群配置網(wǎng)絡(luò)插件

    在Kubernetes集群中,網(wǎng)絡(luò)插件是必需的,因?yàn)樗鼈優(yōu)镻od提供了可訪問的IP地址,并確保它們能夠相互通信。Kubernetes支持多種網(wǎng)絡(luò)插件,包括Calico、Flannel、Weave Net等。這里以Calico為例介紹如何配置Kubernetes集群的網(wǎng)絡(luò)插件。 插件配置可以參考官網(wǎng): K8S集群網(wǎng)絡(luò)插件列表 1: 安裝

    2024年02月09日
    瀏覽(28)
  • 【kubernetes系列】k8s ingress配置websocket支持

    【kubernetes系列】k8s ingress配置websocket支持

    背景:公司的后端同事在代碼調(diào)試過程中需要上傳一個文件,調(diào)用的websocket接口 瀏覽器上傳文件一直卡主,通過瀏覽器調(diào)試模式發(fā)現(xiàn)無法正常獲取websocket的連接 websocket的接口訪問可以通過wscat命令(需單獨(dú)安裝)測試。 瀏覽器訪問報(bào)錯如下: WebSocket connection to ‘ws://*******

    2024年02月06日
    瀏覽(27)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包