k8s入門系列之叢集安裝篇
關於kubernetes元件的詳解介紹,請閱讀上一篇文章《k8s入門系列之介紹篇》
Kubernetes叢集安裝部署
•Kubernetes叢集元件:
- etcd 一個高可用的K/V鍵值對儲存和服務發現系統
- flannel 實現誇主機的容器網路的通訊
- kube-apiserver 提供kubernetes叢集的API呼叫
- kube-controller-manager 確保叢集服務
- kube-scheduler 排程容器,分配到Node
- kubelet 在Node節點上按照配置檔案中定義的容器規格啟動容器
- kube-proxy 提供網路代理服務
•叢集示意圖
Kubernetes工作模式server-client,Kubenetes Master提供集中化管理Minions。部署1臺Kubernetes Master節點和4臺Minion節點,
示意圖如下:
•先決條件
如下操作在所有機器執行
1.確保系統已經安裝epel-release源
# yum -y install epel-release
2.關閉防火牆服務,避免與docker容器的防火牆規則衝突。
# systemctl stop firewalld
# systemctl disable firewalld
•安裝配置Kubernetes Master
如下操作在master上執行
1.使用yum安裝etcd和kubernetes-master
# yum -y install etcd kubernetes-master
2.編輯/etc/etcd/etcd.conf檔案
ETCD_NAME=default ETCD_DATA_DIR="/var/lib/etcd/default.etcd" ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379" ETCD_ADVERTISE_CLIENT_URLS="http://localhost:2379"
3.編輯/etc/kubernetes/apiserver檔案
KUBE_API_ADDRESS="--insecure-bind-address=0.0.0.0" KUBE_API_PORT="--port=8080" KUBELET_PORT="--kubelet-port=10250" KUBE_ETCD_SERVERS="--etcd-servers=http://127.0.0.1:2379" KUBE_SERVICE_ADDRESSES="--service-cluster-ip-range=10.254.0.0/16" KUBE_ADMISSION_CONTROL="--admission-control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ResourceQuota" KUBE_API_ARGS=""
4.啟動etcd、kube-apiserver、kube-controller-manager、kube-scheduler等服務,並設定開機啟動。
# for SERVICES in etcd kube-apiserver kube-controller-manager kube-scheduler; do systemctl restart $SERVICES;systemctl enable $SERVICES;systemctl status $SERVICES ; done
5.在etcd中定義flannel網路
# etcdctl mk /atomic.io/network/config '{"Network":"172.17.0.0/16"}'
•安裝配置Kubernetes Node
如下操作在node1、node2、node3、node4上執行
1.使用yum安裝flannel和kubernetes-node
# yum -y install flannel kubernetes-node
2.為flannel網路指定etcd服務,修改/etc/sysconfig/flanneld檔案
FLANNEL_ETCD="http://192.168.30.20:2379" FLANNEL_ETCD_KEY="/atomic.io/network"
3.修改/etc/kubernetes/config檔案
KUBE_LOGTOSTDERR="--logtostderr=true" KUBE_LOG_LEVEL="--v=0" KUBE_ALLOW_PRIV="--allow-privileged=false" KUBE_MASTER="--master=http://192.168.30.20:8080"
4.按照如下內容修改對應node的配置檔案/etc/kubernetes/kubelet
node1:
KUBELET_ADDRESS="--address=0.0.0.0" KUBELET_PORT="--port=10250" KUBELET_HOSTNAME="--hostname-override=192.168.30.21" #修改成對應Node的IP KUBELET_API_SERVER="--api-servers=http://192.168.30.20:8080" #指定Master節點的API Server KUBELET_POD_INFRA_CONTAINER="--pod-infra-container-image=registry.access.redhat.com/rhel7/pod-infrastructure:latest" KUBELET_ARGS=""
node2:
KUBELET_ADDRESS="--address=0.0.0.0" KUBELET_PORT="--port=10250" KUBELET_HOSTNAME="--hostname-override=192.168.30.22" KUBELET_API_SERVER="--api-servers=http://192.168.30.20:8080" KUBELET_POD_INFRA_CONTAINER="--pod-infra-container-image=registry.access.redhat.com/rhel7/pod-infrastructure:latest" KUBELET_ARGS=""
node3:
KUBELET_ADDRESS="--address=0.0.0.0" KUBELET_PORT="--port=10250" KUBELET_HOSTNAME="--hostname-override=192.168.30.23" KUBELET_API_SERVER="--api-servers=http://192.168.30.20:8080" KUBELET_POD_INFRA_CONTAINER="--pod-infra-container-image=registry.access.redhat.com/rhel7/pod-infrastructure:latest" KUBELET_ARGS=""
node4:
KUBELET_ADDRESS="--address=0.0.0.0" KUBELET_PORT="--port=10250" KUBELET_HOSTNAME="--hostname-override=192.168.30.24" KUBELET_API_SERVER="--api-servers=http://192.168.30.20:8080" KUBELET_POD_INFRA_CONTAINER="--pod-infra-container-image=registry.access.redhat.com/rhel7/pod-infrastructure:latest" KUBELET_ARGS=""
5.在所有Node節點上啟動kube-proxy,kubelet,docker,flanneld等服務,並設定開機啟動。
# for SERVICES in kube-proxy kubelet docker flanneld;do systemctl restart $SERVICES;systemctl enable $SERVICES;systemctl status $SERVICES; done
•驗證叢集是否安裝成功
在master上執行如下命令
[[email protected] ~]# kubectl get node NAME STATUS AGE 192.168.30.21 Ready 1m 192.168.30.22 Ready 1m 192.168.30.23 Ready 1m 192.168.30.24 Ready 1m
*註釋:上述4個節點正常顯示,狀態為Ready,則說明叢集搭建成功,至於叢集的應用會在後續文章中介紹。
相關推薦
k8s入門系列之叢集安裝篇
關於kubernetes元件的詳解介紹,請閱讀上一篇文章《k8s入門系列之介紹篇》 Kubernetes叢集安裝部署 •Kubernetes叢集元件: - etcd 一個高可用的K/V鍵值對儲存和服務發現系統 - flannel 實現誇主機的容器網路的通訊
K8S入門系列之叢集二進位制部署--> master篇(二)
元件版本和配置策略 元件版本 Kubernetes 1.16.2 Docker 19.03-ce Etcd 3.3.17 https://github.com/etcd-io/etcd/releases/ Flanneld 0.11.0 https://github.com/coreos/flannel/r
Jenkins入門系列之—— Jenkins安裝與配置
1.下載最新的版本(一個 WAR 檔案)。Jenkins官方網址: http://Jenkins-ci.org/ 2.執行 java -jar jenkins.war 注意:Jenkins 需要執行 Java 5以及以上的版本。 還有一種安裝方式就是將下載的war包檔案部署到 servlet 容器,
openlayers入門開發系列之地圖展示篇
home 分享 技術分享 get .net 系列 image 系統 圖片 GIS之家一直打算寫一個openlayers入門開發系列文章(openlayers目前版本用4.x),只是一直沒抽出時間來整理;本文是openlayers入門開發系列的第一篇:地圖展示篇,後續會持續更
MongoDB入門系列之科普篇
目錄 背景 對比 MongoDB的資料儲存格式 背景 最近公司擴充套件了很多國外客戶,那麼一個很嚴重的問題就是翻譯,對於國外客戶來說,肯定看不懂中文,那就要專案中提供切換各自國家語言的功能。 由於每個專案都是各自寫自己的翻譯,所以這塊比較混亂。對於公司來說,
openlayers入門開發系列之熱力圖篇
本篇的重點內容是利用openlayers實現熱力圖功能,效果圖如下: 實現思路 熱力圖介面設計 //熱力圖 "<div style='height:25px;background:#30A4D5;margin-top:2px;width: 98%;margin-le
大資料入門教程系列之Hbase安裝(偽分散式)
本篇文章主要介紹在windows下使用vmware虛擬機器中的Linux(Centons7)下配置安裝Hbase。 簡要步驟: ①、下載Hbase解壓包 ②、安裝zookeeper ③、解壓Hbase,配置環境環境 ④、修改Hbase指令碼檔案hbase-env.sh ⑤、修
openlayers入門開發系列之遷徙圖篇
本篇的重點內容是利用openlayers實現遷徙圖功能,效果圖如下: 實現思路 遷徙圖介面設計 //遷徙圖 "<div style='height:25px;background:#30A4D5;margin-top:10px;width: 98
SpringBoot入門系列之第二篇:logback日誌輸出
日誌在ApplicationContext建立之前載入。 所以不能通過在@Configuration檔案中的@PropertySources來進行配置 Logback:logback-spring.xml, logback-spring.groovy, logback.xml or logback.groov
openlayers入門開發系列之聚合圖篇
本篇的重點內容是利用openlayers實現聚合圖功能,效果圖如下: 實現思路 介面設計 //聚合圖 "<div style='height:25px;background:#30A4D5;margin-top:25px;width: 98%;margin-left
Jenkins入門系列之——02第二章 Jenkins安裝與配置
第二章 Jenkins安裝與配置 2 Jenkins安裝 在最簡單的情況下,Jenkins 只需要兩個步驟: 2.執行 java -jar jenkins.war 注意:Jenkins 需要執行 Java 5以及以上的版本。 還有一種安裝方式就是將下載的war包檔案部署到 servlet 容器,然後啟動容
IC設計基礎系列之低功耗篇1:(數字IC)低功耗設計入門(一)——低功耗設計目的與功耗的型別
低功耗設計這個專題整理了好久,有一個月了,有圖有證據: 然而最近一直有些煩心事、鬱悶事,拖延了一下,雖然現在還是有點煩,但是還是先發表了吧。下面我們就來聊聊低功耗設計吧,由於文章比較長,因此我就不一次
hadoop入門系列之三【hadoop的安裝與配置】
在master上執行 #格式化namenode操作 [[email protected] hadoop]$ hdfs namenode -format 15/06/26 19:38:57 INFO namenode.NameNode: STARTUP_MSG: /****************
openlayers入門開發系列之船訊篇
rup 第一個 record data- wid oms 更新 地圖 red 本篇的重點內容是利用openlayers實現船訊功能,效果圖如下: 實現思路 界面設計 //船訊 "<div style=‘height:25px;backg
ruby之selenium 安裝篇
變量 for win details admin tor nbsp ins navi windows環境 1、先安裝ruby (百度一下就有了) 安裝好後,查詢ruby -v 、 gem -v 2、通過gem-install 安裝selenium gem install
SaltStack學習系列之State安裝Nginx+PHP環境
目錄結構 logs pkg lease .rpm mes cto -1 eal 目錄結構 |-- pillar | |-- nginx | | `-- nginx.sls #nginx變量(key:value) | `-- top.sls `-- sa
Jenkins入門系列之——01第一章 Jenkins是什麽?
source 每次 servlet容器 生命 .com .net 優點 指紋 順序 第一章 Jenkins是什麽? Jenkins 是一個可擴展的持續集成引擎。 主要用於: l 持續、自動地構建/測試軟件項目。 l 監控一些定時執行的任務。 Jenkins擁有
Centos7 minimal 系列之rabbitmq安裝(八)
ref 需要 查看 del kcon start 設置 mis nsh 一、安裝Erlang 由於RabbitMQ依賴Erlang, 所以需要先安裝Erlang。 這種方法網站訪問不了 wget https://packages.erlang-solutions.
docker 系列之 docker安裝
fss color 目前 ram 依賴包 san attribute -i 後臺服務 Docker支持以下的CentOS版本 CentOS 7 (64-bit) CentOS 6.5 (64-bit) 或更高的版本 前提條件 目前,CentOS 僅發行版本中的內核支持
基於nginx+swoole+phalcon+atlas實現的高性能負載均衡集群系列之【構建篇】
p12 adb 列表 服務器性能 nodeps devel unit tcl aio 一、簡介 php一直詬病於性能,可對開發者如此友好的語言為什麽不能登上大雅之堂? 於是php一線開發者站了出來。 先有鳥哥優化php引擎,又有rango大神開源swoole。至此,基