1. 程式人生 > >Centos7 虛機部署Kubernetes叢集

Centos7 虛機部署Kubernetes叢集

在三臺OpenStack虛機環境下搭建Kubernetes + Flannel。

  1. 環境準備:

    1.1 伺服器:

    IPHostNameRole
    172.28.43.13k8s-masterMaster,etcd, registry
    172.28.43.16k8s-node1Node-1
    172.28.43.18k8s-node2Node-2

    1.2 三臺伺服器分別編輯/etc/hosts檔案:

    172.28.43.16    k8s-node1
    172.28.43.18    k8s-node2
    172.28.43.13    k8s-master
    172.28.43.13    etcd
    172.28.43.13    registry

    1.3 三臺伺服器分別關閉防火牆

    依次執行如下命令:

    systemctl disable firewalld.service
    systemctl stop firewalld.service

  2. 安裝部署etcd
    2.1 安裝etcd
    三臺伺服器依次執行:
    yum install etcd -y
    2.2 配置etcd
    編輯 /etc/etcd/etcd.conf 檔案,修改如下內容:
    [[email protected] etcd]# egrep -v "^#" /etc/etcd/etcd.conf
    ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
    ETCD_LISTEN_PEER_URLS="http://0.0.0.0:2380"
    ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379,http://0.0.0.0:4001"
    ETCD_NAME="k8s-master"
    ETCD_INITIAL_ADVERTISE_PEER_URLS="http://k8s-master:2380"
    ETCD_ADVERTISE_CLIENT_URLS="http://k8s-master:2379,http://k8s-master:4001"
    ETCD_INITIAL_CLUSTER="k8s-master=http://k8s-master:2380,k8s-node1=http://k8s-node1:2380,k8s-node2=http://k8s-node2:2380"
    ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"
    ETCD_INITIAL_CLUSTER_STATE="new"


    配置完後,啟動etcd服務,執行如下命令:

    systemctl restart etcd

    2.3 驗證etcd叢集,

    [[email protected] ~]# etcdctl member list
    6c74f3fd7534bb5: name=k8s-node1 peerURLs=http://k8s-node1:2380 clientURLs=http://k8s-node1:2379,http://k8s-node1:4001 isLeader=true
    a57a17f287dbe7bb: name=k8s-node2 peerURLs=http://k8s-node2:2380 clientURLs=http://k8s-node2:2379,http://k8s-node2:4001 isLeader=false
    ffe21a7812eb7c5f: name=k8s-master peerURLs=http://k8s-master:2380 clientURLs=http://k8s-master:2379,http://k8s-master:4001 isLeader=false



  3. 安裝配置docker
    3.1 安裝docker
    三臺伺服器上分別執行:
    yum install docker -y
    3.2 配置docker
    編輯 /etc/sysconfig/docker 檔案,新增一行:
    OPTIONS='--insecure-registry registry:5000'
    3.3 啟動docker
    設定開機自啟動並開啟服務
    chkconfig docker on
    service docker start

  4. 安裝配置Kubernetes
    4.1 安裝Kubernetes
    三臺伺服器上分別執行:
    yum install kubernetes -y

    4.2 配置Kubernetes:
    分master和node兩種角色來配置:

    4.2.1 在Kubernetes Master伺服器上做如下配置:
    kubernetes master需要執行以下元件:
        * Kubernets API Server
        * Kubernets Controller Manager
        * Kubernets Scheduler

    編輯/etc/kubernetes/apiserver,如下幾行修改成下面的樣子:
    KUBE_API_ADDRESS="--insecure-bind-address=0.0.0.0"
    KUBE_API_PORT="--port=8080"
    KUBE_ETCD_SERVERS="--etcd-servers=http://etcd:2379"
    KUBE_ADMISSION_CONTROL="--admission-control=NamespaceLifecycle,NamespaceExists,L
    imitRanger,SecurityContextDeny,ResourceQuota"


    編輯/etc/kubernetes/config,如下幾行修改成下面的樣子:
    KUBE_MASTER="--master=http://k8s-master:8080"

    4.2.3 啟動服務並設定開機自啟動
    systemctl enable kube-apiserver.service
    systemctl start kube-apiserver.service
    systemctl enable kube-controller-manager.service
    systemctl start kube-controller-manager.service
    systemctl enable kube-scheduler.service
    systemctl start kube-scheduler.service


    4.2.3 在Kubernetes Node上做如下配置:
    在kubernetes node上需要執行以下元件:
        * Kubelet
        * Kubernets Proxy
    修改/etc/kubernetes/config檔案,編輯如下行,
    KUBE_MASTER="--master=http://k8s-master:8080"

    修改/etc/kubernetes/kubelet,編輯如下行:
    KUBELET_ADDRESS="--address=0.0.0.0"
    # You may leave this blank to use the actual hostname
    KUBELET_HOSTNAME="--hostname-override=k8s-node1"
    # location of the api-server
    KUBELET_API_SERVER="--api-servers=http://k8s-master:8080"


    4.2.4 啟動服務並設定開機自啟動
    systemctl enable kubelet.service
    systemctl start kubelet.service
    systemctl enable kube-proxy.service
    systemctl start kube-proxy.service


    4.3 驗證Kubernetes叢集是否成功
    在k8s-master上執行如下命令,如果出現類似結果,則說明Kubernetes叢集已經執行起來。
    [[email protected] ~]#  kubectl -s http://k8s-master:8080 get node
    NAME        STATUS    AGE
    k8s-node1   Ready     36s
    k8s-node2   Ready     21s
    [[email protected] ~]# kubectl get nodes
    NAME        STATUS    AGE
    k8s-node1   Ready     47s
    k8s-node2   Ready     32s


  5. 安裝、配置Flannel
    5.1 安裝Flannel
    在master和兩臺node伺服器上分別執行:
    yum install –y flannel
    5.2 配置Flannel
    在master和兩臺node伺服器上分別編輯 /etc/sysconfig/flannel,修改如下一行:
    FLANNEL_ETCD_ENDPOINTS=http://etcd:2379

    注意:Flannel使用Etcd進行配置,來保證多個Flannel例項之間的配置一致性,所以需要在etcd上進行如下配置:(‘/atomic.io/network/config’這個key與上文/etc/sysconfig/flannel中的配置項FLANNEL_ETCD_PREFIX是相對應的,錯誤的話啟動就會出錯)
    5.3 新增網路:
    執行如下命令:
    etcdctl mk /atomic.io/network/config '{ "Network": "192.168.0.0/24" }'
    注意:新增的網路不可以是預設eth0所在的網路。

    5.4 啟動Flannel:
    啟動Flannel之後,需要依次重啟docker、kubernete。
    5.4.1 在master執行:
    systemctl enable flanneld.service 
    systemctl start flanneld.service 
    service docker restart
    systemctl restart kube-apiserver.service
    systemctl restart kube-controller-manager.service
    systemctl restart kube-scheduler.service

    5.4.2 在node上執行:
    systemctl enable flanneld.service 
    systemctl start flanneld.service 
    service docker restart
    systemctl restart kubelet.service
    systemctl restart kube-proxy.service

    5.5 驗證
    出現flannel0 docker0介面,基本可以判斷啟動無誤。
    5.5.1 Kubernetes Master上
    [[email protected] ~]# ip addr
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
           valid_lft forever preferred_lft forever
        inet6 ::1/128 scope host 
           valid_lft forever preferred_lft forever
    2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
        link/ether fa:16:3e:bf:15:1c brd ff:ff:ff:ff:ff:ff
        inet 172.28.43.13/24 brd 172.28.43.255 scope global dynamic eth0
           valid_lft 77879sec preferred_lft 77879sec
        inet6 fe80::f816:3eff:febf:151c/64 scope link 
           valid_lft forever preferred_lft forever
    5: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN 
        link/ether 02:42:b3:1a:55:dc brd ff:ff:ff:ff:ff:ff
        inet 192.168.37.1/24 scope global docker0
           valid_lft forever preferred_lft forever
    6: flannel0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1472 qdisc pfifo_fast state UNKNOWN qlen 500
        link/none 
        inet 192.168.37.0/16 scope global flannel0
           valid_lft forever preferred_lft forever


    5.5.2 Kubernetes node上:
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
           valid_lft forever preferred_lft forever
        inet6 ::1/128 scope host 
           valid_lft forever preferred_lft forever
    2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
        link/ether fa:16:3e:ab:df:76 brd ff:ff:ff:ff:ff:ff
        inet 172.28.43.16/24 brd 172.28.43.255 scope global dynamic eth0
           valid_lft 77699sec preferred_lft 77699sec
        inet6 fe80::f816:3eff:feab:df76/64 scope link 
           valid_lft forever preferred_lft forever
    3: flannel0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1472 qdisc pfifo_fast state UNKNOWN qlen 500
        link/none 
        inet 192.168.24.0/16 scope global flannel0
           valid_lft forever preferred_lft forever
    4: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN 
        link/ether 02:42:e3:54:9f:bb brd ff:ff:ff:ff:ff:ff
        inet 192.168.24.1/24 scope global docker0
           valid_lft forever preferred_lft forever
    【完】

