1. 程式人生 > >使用指令碼部署kubernetes叢集

使用指令碼部署kubernetes叢集

docker部署

系統需求

// ubuntu 14.04  docker版本1.10.1 
// 解除安裝已有環境
apt-get purge docker-engine

安裝docker

sudo apt-get update
sudo apt-get install apt-transport-https ca-certificates
sudo apt-key adv --keyserver hkp://p80.pool.sks-    keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
// 開啟 /etc/apt/sources.list.d/docker.list 若無,則建立
// 寫入:deb https://apt.dockerproject.org/repo ubuntu-trusty main
sudo apt-get update
sudo apt-get purge lxc-docker
apt-cache policy docker-engine
sudo apt-get update
sudo apt-get install linux-image-extra-$(uname -r)
sudo apt-get update
sudo apt-get install docker-engine=1.10.1-0~trusty
sudo service docker start
// install docker-engine 速度慢可用使用deb安裝
// 映象地址 http://mirrors.aliyun.com/docker-engine/apt/repo/pool/main/d/docker-engine/docker-engine_1.10.1-0~trusty_amd64.deb
// sudo dpkg -i docker-engine_1.10.1-0~trusty_amd64.deb

參考地址

kubernetes部署

系統需求

  1. docker version 1.2 以上以及 bridge-utils(預設ubuntu都有)
  2. 所有節點機器網路互通
  3. ubuntu 14.04
  4. 多節點需要進行配置ssh連線不需要密碼[1]

準備工作

  1. github下載二進位制包 kubernetes.tar.gz 並解壓 (本實驗選擇1.3.5版本)
  2. 其中 kubernetes/platforms/linux/amd64/kubectl 是與 apiserver 互動的 client 程式
  3. 解壓 kubernetes/server/kubernetes-server-linux-amd64.tar.gz
  4. 在解壓到的 kubernetes 資料夾中找到 kubernetes-src.tar.gz 檔案
  5. 解壓 kubernetes-src.tar.gz 得到原始碼
  6. 以下類似 kubernetes/cluster/… 路徑中的 kubernetes 資料夾均指kubernetes-src.tar.gz 解壓出的資料夾

部署步驟

  1. 根據部署環境 修改kubernetes/cluster/ubuntu/config-default.sh 裡的配置[2]
  2. 執行修改好的config-default.sh

    ./config-default.sh
    
  3. 設定版本環境變數

    export KUBE_VERSION=1.3.5     // kubernetes的版本
    export FLANNEL_VERSION=0.5.5  // flannel的版本
    export ETCD_VERSION=2.2.1     // etcd的版本
    
  4. 為了安裝進度,將 etcd.tar.gz flannel.tar.gz kubernetes.tar.gz(提前下載好,改好名字) 拷貝到kubernetes/cluster/ubuntu下,並且修改該目錄的download-release.sh,註釋掉以下語句

    # curl https://github.com/coreos/flannel/releases/download/v${FLANNEL_VERSION}/flannel-${FLANNEL_VERSION}-linux-amd64.tar.gz -o flannel.tar.gz
    # curl -L https://github.com/coreos/etcd/releases/download/v${ETCD_VERSION}/${ETCD}.tar.gz -o etcd.tar.gz
    # curl -L https://github.com/kubernetes/kubernetes/releases/download/v${KUBE_VERSION}/kubernetes.tar.gz -o kubernetes.tar.gz
    
  5. 啟動安裝指令碼

    // 在 kubernetes/cluster/ 目錄下執行
    KUBERNETES_PROVIDER=ubuntu ./kube-up.sh
    
  6. DNS配置

    // 在 kubernetes/cluster/ubuntu 目錄下執行
    KUBERNETES_PROVIDER=ubuntu ./deployAddons.sh
    

參考地址

重啟kubernetes

  1. 首先到kubernetes/cluster/,命執行

    KUBERNETES_PROVIDER=ubuntu ./kube-down.sh
    
  2. ssh到其他節點

    cd  /opt/bin
    rm  -rf  *
    service flanneld stop
    service kube stop
    service kubelet stop
    service kube-proxy stop
    cd /etc/default/
    rm flanneld
    rm kubelet
    rm kube-proxy
    exit // 退出
    
  3. 進入 /kubernetes/cluster/ 執行

    KUBERNETES_PROVIDER=ubuntu ./kube-up.sh 
    

