1. 程式人生 > >kubernetes(k8s)叢集搭建

kubernetes(k8s)叢集搭建

一、概述

1.簡介

  • Kubernetes是一個開源的,用於管理雲平臺中多個主機上的容器化的應用,Kubernetes的目標是讓部署容器化的應用簡單並且高效(powerful),Kubernetes提供了應用部署,規劃,更新,維護的一種機制。
  • Kubernetes一個核心的特點就是能夠自主的管理容器來保證雲平臺中的容器按照使用者的期望狀態執行著(比如使用者想讓apache一直執行,使用者不需要關心怎麼去做,Kubernetes會自動去監控,然後去重啟,新建,總之,讓apache一直提供服務),管理員可以載入一個微型服務,讓規劃器來找到合適的位置,同時,Kubernetes也系統提升工具以及人性化方面,讓使用者能夠方便的部署自己的應用。

2.Kubernetes組成

  • Kubernetes節點有執行應用容器必備的服務,而這些都是受Master的控制。
  • 每個節點上都要執行Docker。Docker來負責所有具體的映像下載和容器執行。
  • Kubernetes主要由以下幾個核心元件組成:

    • etcd儲存了整個叢集的狀態;
    • apiserver提供了資源操作的唯一入口,並提供認證、授權、訪問控制、API註冊和發現等機制;
    • controller manager負責維護叢集的狀態,比如故障檢測、自動擴充套件、滾動更新等;
    • scheduler負責資源的排程,按照預定的排程策略將Pod排程到相應的機器上;
    • kubelet負責維護容器的生命週期,同時也負責Volume(CVI)和網路(CNI)的管理;
    • Container runtime負責映象管理以及Pod和容器的真正執行(CRI);
    • kube-proxy負責為Service提供cluster內部的服務發現和負載均衡;
  • 除了核心元件,還有一些推薦的Add-ons:

    • kube-dns負責為整個叢集提供DNS服務
    • Ingress Controller為服務提供外網入口
    • Heapster提供資源監控
    • Dashboard提供GUI
    • Federation提供跨可用區的叢集
    • Fluentd-elasticsearch提供叢集日誌採集、儲存與查詢

二、Kubernetes叢集搭建

2.1實驗環境

系統: redhat7.2
server2:172.25.27.2 (k8s-master)
server3:172.25.27.3 (k8s-node1)
server3:172.25.27.4 (k8s-node2)

2.2 yum 源配置

[root@server2 ~]# vim /etc/yum.repos.d/docker.repo
[virt7-docker-common-release]
name=virt7-docker-common-release
baseurl=http://cbs.centos.org/repos/virt7-docker-common-release/x86_64/os/
gpgcheck=0

2.3安裝配置Kubernetes Master

[root@server2 ~]# yum -y install etcd kubernetes-master
[root@server2 ~]# vim /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"

[root@server2 ~]# vim /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=172.25.0.0/16"
KUBE_ADMISSION_CONTROL="--admission-control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ResourceQuota"
KUBE_API_ARGS=""

2.4啟動etcd、kube-apiserver、kube-controller-manager、kube-scheduler等服務,並設定開機啟動

[root@server2 ~]# for SERVICES in etcd kube-apiserver kube-controller-manager kube-scheduler; do systemctl restart $SERVICES;systemctl enable $SERVICES;systemctl status $SERVICES ; done

2.5在etcd中定義flannel網路

[[email protected] ~]# etcdctl mk /atomic.io/network/config '{"Network":"172.25.0.0/16"}'

2.6安裝配置Kubernetes Node

  • 使用yum安裝flannel和kubernetes-node
    yum 源同master
[root@server3 ~]# yum -y install flannel kubernetes-node
  • 為flannel網路指定etcd服務,修改/etc/sysconfig/flanneld檔案
[root@server3 ~]# vim /etc/sysconfig/flanneld
FLANNEL_ETCD="http://172.25.27.2:2379"
FLANNEL_ETCD_KEY="/atomic.io/network"
  • 修改/etc/kubernetes/config檔案
