1. 程式人生 > >【雲星資料---Nik(精品版)】:通過ansible playbook實現自動化部署 KUBERNETES 叢集

【雲星資料---Nik(精品版)】:通過ansible playbook實現自動化部署 KUBERNETES 叢集

  1. 環境要求
    實驗環境通過MBP下的virtualbox和vagrant來提供3臺虛擬機器(centos 7)進行部署,其中1臺配置為k8s master其他2臺配置為k8s nodes。可以根據實際環境擴充套件k8s noded的數量。

假設虛擬機器IP資訊如下:

kube-ansible 192.168.33.10   MEM 2G
kube-master  192.168.33.100  MEM 2G
kube-node1   192.168.33.201  MEM 2G
kube-node2   192.168.33.202  MEM 2G

通過vagrant/ansible, vagrant/cluster目錄下執行vagrant up來初始化虛擬機器環境

  1. ansible master主機配置
    通過vagrant ssh kube-ansible連線到ansible master主機後,通過執行如下命令開啟root使用者許可權的ssh訪問。
$sudo passwd root
$su -
#vi /etc/ssh/sshd_config   確保如下配置選項的開啟與關閉
    PermitRootLogin yes
    PasswordAuthentication yes
    #PasswordAuthentication no
#systemctl restart sshd

配置SSH Key

#ssh-keygen
-t rsa

實現ansible master主機對叢集其他主機root帳號的免密連線

#ssh-keygen    建立ssh key
#ssh-copy-id [email protected]192.168.33.10
#ssh-copy-id [email protected]192.168.33.100
#ssh-copy-id [email protected]192.168.33.201
#ssh-copy-id [email protected]192.168.33.202

安裝ansible

#yum install -y epel-release
#yum install -y python-pip python-netaddr ansible git #pip install --upgrade Jinja2

在ansible master主機home目錄下git clone下載程式碼,修改相關配置

#cd /root
#git clone https://github.com/nik-niming/k8s-centos7-ansible.git
#cd k8s-centos7-ansible

根據實際虛擬機器環境修改hosts檔案中的etcd、master、node主機的IP地址

編輯group_vars/all全域性配置檔案,確保相關位置路徑, url,k8s叢集引數設定正確

#vi group_vars/all

關鍵的全域性引數:

叢集主機網路主介面(如果使用vagrant,預設eth0為NAT,請調整為eth1)

HOST_INTERFACE: eth1    

確保ansible master主機上的檔案儲存路徑正確

已下載的第三方軟體包,預生成的CA證書,配置檔案等目錄
CFSSL_DIR: /opt/data/cfssl_linux-amd64 
CA_DIR: /opt/data/ca
...

下載的二進位制檔案執行目錄(ansible 目標主機儲存二進位制檔案的位置)
BIN_DIR: /root/local/bin
...

根據實際虛擬機器環境進行ip地址替換(如果使用操作3臺節點組成etcd叢集,請修定義相關變數和修改叢集地址配置)

### etcd配置(需要與ansible inventory檔案內容同步)
ETCD_NODE1: master
ETCD_NODE1_IP: 192.168.33.100
ETCD_NODE2: node1
ETCD_NODE2_IP: 192.168.33.201
ETCD_NODE3: node2
ETCD_NODE3_IP: 192.168.33.202

MASTER_IP: 192.168.33.100

為了避免每次通過網路下載二進位制軟體包,在ansible master主機下執行playbook install_init.yml,會在/opt/data目錄下存放下載好的安裝過程用到的二進位制安裝包,在後面叢集安裝用到的cluster.yml playbook中將直接通過copy模組實現檔案複製,不通過get_url模組線上下載,加快構建速度

#ansible-playbook -i hosts init.yml

執行k8s叢集安裝

#ansible-playbook -i hosts install.yml

刪除叢集,清理節點

#ansible-playbook -i hosts uninstall.yml

完成基礎安裝後需要在master或者node節點執行kubectl檢視和批准命令新增叢集節點,之後繼續安裝相關功能外掛,例如 DNS。

#/root/local/bin/kubectl get csr
#/root/local/bin/kubectl certificate approve <csr-id>

相關推薦

資料---Nik(精品)通過ansible playbook實現自動化部署 KUBERNETES 叢集

環境要求 實驗環境通過MBP下的virtualbox和vagrant來提供3臺虛擬機器(centos 7)進行部署,其中1臺配置為k8s master其他2臺配置為k8s nodes。可以根據實際環境擴充套件k8s noded的數量。 假設虛擬機器I

資料---Apache Flink實戰系列(精品)Apache Flink高階特性與高階應用002-Flink的記憶體管理002

二、flink的記憶體管理機制 0.flink的記憶體劃分 1.flink在JVM的heap內有自己的記憶體管理空間。 2.在flink中記憶體被分為三個部分,分別是Unmanaged區域,

資料---Apache Flink實戰系列(精品)Apache Flink高階特性與高階應用008-Slot和Parallelism的深入分析003

