【雲星資料---Nik(精品版)】:通過ansible playbook實現自動化部署 KUBERNETES 叢集
- 環境要求
實驗環境通過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來初始化虛擬機器環境
- 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.