[root@server3 ~]# vim /etc/kubernetes/config
KUBE_LOGTOSTDERR="--logtostderr=true"
KUBE_LOG_LEVEL="--v=0"
KUBE_ALLOW_PRIV="--allow-privileged=false"
KUBE_MASTER="--master=http://172.25.27.2:8080"
  • 修改對應node的配置檔案/etc/kubernetes/kubelet
[root@server3 ~]# vim /etc/kubernetes/kubelet
KUBELET_ADDRESS="--address=0.0.0.0"
KUBELET_PORT="--port=10250"
KUBELET_HOSTNAME="--hostname-override=172.25.27.3" #修改成對應Node的IP
KUBELET_API_SERVER="--api-servers=http://172.25.27.2:8080" #指定Master節點的API Server
KUBELET_POD_INFRA_CONTAINER="--pod-infra-container-image=registry.access.redhat.com/rhel7/pod-infrastructure:latest"
KUBELET_ARGS=""
  • 在所有Node節點上啟動kube-proxy,kubelet,docker,flanneld等服務,並設定開機啟動。
[root@server3 ~]# for SERVICES in kube-proxy kubelet docker flanneld;do systemctl restart $SERVICES;systemctl enable $SERVICES;systemctl status $SERVICES; done

2.7驗證叢集是否安裝成功

在master上執行如下命令

[root@server2 ~]# kubectl get node
NAME          LABELS                               STATUS    AGE
172.25.27.3   kubernetes.io/hostname=172.25.27.3   Ready     14m

可以新增多個節點,我只添加了一個
這裡寫圖片描述

相關推薦

kubernetes(k8s)叢集搭建

一、概述 1.簡介 Kubernetes是一個開源的,用於管理雲平臺中多個主機上的容器化的應用,Kubernetes的目標是讓部署容器化的應用簡單並且高效(powerful),Kubernetes提供了應用部署,規劃,更新,維護的一種機制。 Kub

(二)超詳細純手工搭建kubernetes(k8s)叢集

1. 部署ETCD(主節點)1.1 簡介kubernetes需要儲存很多東西,像它本身的節點資訊,元件資訊,還有通過kubernetes執行的pod,deployment,service等等。都需要持久化。etcd就是它的資料中心。生產環境中為了保證資料中心的高可用和資料的一

k8s叢集搭建

  上來裝centos7叢集敲著命令呢,突然網斷了,我以為我哪裡命令搞錯了,弄崩了系統,重灌,之前因為已經zhua裝好一個centos7並且多裝了個vmtools,後面查明 cd /etc/sysconfig/network-scripts/ vim  ifcfg-ens

Kubernetes(K8S)叢集在centos7.4下建立

自己在搭Kubernetes(K8S)叢集下遇到的坑寫一點隨筆。 本次採用192.168.60.21,192.168.60.22,192.168.60.23作為需要裝的伺服器。 master需要安裝etcd, flannel,docker, kubernetes   192.168.6

Kubernetes(K8S)叢集管理Docker容器(部署篇)

今天這篇文章教給大家如何快速部署一套Kubernetes叢集。K8S叢集部署有幾種方式:kubeadm、minikube和二進位制包。前兩者屬於自動部署,簡化部署操作,我們這裡強烈推薦初學者使用二進位制

Kubernetes Docker叢集搭建過程

一、環境準備 兩臺裝置,IP分別為95.211(作為Master)和95.217。兩臺裝置的作業系統都是Centos7.3。 二、K8s獲取 三、安裝etcd和flannel 在安裝K8s之前必需要先安裝etcd和flannel。 下載成功後分別解壓,然後將程式加入到

kubernetes 簡單叢集搭建(2臺虛擬機器)

之前做的實驗都是單臺伺服器上進行,最近做到需要在其它節點部署pod master部署可以參考之前的文件,node節點上只需要啟動兩個程序。首先安裝軟體:yum install etcd kubernetes -y 兩臺節點ip: 192.168.1.82

二進位制安裝Kubernetes(K8s)叢集---從零安裝教程

一、K8s介紹 1、K8s簡介 (1)使用Kubernetes,你可以快速高效地響應客戶需求: 動態地對應用進行擴容。 無縫地釋出新特性。 僅使用需要的資源以優化硬體使用。 (2)Kubernetes是: 簡潔的:輕量級,簡單,易上手