附錄

[1] 配置ssh無密碼登入

實驗中 TargetUser 使用者為 root 使用者

ssh-keygen -t dsa
ssh-add   ~/.ssh/id_dsa 
scp /root/.ssh/id-dsa.pub <TargetUser>@<TargetIP>:~
ssh <TargetUser>@<TargetIP>
cat id_dsa.pub >> ~/.ssh/authorized_keys
chmod +x ~/.ssh/authorized_keys 

[2] 配置k8s的export詳解

// 代表所要部署的節點,使用ssh連線的使用者名稱@節點地址
export nodes=${nodes:-"[email protected] [email protected]"}

// 代表各節點的屬性,‘ai’表示既是主機也是節點,‘a’表示是主機,‘i'表示時節點
roles=${roles:-"ai i"} export roles_array=($roles)

// 代表節點個數
export NUM_NODES=${NUM_NODES:-2}

// 代表kubernetes服務IP範圍,可根據RFC1918使用以下三個私有網路範圍進行定義,不要與自己專用的私有網路衝突
export SERVICE_CLUSTER_IP_RANGE=${SERVICE_CLUSTER_IP_RANGE:-192.168.3.0/24}

三個私有網路範圍:

  • 10.0.0.0 - 10.255.255.255 (10/8 prefix)
  • 172.16.0.0 - 172.31.255.255 (172.16/12 prefix)
  • 192.168.0.0 - 192.168.255.255 (192.168/16 prefix)

gcr.io host IP

kubernetes預設會去gcr.io/google_containers/pause下載映象,pod建立停留在ContainerCreating階段,修改hosts檔案解決(每個k8s Node都需要修改)

64.233.162.82   gcr.io
64.233.162.82   https://gcr.io/

相關推薦

使用指令碼部署kubernetes叢集

docker部署 系統需求 // ubuntu 14.04 docker版本1.10.1 // 解除安裝已有環境 apt-get purge docker-engine 安裝docker sudo apt-get update sudo a

使用kubeadm部署kubernetes叢集

一、安裝環境準備 1、安裝環境: centos7.5,一個master節點,兩個node節點 CentOS Linux release 7.5.1804 (Core) 2、設定/etc/hosts檔案的IP和主機名對映 10.20.0.14 k8smaster 10.

[Kubernetes]CentOS7部署Kubernetes叢集

環境介紹及安裝前準備 三臺機器,用於部署k8s的執行環境: 節點 ip Master 192.168.243.138

Kubernetes(k8s)中文文件 Mesos部署Kubernetes叢集_Kubernetes中文社群

譯者:王樂 關於在Mesos上執行Kubernetes Mesos允許Kubernetes和其他Mesos構架,例如:Hadoop,Spark和Chronos來動態分享叢集資源。 Mesos確保同一叢集上的執行的不同架構上的應用之間相互隔離,和較公平資源的分配。 Mesos叢集幾乎可以部署在任何Ia

Kubernetes(k8s)中文文件 CentOS部署Kubernetes叢集_Kubernetes中文社群

譯者:張以法 前提條件 你需要2臺或以上安裝有CentOS的機器 啟動一個叢集 本文是針對CentOS系統的Kubernetes入門教程。通過手動配置,你將會理解所有底層的包、服務、埠等。 本文只會讓一個節點工作。多節點需要在Kubernetes之外配置一個可用的的網路環境,儘管這個額外的配置條件是

Kubernetes(k8s)中文文件 CloudStack部署Kubernetes叢集_Kubernetes中文社群

簡介 CloudStack是一個用於構建基於硬體虛擬化的公有云和私有云(傳統IaaS)的軟體。在CloudStack 上部署 Kubernetes 有好幾種方法,需要根據 CloudStack 所使用的哪種雲和有哪些可用映象來決定。 例如 Exoscale 就提供了一個 coreOS 的可用模版,因

Kubernetes(k8s)中文文件 CoreOS部署Kubernetes叢集_Kubernetes中文社群

在Coreos執行Kubernetes有多個指南: CoreOS官方指南 這些指南由CoreOs維護,“CoreOS Way”提供了TLS協議,DNS add-on等部署Kubernetes的指南。指南都通過了Kubernetes的一致性測試,當然,也鼓勵自己測試自己的部署。 Vagrant Mul

Kubernetes(k8s)中文文件 Ferdora部署Kubernetes叢集_Kubernetes中文社群

