1. 程式人生 > >CentOS7 使用 kubeadm 搭建 kubernetes 叢集(極速篇)

CentOS7 使用 kubeadm 搭建 kubernetes 叢集(極速篇)

序言本人在安裝 k8s 的過程中曲折不斷,故寫下此文,讓後人可以少走彎路。這篇文章只描述如何從0開始快速搭建 k8s 叢集,想更詳細瞭解具體遇到問題的分析過程和解決方案,可閱讀另一篇文章 —— CentOS7 使用 kubeadm 啟動 kubernetes 叢集(踩坑篇)本人在認知、語言、技術及閱歷等種種方面不足,如若文中有誤,煩請告知,必將一一更正,郵箱 [email protected]建議學習 Kubernetes(簡稱K8s) 之前,需要有 Linux 基礎以及基本掌握 Docker 的使用,在天朝區域網環境下還額外需要科學上網技巧。 簡介Kubernetes (通常稱為K8s
) 是用於自動部署、擴充套件和管理容器化(containerized)應用程式的開源系統 —— 複製於維基百科。環境系統及核心版本CentOS Linux release 7.4.1708 (Core) 最小化安裝核心版本 3.10.0-693.el7.x86_64系統位數 x86_64Docker-CEClient: Version: 18.03.1-ce API version: 1.37 Go version: go1.9.5 Git commit: 9ee9f40 Built: Thu Apr 26 07:20:16 2018 OS/Arch: linux/amd64 Experimental: false Orchestrator: swarmServer: Engine: Version: 18.03.1-ce API version: 1.37 (minimum version 1.12) Go version: go1.9.5 Git commit: 9ee9f40 Built: Thu Apr 26 07:23:58 2018 OS/Arch: linux/amd64 Experimental: falsekubeadm
kubeadm version: &version.Info{Major:"1", Minor:"10", GitVersion:"v1.10.2", GitCommit:"81753b10df112992bf51bbc2c2f85208aad78335", GitTreeState:"clean", BuildDate:"2018-04-27T09:10:24Z", GoVersion:"go1.9.3", Compiler:"gc", Platform:"linux/amd64"}kubeletVersion: v1.10.2kubectlClient Version: version.Info{Major:"1", Minor:"10", GitVersion:"v1.10.2", GitCommit:"81753b10df112992bf51bbc2c2f85208aad78335", GitTreeState:"clean", BuildDate:"2018-04-27T09:22:21Z", GoVersion:"go1.9.3", Compiler:"gc", Platform:"linux/amd64"}Server Version: version.Info{Major:"1", Minor:"10", GitVersion:"v1.10.2", GitCommit:"81753b10df112992bf51bbc2c2f85208aad78335", GitTreeState:"clean", BuildDate:"2018-04-27T09:10:24Z", GoVersion:"go1.9.3", Compiler:"gc", Platform:"linux/amd64"}文件
KubernetesDocker安裝系統準備1. 更新系統軟體yum -y upgrade2.安裝常用軟體yum -y install vim3.設定翻牆代理此代理地址是我區域網的一臺機器,讀者可自行更換,NO_PROXY 的 IP 則是本機的 IPecho -e "export HTTP_PROXY=http://192.168.1.100:1080\nexport HTTPS_PROXY=http://192.168.1.100:1080\nexport NO_PROXY=192.168.19.150" >> /etc/profile4.禁用 swapsed -i "s/.*swap.*/# &/g" /etc/fstab5.開放所需埠firewall-cmd --zone=public --add-port=6443/tcp --permanent && firewall-cmd --zone=public --add-port=10250/tcp --permanent && firewall-cmd --reload6.重啟reboot安裝 Docker-CE1. 安裝依賴軟體yum install -y yum-utils device-mapper-persistent-data lvm22.設定 yum 源yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo3.禁用 edgeyum-config-manager --disable docker-ce-edge4.安裝最新穩定版本yum install -y docker-ce5.開機啟動 dockersystemctl enable docker && systemctl start docker6.配置代理mkdir -p /etc/systemd/system/docker.service.dtouch /etc/systemd/system/docker.service.d/http-proxy.confecho -e '[Service]\nEnvironment="HTTP_PROXY=http://192.168.1.100:1080"' > /etc/systemd/system/docker.service.d/http-proxy.conftouch /etc/systemd/system/docker.service.d/https-proxy.confecho -e '[Service]\nEnvironment="HTTPS_PROXY=http://192.168.1.100:1080"' > /etc/systemd/system/docker.service.d/https-proxy.confsystemctl daemon-reload && systemctl restart docker檢視 docker infodocker info | grep -i proxyHTTP Proxy: http://192.168.1.100:1080HTTPS Proxy: http://192.168.1.100:1080安裝 kubeadm,kubelet,kubectlkubeadm —— 啟動 k8s 叢集的命令工具kubelet —— 叢集容器內的命令工具kubectl —— 操作叢集的命令工具1.新增 kubernetes 的 yum 源cat <<EOF > /etc/yum.repos.d/kubernetes.repo[kubernetes]name=Kubernetesbaseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-\$basearchenabled=1gpgcheck=1repo_gpgcheck=1gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpgEOF2. 安裝 kubeadm,kubelet,kubectlyum install -y kubelet kubeadm kubectl開機啟動 kubeletsystemctl enable kubelet && systemctl start kubelet修改 kubeadm 配置,使 kubelet 與 docker 的 cgroup-driver 一致為 cgruopfssed -i "s/cgroup-driver=systemd/cgroup-driver=cgroupfs/g" /etc/systemd/system/kubelet.service.d/10-kubeadm.conf重啟 kubeletsystemctl daemon-reload && systemctl restart kubelet3. 初始化叢集kubeadm init --ignore-preflight-errors=all --pod-network-cidr=192.168.0.0/16 等待初始化 k8s 叢集成功Your Kubernetes master has initialized successfully!To start using your cluster, you need to run the following as a regular user: mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/configYou should now deploy a pod network to the cluster.Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at: https://kubernetes.io/docs/concepts/cluster-administration/addons/You can now join any number of machines by running the following on each nodeas root: kubeadm join 192.168.19.150:6443 --token i2yq5b.tpmy284orbzssb5a --discovery-token-ca-cert-hash sha256:f598777ca9d1f5bb7eee7e30e13cb41934473be0ec8bce9c917795e07156ae04你還需要給叢集部署一個 pod 網路,讓 pod 內部服務之間可以相互通訊我使用了 Calico ,根據官方文件,它需要以 192.168.0.0/16 網段來初始化useradd k8smkdir -p /home/k8s/.kubecp -i /etc/kubernetes/admin.conf /home/k8s/.kube/configchown k8s:k8s /home/k8s/.kube/config切換到 k8s 使用者su -l k8s安裝 Calico pod network kubectl get nodesNAME STATUS ROLES AGE VERSIONbogon NotReady master 8m v1.10.2測試環境使用單機叢集,可以使用如下命令,讓 master 上也可以有 podkubectl taint nodes --all node-role.kubernetes.io/master-kubeadm join 加入叢集注意:如果忘記了 token 的 hash,可以在沒有 reset (k8s 相關容器沒有被刪除)的情況下再次執行 kubeadm init 獲得,日誌中的 token 是相同的使用 root 使用者執行:kubeadm join 192.168.19.150:6443 --token i2yq5b.tpmy284orbzssb5a --discovery-token-ca-cert-hash sha256:f598777ca9d1f5bb7eee7e30e13cb41934473be0ec8bce9c917795e07156ae04 --ignore-preflight-errors=all出現如下日誌,則加入叢集成功[discovery] Successfully established connection with API Server "192.168.19.150:6443"This node has joined the cluster:* Certificate signing request was sent to master and a response was received.* The Kubelet was informed of the new secure connection details.Run 'kubectl get nodes' on the master to see this node join the cluster.執行 kubectl get nodesNAME STATUS ROLES AGE VERSIONbogon Ready master 28m v1.10.2刪除節點首先釋放 bogon 節點資源kubectl drain bogon --delete-local-data --force --ignore-daemonsets刪除 bogon 節點kubectl delete node bogon檢視節點kubectl get nodesNo resources found.至此搭建 k8s 叢集就大功告成了!