Kubernetes(K8S)叢集管理Docker容器

一、架構拓撲圖 二、環境規劃 角色 IP 元件 master 172.25.77.1 etcd kube-apiserver kube-

搭建K8S叢集kubernetes -1.11.3

搭建K8S叢集 kubernetes 1.11.3 1.1 實驗架構: kubernetes架構 node1: master 10.192.44.129 node2: node2 10.192.44.127 node3: node3 10.192.44.126 etcd架構 no

【從零開始/親測國內外均可】基於阿里雲Ubuntu的kubernetes(k8s)主從節點分散式叢集搭建——分步詳細攻略v1.11.3【準備工作篇】

從零開始搭建k8s叢集——香港節點無牆篇【大陸節點有牆的安裝方法我會在每一步操作的時候提醒大家的注意,並告訴大家如何操作】 由於容器技術的火爆,現在使用K8s開展服務變得越來越廣泛了。 本攻略是基於阿里雲主機搭建的一個單主節點和單從節點的最簡k8s分散式叢集。 為了製作

搭建k8s叢集,並安裝Kubernetes

環境介紹基本環境CentOS Linux release 7.5.1804 (Core)JDK1.8.0_161Kubernetes v1.5.2yum源:清華大學部署規劃Master:ip: 10.10.202.158hostname: apm-slave-02安裝節點dockeretcdflannelku

純手工搭建kubernetes(k8s)1.9集群 - (二)核心模塊部署

kubernetes 集群部署 環境搭建 devops 持續集成 1. 部署ETCD(主節點) 1.1 簡介 ??kubernetes需要存儲很多東西,像它本身的節點信息,組件信息,還有通過kubernetes運行的pod,deployment,service等等。都需要持久化。etcd就

Kubernetes實戰 高可用叢集搭建,配置,運維與應用

1-1 K8S導學 1-2 搭建K8S叢集步驟和要點介紹 1-3 搭建三節點Ubuntu環境 1-4 安裝容器引擎 1-5 下載Kubeadm、node元件和命令列工具 1-6 向叢集中加入worker節點 1-7 安裝dashboard和heapste

CnetOS7 k8s docker叢集搭建

環境: centos7系統(VMware中安裝的阿里雲映象)機器兩臺: 192.168.84.129: 用來安裝kubernetes master 192.168.84.128: 用作kubernetes minion (minion) 一、 關閉系統執行的防火牆及s

Kubernetes系列之四:使用yaml檔案建立deployment來部署一個應用程式到k8s叢集

目的 從零開始開發一個超小的應用,將它打包成一個image,利用yaml檔案部署到kube叢集中。 具體的思路是:在開發環境中,打算建立一個node.js應用程式,因為使用它可以讓我的程式足夠簡單,然後使用dockerfile去建立一個docker image,再將它push到doc

Kubernetes系列之三:部署你的第一個應用程式到k8s叢集

部署你的第一個應用程式到k8s叢集 看到這裡,求知慾飢渴難耐的你一定在想,怎麼部署的我們應用程式到叢集裡面去呢?來個簡單的,只需要兩步:(這裡本文使用nginx映象當我們的應用程式,因為nginx 簡單,執行起來後直接可以用瀏覽器訪問網頁了。) 第一步:在master 節點上建立一個

rancher2.0搭建簡單的k8s叢集

rancher2.0搭建簡單的k8s叢集 安裝docker:選擇docker版本【docker 17.03.2-ce】,安裝步驟參考這裡,也可以選擇直接執行下面的命令 sudo yum update -y curl -o /etc/yum.repos.d/C

Kubernetes叢集搭建

0. 概要 使用kubeadm搭建一個單節點kubernets例項,僅供學習. 執行環境和軟體概要如下: ~ 版本 備註 OS Ubuntu 18.0.4 192.168.132.152 my.servermas

Kubernetes 叢集搭建

基礎環境 系統環境# cat /etc/redhat-releaseCentOS Linux release 7.3.1611 (Core) 主機名設定 centos-master 192.168.59.135 centos-minion1 192.168.59.132 centos-minion2