相關推薦

Centos7 部署Kubernetes叢集

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

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

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

[Kubernetes]CentOS7部署Kubernetes叢集

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

centos7.3上部署Habse叢集及遇到的問題

一、前期準備工作 1、下載hbase安裝包 Hbaser官方下載地址:http://mirror.bit.edu.cn/apache/hbase/ 目前安裝的版本為:hbase-2.0.2-bin.tar.gz 2、準備好要安裝的叢集環境的目標機器 3、將下載好的壓縮包拷貝到叢集

centos7.3上部署zookeeper叢集環境

一、前期準備 1、下載zookeeper安裝包 zookeeper官方下載地址:http://www-eu.apache.org/dist/zookeeper/ zookeeper-3.5.3-beta.tar.gz 2、準備好要安裝的叢集環境的目標機器 3、將下載好的壓縮包拷貝

Centos7 linux 系統 部署hadoop 叢集

背景:最近新的工作要接觸大資料,所以需要先接觸一下hadoop,一步步學習下去,暫時沒有固定的學習路線,還是看公司工作需要。先把hadoop環境跑起來,再多想想為什麼。 **目的:部署的叢集結構如下: master slave1 slave2** **第一步:**

使用kubeadm部署kubernetes叢集

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

阿里雲centos7 四臺部署hadoop叢集

前言 : Hadoop 發展前景 : (1)分散式檔案系統 HDFS (GFS) 。 (2)資料的計算 : 分散式計算。 1 MapReduce , 搜尋排名 2 大任務 拆分成小任務 3 Map 階段 進行任務拆分,Reduce 階段進

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 的相關概念內容,上面這篇文章已經整理的很詳細了,這邊就不再進行敘述了。 這篇文章主要記錄的

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

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