相關推薦

CentOS7 使用 kubeadm 搭建 kubernetes 叢集

序言本人在安裝 k8s 的過程中曲折不斷,故寫下此文,讓後人可以少走彎路。這篇文章只描述如何從0開始快速搭建 k8s 叢集,想更詳細瞭解具體遇到問題的分析過程和解決方案,可閱讀另一篇文章 —— CentOS7 使用 kubeadm 啟動 kubernetes 叢集(踩坑篇)本

Centos7 單機搭建redis叢集三主三從

概要:本文主要介紹如何在Centos7中單機搭建redis叢集三主三從,按照本文絕對可以實現該需求,至於先搭建單機版主要為了方便理解redis叢集,為下一步開發或生產上redis叢集做鋪墊。同時本人在搭建過程中也做了點總結,希望對沒有接觸過redis叢集或剛接觸redis叢集

Centos7安裝搭建FTP伺服器最簡便方法

  簡介: vsftpd 是“very secure FTP daemon”的縮寫,安全性是它的一個最大的特點。 vsftpd 是一個 UNIX 類作業系統上執行的伺服器的名字,它可以執行在諸如 Linux、BSD、Solaris、 HP-UNIX等系統上面,是一個完全免費的、開放原始碼的

史上最全 使用Breeze視覺化安裝Kubernetes叢集親測有效

使用該工具,將抹平普通使用者學習複雜的kubeadm部署技能學習曲線,體會到一鍵式部署Kubernetes叢集的樂趣! 適用作業系統為RHEL 7.4/7.5/7.6 或 CentOS 7.4/7.5/7.6 Note: 請不要把Breeze所在的部署主機加入部署叢集主機列表

Win1064位python3.6 xgboost 詳細安裝教程

首先下載 Anaconda,地址,然後正確安裝即可,在安裝過程中可選自動配置環境變數。 下載xgboost:地址,如下版本可選: xgboost‑0.7‑cp35‑cp35m‑win32.wh