前提條件 1. 你需要2臺或以上安裝有Fedora的機器 說明 本文是針對Fedora系統的Kubernetes入門教程。通過手動配置,你將會理解所有底層的包、服務、埠等。 本文只會讓一個節點(之前稱從節點)工作。多節點需要在Kubernetes之外配置一個可用的網路環境,儘管這個額外的配置條件是顯

Kubernetes(k8s)中文文件 vSphere部署Kubernetes叢集_Kubernetes中文社群

譯者:tiger 下面的示例使用了4個虛擬工作節點和1個虛擬主機(即叢集中一共有5臺虛擬機器)來建立一個Kubernetes叢集。叢集是通過你的工作站(或任何你覺得方便的地方)來安裝和控制的。 前提條件 需要有一臺ESXi機器或vCenter例項的管理員許可權。 需要先安裝Go(1.2或以上版本)

如何在 Azure 上部署 Kubernetes 叢集_Kubernetes中文社群

本文是一篇技術教程,由 Mike Chaliy 撰寫。他是一位 .NET 平臺使用者,嘗試在 Azure 上部署 Kubernetes 叢集,並將步驟寫成了這篇帖子。文章描寫了部署叢集過程,還對 Kubernetes 的一些功能進行了簡要描述。 以下是文章主要內容: 在實驗、演示的時候,或者是

使用kubeadm一鍵部署kubernetes叢集

此連結中有kubeadm v1.10.3安裝 用了flannel網路 我使用calico網路https://blog.csdn.net/nklinsirui/article/details/80602724github地址https://github.com/cookcode

K8s 二、(1、kubeadm部署Kubernetes叢集)

準備工作 滿足安裝 Docker 專案所需的要求,比如 64 位的 Linux 作業系統、3.10 及以上的核心版本; x86 或者 ARM 架構均可; 機器之間網路互通,這是將來容器之間網路互通的前提; 有外網訪問許可權,因為需要拉取映象; 能夠訪問到gcr.io、

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

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

Kubeadm 安裝部署 Kubernetes 叢集

閱讀目錄: 準備工作 部署 Master 管理節點 部署 Minion 工作節點 部署 Hello World 應用 安裝 Dashboard 外掛 安裝 Heapster 外掛 後記 關於 Kubernetes 的相關概念內容,上面這篇文章已經整理的很詳細了,這邊就不再進行敘述了。 這篇文章主要記錄的

使用Kubeadm在CentOS7.2上部署Kubernetes叢集

本文參考kubernetes官網文章Installing Kubernetes on Linux with kubeadm在CentOS7.2使用Kubeadm部署Kuebernetes叢集,解決了一些在按照該文件部署時遇到的問題。 作業系統版本

部署 Kubernetes 叢集日誌外掛 Fluentd、Elasticsearch、Kibana

目錄 Kubernetes 日誌架構介紹 環境、軟體準備 啟動 Fluentd 啟動 Elasticsearch 啟動 Kibana 瀏覽器新增證書 RBAC 認證模式介紹 1、Kubernetes 日誌架構介紹 對於任何基礎架構或者服務系

Centos7 虛機部署Kubernetes叢集

在三臺OpenStack虛機環境下搭建Kubernetes + Flannel。環境準備:1.1 伺服器:IPHostNameRole172.28.43.13k8s-masterMaster,etcd, registry172.28.43.16k8s-node1Node-11

在 Azure 上部署 Kubernetes 叢集

在實驗、演示的時候,或者是生產過程中,我經常會需要執行一些 Docker 負載。雖然這在本地計算機上十分容

Shell指令碼實現----Kubernetes叢集二進位制部署

 Shell指令碼實現----Kubernetes單叢集二進位制部署         搭建Kubernetes叢集環境有以下三種方式: 1. Minikube安裝方式Minikube是一個工具,可以在本地快速執行一個單點的Kubernetes,

使用kubeadm快速部署Kubernetes(v1.12.1)叢集---來源:馬哥教育馬哥原創

使用kubeadm快速部署Kubernetes(v1.12.1)叢集------來源:馬哥教育馬哥原創 Kubernetes技術已經成為了原生雲技術的事實標準,它是目前基礎軟體領域最為熱門的分散式排程和管理平臺。於是,Kubernetes也幾乎成了時下開發工程師和運維工程師必備的技能之一。 一、主機環境預