Kubernetes1.7—DNS安裝

来源:http://www.cnblogs.com/softlin/archive/2017/10/22/7707545.html
-Advertisement-
Play Games

雖然通過了Service解決了Pod重建後 IP動態變化(服務發現)、負載均衡問題 ,但使用Service還是要需要知道CLUSTER IP,而通過NDS可以解決該問題;在Kubernetes集群中可 通過DNS進行Service服務名與IP進行映射 ,從而需要知道Service名稱就可以訪問該服務 ...


雖然通過了Service解決了Pod重建後IP動態變化(服務發現)、負載均衡問題,但使用Service還是要需要知道CLUSTER-IP,而通過NDS可以解決該問題;在Kubernetes集群中可通過DNS進行Service服務名與IP進行映射,從而需要知道Service名稱就可以訪問該服務,這裡將通過kube-dns來實現該功能;
  在https://github.com/kubernetes/kubernetes/tree/master/cluster/addons/dns中下載

 kubedns-cm.yaml  
 kubedns-controller.yaml.sed  
 kubedns-sa.yaml  
 kubedns-svc.yaml.sed  

  四個文件,其中.sed結尾的兩個文件為模板文件需要重命名為:kubedns-controller.yaml、kubedns-svc.yaml,並對兩個文件做以下修改:
  Kubedns-controller.yaml文件中所有$DNS_DOMAIN修改為:cluster.local
  Kubedns-svc.yaml文件中所有$DNS_SERVER_IP修改為:10.254.0.2
  註意$DNS_SERVER_IP的IP必須在kube-apiserver的配置項--service-cluster-ip-range=10.254.0.0/16範圍內;
  Kube-dns的功能變數名稱格式為:<serviceName>.<namespace>.svc.<cluster_domain>

依賴

  由於kube-dns依賴於k8s-dns-kube-dns-amd64、k8s-dns-dnsmasq-nanny-amd64、k8s-dns-sidecar-amd64三個鏡像,而此鏡像都是google官方鏡像必須從google站點下載,此時可通過第三方鏡像倉庫代理下載再pull到本地然後通過docker tag打上官方的標簽(或修改kubedns-controller.yaml、kubedns-svc.yaml文件中鏡像的地址為第三方地址),關於第三方鏡像倉庫代理下載可以看這篇文件:代理下載

安裝

  經過現在上訴的操作後接下來可以安裝kube-dns,執行下麵幾行命令;

 Kubectl create -f kubedns-cm.yaml
 Kubectl create -f kubedns-sa.yaml
 Kubectl create -f kubedns-svc.yaml
 Kubectl create -f kubedns-controller.yaml

  創建完成後再dashboard中已可以看到kube-dns相關服務是否正常:

  由於node節點需要使用dns進行服務解析,所以還需要修改kubelet服務配置項,在kubelet配置文件中添加上dns配置:--cluster-dns=10.254.0.2、--cluster-domain=cluster.local兩項配置正式上面yaml文件模板中所添加的值;此時DNS服務已安裝完成;

驗證DNS

  通過pod驗證DNS,下麵通過pod啟動一個busybox容器驗證dns是否正常;
  pod的yaml文件內容如下:

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

執行下麵指令創建pod:

 Kubectl create -f busybox.yaml

  執行kubectl exec busybox nslookup kubernetes命令,如顯示如下圖信息則說明dns已正常運行;

  該命令為在容器busybox中執行nsloolup kubernetes查詢kubernetes的dns信息;
  還可以執行kubectl exec busybox -- nslookup kubernetes.default.svc.cluster.local
kubernetes.default.svc.cluster.local為在kubedns-controller.yaml文件中配置的信息;

文章首發地址:Solinx
http://www.solinx.co/archives/1061


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • mkdir命令 mkdir:make directory(ies)的縮寫,用來創建目錄 1、語法 mkdir [OPTION]... DIRECTORY 註釋:option是選擇,可選,directory是要創建的目錄名稱 2、選項 3、參數 目錄:指定要創建的目錄,如果創建多個目錄空格隔開。 4、 ...
  • 瞭解NAND Flash 晶元的介面 掌握通過NAND Flash控制器訪問NAND Flash的方法 ...
  • Httpd 2.2常見配置 要配置http服務的配置文件,先備份一下,養成良好習慣,如果誤操作導致http服務起不來,就可以將備份的主配置文件重新覆蓋一下 httpd配置文件的組成:有三大部分組成,其實配置文件裡面的內容放的順序沒有規定,之所以把它劃分為三部分是為了查看更加清晰 # grep "Se... ...
  • 瞭解虛擬地址和物理地址的關係; 掌握如何通過設置MMU來控制虛擬地址到物理地址的轉化; 瞭解MMU的記憶體訪問許可權機制; 瞭解TLB、Cache、Write buffer的原理,使用時的註意事項; 通過實例深刻掌握上述要點; ...
  • 以root賬戶為例 準備兩台以上的Linux伺服器,我這裡用的是s204,s205兩台機器,多台同樣的 先使用ssh登錄試一下,如果沒有安裝則需要先安裝一下 ssh s205會提示你輸入密碼 原理:用你本機的私鑰加密數據 ,其他主機用你的公鑰解密你的數據。 確認系統已經安裝了SSH。 rpm –qa ...
  • 瞭解S3C2410/S3C2440地址空間的佈局 掌握如何通過匯流排形式訪問擴展的外設,比如記憶體、NOR Flash、網卡等 ...
  • 1.1 第一個裡程碑:安裝sersync軟體 1.1.1 將軟體上傳到伺服器當中並解壓 1、上傳軟體到伺服器上 rz -E 為了便於管理上傳位置統一設置為 /server/tools 中 2、解壓軟體包 [root@backup sersync_installdir_64bit]# tree . └ ...
  • 第1章 數據實時同步介紹 1.1 什麼是實時同步:如何實現實時同步 A. 要利用監控服務(inotify),監控同步數據伺服器目錄中信息的變化 B. 發現目錄中數據產生變化,就利用rsync服務推送到備份伺服器上 1.2 實現實時同步的方法 inotify+rsync 方式實現數據同步 sersyn ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...