kubernetes1.5.2部署叢集
1、環境介紹及準備:
1.1 物理機作業系統
物理機作業系統採用Centos7.3 64位,細節如下。
[[email protected] ~]# uname -a Linux localhost.localdomain 3.10.0-514.6.1.el7.x86_64 #1 SMP Wed Jan 18 13:06:36 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux [[email protected] ~]# cat /etc/redhat-release CentOS Linux release 7.3.1611 (Core)
1.2 主機資訊
本文準備了三臺機器用於部署k8s的執行環境,細節如下:
節點及功能 |
主機名 |
IP |
Master、etcd、registry |
K8s-master |
10.0.251.148 |
Node1 |
K8s-node-1 |
10.0.251.153 |
Node2 |
K8s-node-2 |
10.0.251.155 |
設定三臺機器的主機名:
Master上執行:
[[email protected] ~]# hostnamectl --static set-hostname k8s-master
Node1上執行:
[[email protected]~]# hostnamectl --static set-hostname k8s-node-1
Node2上執行:
[[email protected] ~]# hostnamectl --static set-hostname k8s-node-2
在三臺機器上設定hosts,均執行如下命令:
echo '10.0.251.148 k8s-master 10.0.251.148 etcd 10.0.251.148 registry 10.0.251.153 k8s-node-1 10.0.251.155 k8s-node-2' >> /etc/hosts
1.3 關閉三臺機器上的防火牆
systemctl disable firewalld.service
systemctl stop firewalld.service
2、部署etcd
k8s執行依賴etcd,需要先部署etcd,本文采用yum方式安裝:
[[email protected] ~]# yum install etcd -y
yum安裝的etcd預設配置檔案在/etc/etcd/etcd.conf。編輯配置檔案,更改以下帶顏色部分資訊:
[[email protected] ~]# vi /etc/etcd/etcd.conf # [member] ETCD_NAME=master ETCD_DATA_DIR="/var/lib/etcd/default.etcd" #ETCD_WAL_DIR="" #ETCD_SNAPSHOT_COUNT="10000" #ETCD_HEARTBEAT_INTERVAL="100" #ETCD_ELECTION_TIMEOUT="1000" #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_MAX_SNAPSHOTS="5" #ETCD_MAX_WALS="5" #ETCD_CORS="" # #[cluster] #ETCD_INITIAL_ADVERTISE_PEER_URLS="http://localhost:2380" # if you use different ETCD_NAME (e.g. test), set ETCD_INITIAL_CLUSTER value for this name, i.e. "test=http://..." #ETCD_INITIAL_CLUSTER="default=http://localhost:2380" #ETCD_INITIAL_CLUSTER_STATE="new" #ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster" ETCD_ADVERTISE_CLIENT_URLS="http://etcd:2379,http://etcd:4001" #ETCD_DISCOVERY="" #ETCD_DISCOVERY_SRV="" #ETCD_DISCOVERY_FALLBACK="proxy" #ETCD_DISCOVERY_PROXY=""
啟動並驗證狀態
[[email protected] ~]# systemctl start etcd [[email protected] ~]# etcdctl set testdir/testkey0 0 0 [[email protected] ~]# etcdctl get testdir/testkey0 0 [[email protected] ~]# etcdctl -C http://etcd:4001 cluster-health member 8e9e05c52164694d is healthy: got healthy result from http://0.0.0.0:2379 cluster is healthy [[email protected] ~]# etcdctl -C http://etcd:2379 cluster-health member 8e9e05c52164694d is healthy: got healthy result from http://0.0.0.0:2379 cluster is healthy
擴充套件:Etcd叢集部署參見——http://www.cnblogs.com/zhenyuyaodidiao/p/6237019.html
3、部署master
3.1 安裝Docker
[[email protected] ~]# yum install docker
配置Docker配置檔案,使其允許從registry中拉取映象。
[[email protected] ~]# vim /etc/sysconfig/docker # /etc/sysconfig/docker # Modify these options if you want to change the way the docker daemon runs OPTIONS='--selinux-enabled --log-driver=journald --signature-verification=false' if [ -z "${DOCKER_CERT_PATH}" ]; then DOCKER_CERT_PATH=/etc/docker fi OPTIONS='--insecure-registry registry:5000'
設定開機自啟動並開啟服務
[[email protected] ~]# chkconfig docker on [[email protected]-master ~]# service docker start
3.2 安裝kubernets
[[email protected] ~]# yum install kubernetes
3.3 配置並啟動kubernetes
在kubernetes master上需要執行以下元件:
Kubernets API Server
Kubernets Controller Manager
Kubernets Scheduler
相應的要更改以下幾個配置中帶顏色部分資訊:
3.3.1 /etc/kubernetes/apiserver
[[email protected] ~]# vim /etc/kubernetes/apiserver ### # kubernetes system config # # The following values are used to configure the kube-apiserver # # The address on the local server to listen to. KUBE_API_ADDRESS="--insecure-bind-address=0.0.0.0" # The port on the local server to listen on. KUBE_API_PORT="--port=8080" # Port minions listen on # KUBELET_PORT="--kubelet-port=10250" # Comma separated list of nodes in the etcd cluster KUBE_ETCD_SERVERS="--etcd-servers=http://etcd:2379" # Address range to use for services KUBE_SERVICE_ADDRESSES="--service-cluster-ip-range=10.254.0.0/16" # default admission control policies #KUBE_ADMISSION_CONTROL="--admission-control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ServiceAccount,ResourceQuota" KUBE_ADMISSION_CONTROL="--admission-control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ResourceQuota" # Add your own! KUBE_API_ARGS=""
3.3.2 /etc/kubernetes/config
[[email protected] ~]# vim /etc/kubernetes/config ### # kubernetes system config # # The following values are used to configure various aspects of all # kubernetes services, including # # kube-apiserver.service # kube-controller-manager.service # kube-scheduler.service # kubelet.service # kube-proxy.service # logging to stderr means we get it in the systemd journal KUBE_LOGTOSTDERR="--logtostderr=true" # journal message level, 0 is debug KUBE_LOG_LEVEL="--v=0" # Should this cluster be allowed to run privileged docker containers KUBE_ALLOW_PRIV="--allow-privileged=false" # How the controller-manager, scheduler, and proxy find the apiserver KUBE_MASTER="--master=http://k8s-master:8080"
啟動服務並設定開機自啟動
[[email protected] ~]# systemctl enable kube-apiserver.service [[email protected]-master ~]# systemctl start kube-apiserver.service [[email protected]-master ~]# systemctl enable kube-controller-manager.service [[email protected]-master ~]# systemctl start kube-controller-manager.service [[email protected]-master ~]# systemctl enable kube-scheduler.service [[email protected]-master ~]# systemctl start kube-scheduler.service
4、部署node
4.1 安裝docker
參見3.1
4.2 安裝kubernets
參見3.2
4.3 配置並啟動kubernetes
在kubernetes node上需要執行以下元件:
Kubelet
Kubernets Proxy
相應的要更改以下幾個配置文中帶顏色部分資訊:
4.3.1 /etc/kubernetes/config
[[email protected]1 ~]# vim /etc/kubernetes/config ### # kubernetes system config # # The following values are used to configure various aspects of all # kubernetes services, including # # kube-apiserver.service # kube-controller-manager.service # kube-scheduler.service # kubelet.service # kube-proxy.service # logging to stderr means we get it in the systemd journal KUBE_LOGTOSTDERR="--logtostderr=true" # journal message level, 0 is debug KUBE_LOG_LEVEL="--v=0" # Should this cluster be allowed to run privileged docker containers KUBE_ALLOW_PRIV="--allow-privileged=false" # How the controller-manager, scheduler, and proxy find the apiserver KUBE_MASTER="--master=http://k8s-master:8080"
4.3.2 /etc/kubernetes/kubelet
[[email protected]1 ~]# vim /etc/kubernetes/kubelet ### # kubernetes kubelet (minion) config # The address for the info server to serve on (set to 0.0.0.0 or "" for all interfaces) KUBELET_ADDRESS="--address=0.0.0.0" # The port for the info server to serve on # KUBELET_PORT="--port=10250" # You may leave this blank to use the actual hostname KUBELET_HOSTNAME="--hostname-override=k8s-node-1" # location of the api-server KUBELET_API_SERVER="--api-servers=http://k8s-master:8080" # pod infrastructure container KUBELET_POD_INFRA_CONTAINER="--pod-infra-container-image=registry.access.redhat.com/rhel7/pod-infrastructure:latest" # Add your own! KUBELET_ARGS=""
啟動服務並設定開機自啟動
[[email protected] ~]# systemctl enable kubelet.service [[email protected]-master ~]# systemctl start kubelet.service [[email protected]-master ~]# systemctl enable kube-proxy.service [[email protected]-master ~]# systemctl start kube-proxy.service
4.4 檢視狀態
在master上檢視叢集中節點及節點狀態
[[email protected] ~]# kubectl -s http://k8s-master:8080 get node NAME STATUS AGE k8s-node-1 Ready 3m k8s-node-2 Ready 16s [[email protected]-master ~]# kubectl get nodes NAME STATUS AGE k8s-node-1 Ready 3m k8s-node-2 Ready 43s
至此,已經搭建了一個kubernetes叢集,但目前該叢集還不能很好的工作,請繼續後續的步驟。
5、建立覆蓋網路——Flannel
5.1 安裝Flannel
在master、node上均執行如下命令,進行安裝
[[email protected] ~]# yum install flannel
版本為0.0.5
5.2 配置Flannel
master、node上均編輯/etc/sysconfig/flanneld,修改紅色部分
[[email protected] ~]# vi /etc/sysconfig/flanneld # Flanneld configuration options # etcd url location. Point this to the server where etcd runs FLANNEL_ETCD_ENDPOINTS="http://etcd:2379" # etcd config key. This is the configuration key that flannel queries # For address range assignment FLANNEL_ETCD_PREFIX="/atomic.io/network" # Any additional options that you want to pass #FLANNEL_OPTIONS=""
5.3 配置etcd中關於flannel的key
Flannel使用Etcd進行配置,來保證多個Flannel例項之間的配置一致性,所以需要在etcd上進行如下配置:(‘/atomic.io/network/config’這個key與上文/etc/sysconfig/flannel中的配置項FLANNEL_ETCD_PREFIX是相對應的,錯誤的話啟動就會出錯)
[[email protected] ~]# etcdctl mk /atomic.io/network/config '{ "Network": "10.0.0.0/16" }' { "Network": "10.0.0.0/16" }
5.4 啟動
啟動Flannel之後,需要依次重啟docker、kubernete。
在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
在node上執行:
systemctl enable flanneld.service
systemctl start flanneld.service
service docker restart
systemctl restart kubelet.service
systemctl restart kube-proxy.service
相關推薦
kubernetes1.5.2部署叢集
1、環境介紹及準備: 1.1 物理機作業系統 物理機作業系統採用Centos7.3 64位,細節如下。 [[email protected] ~]# uname -a Linux localhost.localdomain 3.10.0-514.6.1
kubernetes1.5.2--部署dashboard服務
本文基於kubernetes 1.5.2版本編寫 使用http方式訪問api server的部署 cat dashboard-controller.yaml apiVersion: extensions/v1beta1 kind: Deployment metadata: &n
centos7.2搭建kubernetes1.5.2+dashboard
heartbeat status vol 持久 種類型 data 操作系統 sig mct 一、 簡介 近來容器對企業來說已經不是什麽陌生的概念,Kubernetes作為Google開源的容器運行平臺,受到了大家的熱捧。搭建一套完整的kubernetes平臺,也成為試
logstash5.5.2部署-03
ubuntu16.04 1、安裝前必須有Java java -version java version "1.8.0_65" Java(TM) SE Runtime Environment (build 1.8.0_65-b17) Java HotSpot
kubernetes v1.5.2搭建,部署nginx,tomcat,三臺centos7 叢集,一篇秒懂kubernetes工具
安裝vmware 先安裝一個,centos7 minimal模式,安裝完重啟,輸入root與密碼,進入控制檯 ip addr //可以看ip,minimal是沒有安裝ifconfig等等工具的 配置開機聯網 cd /etc/sysconfig/network-script
Hadoop2.5.2叢集部署(完全分散式)
環境介紹 硬體環境 CPU 4 MEM 4G 磁碟 60G 軟體環境 OS:centos6.5版本 64位 Hadoop:hadoop2.5.2 64位 JDK: JDK 1.8.0_91 主機配
CentOS7.5 使用二進位制程式部署Kubernetes1.12.2(三)
一、安裝方式介紹 1、yum 安裝 目前CentOS官方已經把Kubernetes源放入到自己的預設 extras 倉庫裡面,使用 yum 安裝,好處是簡單,壞處也很明顯,需要官方更新 yum 源才能獲得最新版本的軟體,而所有軟體的依賴又不能自己指定,尤其是你的作業系統版本如果低的話,使用 yum 源安裝
CentOS7部署ElasticSearch 5.2.2 版本叢集搭建
CentOS7(CentOS Linux release 7.3.1611 (Core))部署ElasticSearch-5.2.2集群系統規劃 節點名稱 內部IP地址 對外IP地址 軟體版本 no
1、kubernetes 1.5.2原理以及叢集HA部署
Kubernetes是什麼? 1.是一個全新的基於容器技術的分散式架構,是谷歌的Borg技術的一個開源版本 Borg是谷歌的一個久負盛名的內部使用的大規模叢集管理系統,基於容器技術,目的是實現資源管理的自動化,垮多個數據中心的資源利用率的最大化 2.Kuberne
新手小白Linux(Centos6.5)部署java web項目(mongodb4.0.2安裝及相關操作)
read har space 創建 縮進 路徑 .org font url 紅帽企業或CentOS的Linux上安裝MongoDB的社區版: https://docs.mongodb.com/manual/tutorial/install-mongodb-on-red-ha
Docker實戰之安裝配置Hadoop-2.5.2完全分散式叢集
環境配置 VM:VMware Workstation OS:Ubuntu 14.04 LTS Hadoop:hadoop-2.5.2 Hadoop叢集規劃 172.17.0.2 hadoop-master 172.17.
Hadoop2.5.2集群部署(完全分布式)
tex 免密碼登錄 文件復制 job src 時間 配置環境 8.0 上進 環境介紹 硬件環境 CPU 4 MEM 4G 磁盤 60G 軟件環境 OS:centos6.5版本 64位 Hadoop:hadoop2.5.2 64位 JDK: JDK 1.8.0_91 主機
spark-2.2.0 叢集安裝部署以及hadoop叢集部署
Spark在生產環境中,主要部署在安裝Linux系統的叢集中。在linux系統中安裝Spark需要預先安裝JDK、Scala等所需要的依賴。 由於Spark是計算框架,所以需要預先在叢集內有搭建好儲存資料的持久化層,如HDFS、Hive、Cassandra等,最後可以通過啟動指令碼執行應用。
Spark2.2.0叢集搭建部署之【SPARK叢集篇】
軟體準備資訊,詳見Spark2.2.0叢集搭建部署之【軟體準備篇】 基礎配置資訊,詳見Spark2.2.0叢集搭建部署之【基礎配置篇】 SSH無密訪問,詳見park2.2.0叢集搭建部署之【無密訪問篇】 HADOOP叢集,詳見Spark2.2.0叢集搭建部署之【HADOOP叢集篇】
Spark2.2.0叢集搭建部署之【HADOOP叢集篇】
軟體準備資訊,詳見Spark2.2.0叢集搭建部署之【軟體準備篇】 基礎配置資訊,詳見Spark2.2.0叢集搭建部署之【基礎配置篇】 SSH無密訪問,詳見park2.2.0叢集搭建部署之【無密訪問篇】 將hadoop-2.7.7.tar.gz 進行解壓 tar -zxvf 
Spark2.2.0叢集搭建部署之【無密訪問篇】
軟體準備資訊,詳見Spark2.2.0叢集搭建部署之【軟體準備篇】 基礎配置資訊,詳見Spark2.2.0叢集搭建部署之【基礎配置篇】 通過SSH無密訪問來達到叢集中機器相互訪問的目的。首先固定機器的ip地址,避免每次重啟機器ip改變的問題。 通過ifconfig命令檢視當前ip地址,若
Spark2.2.0叢集搭建部署之【基礎配置篇】
軟體準備資訊,詳見Spark2.2.0叢集搭建部署之【軟體準備篇】 Spark叢集在生產環境中,主要部署在linux的叢集中,所以需要先安裝JDK,SCALA等基礎配置。 由於Spark是計算框架,所以需要預先在叢集內有搭建好儲存資料的持久化層,如HDFS,最後可以通過啟動指令碼執行應用。
Spark2.2.0叢集搭建部署之【軟體準備篇】
本文主要展示如何在虛擬機器上搭建部署Spark2.2.0的詳細步驟,包括環境安裝、無密登入、Hadoop叢集,Spark叢集。 需要準備的軟體為: VMware-WorkStation CentOS-7-x86_64-DVD-1708.iso jdk-1.8.0-openjdk scala-
CentOS 7.5二進位制部署Kubernetes1.12(加密通訊)(五)
一、安裝方式介紹 1、二進位制安裝 使用二進位制檔案安裝,好處是可以安裝任意版本的 Kubernetes,對一些新版本新功能追求的同學比較合適,壞處是配置比較複雜,很多軟體包因為一些原因,我們在大陸是訪問不到的。這篇文章我們使用加密通訊,也就是各元件和kube-apiserver的通訊採用加密方式。 二
RocketMQ初探(五)之RocketMQ4.2.6叢集部署(單Master+雙Master+2m+2s+async非同步複製)
原文地址:https://www.cnblogs.com/buyige/p/9454634.html 以下部署方式結合眾多博友的部落格,經過自己一步一步實際搭建,如有雷同,侵權行為,請見諒。。。其中遇到不少的坑,希望能幫到更多的人,現在很少能找到一份完整版4.2.6版本的搭