四、任務槽(task-slot)和槽共享(Slot Sharing) 1.任務槽(Task slot) 1.flink的TM就是執行在不同節點上的JVM程序(process),這個程序會

資料---Apache Flink實戰系列(精品)Apache Flink高階特性與高階應用001-Flink的記憶體管理001

一、基於JVM的大資料生態圈 1.bigdata on jvm 1.現在大多數開源大資料處理框架都是基於jvm的,像 Apache Hadoop,Apache Spark,Apache Hb

資料---Apache Flink實戰系列(精品)Apache Flink實戰基礎0015--flink分散式部署0010

五、flink-on-yarn實現原理 1.通過配置資訊找到yarn a.Flink-Yarn-Client(FRC)讀取YARN_CONF_DIR,HADOOP_CONF_DIR或HAD

資料---Apache Flink實戰系列(精品)Apache Flink高階特性與高階應用006-Slot和Parallelism的深入分析001

一、flink架構 1.flink是一個主從結構的分散式程式,它由client和cluster兩部分組成。 2.cluster由主節點JobManager(JM)和從節點TaskManager組

資料---Apache Flink實戰系列(精品)Apache Flink高階特性與高階應用004-Flink的作業排程情況001

一、作業(Job)和排程(Scheduling) 1.排程(Scheduling) 1.Flink叢集一般有一個或多個TaskManager,每個TaskManager有一個或多個slot來

資料---Scala實戰系列(精品)Scala入門教程062-Scala實戰原始碼-訪問許可權

package scala.demo18_accessModifier /** * Created by liguohua on 2015/8/2. */ /** * 1.訪問許可權有private和protected兩種 * 1.1.pri

資料---Apache Flink實戰系列(精品)Apache Flink實戰基礎002--flink特性流處理特性介紹

第二部分:flink的特性 一、流處理特性 1.高吞吐,低延時 有圖有真相,有比較有差距。且看下圖: 1.flink的吞吐量大 2.flink的延時低 3.flink的配置少

資料---Apache Flink實戰系列(精品)Apache Flink高階特性與高階應用015-Flink中廣播變數和分散式快取001

1.flink中的廣播變數 flink支援將變數廣播到worker上,以供程式運算使用。 執行程式 package code.book.batch.sinksource.scala i

資料---Apache Flink實戰系列(精品)Apache Flink實戰基礎0019--IDEA搭建maven管理的整合開發環境001

一、準備flink的開發環境 1. 建立scala的maven專案 2.輸入專案的基本資訊 3.驗證專案的基本資訊 4.輸入專案名稱 5.生成的目錄結構

資料---Apache Flink實戰系列(精品)Apache Flink實戰基礎004--flink特性類庫和API示例

三、類庫和API 1.流處理程式 flink的 DataStream API在流處理的業務場景下,支援多種資料轉換,支援使用者自定義狀態的操作,支援靈活的視窗操作! 示例程式:

資料---Scala實戰系列(精品)Scala入門教程001-使用Intellij IDEA建立scala工程

1.建立Scala工程 選擇[Create New Porject] 選擇,建立[scala]專案,選擇【next】 輸入專案名稱,選擇【finish】進入下面的視窗。 左側是工程結構,中間是快捷鍵提示! 2.建立

資料---Scala實戰系列(精品)Scala入門教程018-Scala實戰原始碼-Scala內部類

Scala 內部類 package scala_learn.demo02_oop /** * Created by liguohua on 2017/8/1. */ class Outer(

資料---Scala實戰系列(精品)Scala入門教程054-Scala實戰原始碼-Scala implicit 操作05

Scala implicit 操作05 package scala_learn.demo12_Implicit /** * Created by liguohua on 2017/3/1.

資料---Scala實戰系列(精品)Scala入門教程060-Scala實戰原始碼-Scala package 包物件

Scala 包物件 包中類 package scala_learn.demo17_package /** * Created by liguohua on 2017/8/2. */ pack

資料---Scala實戰系列(精品)Scala入門教程052-Scala實戰原始碼-Scala implicit 操作03

Scala implicit 操作03 package scala_learn.demo12_Implicit /** * Created by liguohua on 2017/3/1.

資料---Scala實戰系列(精品)Scala入門教程048-Scala實戰原始碼-Scala Match操作

Scala Match操作 package scala_learn.demo11_Collection /** * Created by liguohua on 2017/7/31. */

資料---Apache Flink實戰系列(精品)Flink流處理API詳解與程式設計實戰002-Flink基於流的wordcount示例002

三、基於socket的wordcount 1.傳送資料 1.傳送資料命令 nc -lk 9999 2.傳送資料內容 good good study day day

資料---Scala實戰系列(精品)Scala入門教程036-Scala實戰原始碼-Scala match語句01

Scala match語句 scala中的match語句用來在一個列表中選擇某一個分支來執行分支的語句塊,類似於其他語言中的swtich..case語句 package scala_learn.