使用Minikube部署本地Kubernetes叢集二十八

前言                使用Minikube部署本地k8s叢集相對比較簡單,非常推薦將其用於本地k8s開發環境,唯一麻煩點的僅僅是網路問題。 在本篇教程中,我們使用了國內的映象來完成本地k8s叢集的搭建。如果搭建過

docker簡易環境搭建實戰:以人人網開源專案renren-fast搭建分散式部署後端

docker簡易環境搭建實戰篇:以人人網開源專案(renren-fast)搭建分散式部署(後端篇) 寫在前面:注:閱讀本文前,請先閱讀docker標籤的docker簡易系列的文章。 後端最終實現的架構圖: 第一步 簡單瞭解人人開源專案renren-fast 官網:h

使用Kubeadm搭建Kubernetes(1.12.2)叢集

Kubeadm是Kubernetes官方提供的用於快速安裝Kubernetes叢集的工具,伴隨Kubernetes每個版本的釋出都會同步更新,在2018年將進入GA狀態,說明離生產環境中使用的距離越來越近了。 使用Kubeadm搭建Kubernetes叢集本來是件很簡單的事,但由於眾所周知的原因,在中國大陸

搭建kubernetes叢集詳細步驟包含所有映象資源

搭建kubernetes叢集 準備工作: 搭建k8s叢集之前首先準備好≥3臺的機器 並做好免密登陸 ssh-keygen -t rsa ssh-copy-id -i ~/.ssh/id_rsa.pub <各node節點IP> 設定好主機名和時間同步

Centos7 實現Hadoop-2.9.1分散式叢集搭建和部署三臺機器

一、準備三臺虛擬機器hadoop 192.168.131.128 localhost131 192.168.131.131 localhost134 192.168.131.134(以上是我的三臺虛擬機器的hostname 和 ip)hadoop 是 master 的 hos

使用Kubeadm(1.13+)快速搭建Kubernetes叢集

原文: 使用Kubeadm(1.13+)快速搭建Kubernetes叢集 Kubeadm是管理叢集生命週期的重要工具,從建立到配置再到升級,Kubeadm處理現有硬體上的生產叢集的引導,並以最佳實踐方式配置核心Kubernetes元件,以便為新節點提供安全而簡單的連線流程並支援輕鬆升級。隨著Kubernet

國內使用 kubeadm 在 Centos 7 搭建 Kubernetes 叢集

目錄 Kubeadm 介紹 環境、軟體準備 軟體安裝配置 映象準備 安裝 Docker 安裝並配置 Kubernetes 元件 初始化 Master 安裝 Flannel 網路元件 部署 Node 節點 安裝 Kubernetes Dashboard Da

CentOs7搭建hadoop叢集偽分散式

在yarn-site.xml新增 ` <property> <name>yarn.nodemanager.vmem-check-enabled</name&

Kubernetes(K8s) 安裝使用kubeadm安裝Kubernetes叢集

概述:         這篇文章是為了介紹使用kubeadm安裝Kubernetes叢集(可以用於生產級別)。使用了Centos 7系統。 PS:      篇幅有點長,但是比較詳細、比較全面 一、Centos7 配置說明 1.1 

開獎網後臺可控時時彩、賽車、飛艇

分享圖片 加密文件 遊戲 類別 FN alt 版本 height 網頁版 程序源碼參數說明:運行環境:php5.2+mysql源碼類別:極速開獎網後臺可控(極速時時彩、極速賽車、極速飛艇)界面語言:簡體中文源碼授權:無加密文件及認證授權,永久性可直接使用。版本支持:PC/W

Spring Cloud 進階之路 -- Eureka的高可用,搭建 Eureka叢集開發環境和生產環境

  Eureka 作為註冊中心,必須保障高可用,否則會直接影響有關的整個服務體系。 以下分別進行開發環境和生產環境的多服務中心叢集配置。   目錄 一、開發環境簡易配置: 1、配置Configurations 2、在Configurations 裡

搭建redis叢集-偽分散式

安裝redis #關閉防火牆並且安裝iptables(防火牆) 並在防火牆中新增規則,也可以用firewalld.service 防火牆 #如果是用firewalld.service 的防火牆的話下面的步驟可以忽略 # service iptables save The service com

Linux系統搭建Redis叢集redis-cluster

工具準備 Linux圖形化工具為Xftp,shell工具為Xshell #Redis叢集相關概念 redis-cluster架構圖 redis-cluster把所有的物理節點對映到[0-16383]slot上,cluster 負責維護 redi

阿里雲 Centos7.2 搭建redis 叢集

一、環境 1.Centos7.2 三臺 2.Redis叢集要求至少要有三個節點,我這裡配置三臺,每臺一主一備。 3.埠號 6379-6384  需要在阿里雲 安全策略中開通埠,同時要開通16379-16384(叢集匯流排埠為redis客戶端連線的埠 + 10000) 二

linux搭建初始php環境簡!

1.安裝apache [[email protected]_0_5_centos /]# yum -y install httpd   出現下圖表示安裝成功!     2.安裝php [[email protecte