序
這是差不多2年前我整理的一篇純手工搭建Kubernetes的文檔,裡邊涉及的軟體版本相對偏低一些,但對一些初學者來說應該依然具有一定的借鑒意義。
環境介紹:
OS:Linux redhat721 3.10.0-327.el7.x86_64
K8S測試叢集共2台主機,1台Master和1台Node, Master IP:192.168.80.137
元件 | 版本 | 部署方式 | 安裝目錄或通路入口 |
docker | 1.10.3 | rpm | /var/lib/docker |
etcd | 2.3.6 | tar | /root/etcd-v2.3.6-linux-amd64 |
flannel | 0.5.5 | /root/flannel-0.5.5 | |
kubernetes | 1.2.4 | /root/kubernetes | |
skydns | 2015-10-13 | 容器 | 固定ip:192.168.3.254 |
kube2sky | 1.14 | 和skydns同pod | |
2.2.2 | |||
exechealthz | 1.0 | ||
dashboard | 1.0.1 | http://192.168.80.137:8080/ui | |
nginx | |||
cAdvisor | kubelet自動啟動 http://192.168.80.137:4194 | ||
heapster | 1.0.2 | ||
influxDB | 0.5 | ||
grafana | 2.6.0-2 | http://192.168.80.137:8080/api/v1/proxy/namespaces/ kube-system/services/monitoring-grafana/ |
Node IP:192.168.80.139
http://192.168.80.139:4194 |
一、安裝docker環境
1、安裝
本次安裝的是docker1.10.3,建議安裝最新的docker環境。
使用的安裝包為Redhat7.x準備所有環境依賴的rpm集合包,包内的rpm檔案如下面rpm指令所涉。
将所有檔案上傳主機,使用下面指令進行安裝:
————————
rpm -Uvh ./policycoreutils-2.2.5-20.el7.x86_64.rpm
rpm -Uvh ./audit-libs-python-2.4.1-5.el7.x86_64.rpm
rpm -Uvh ./checkpolicy-2.1.12-6.el7.x86_64.rpm
rpm -Uvh ./libcgroup-0.41-8.el7.x86_64.rpm
rpm -Uvh ./libsemanage-2.1.10-18.el7.x86_64.rpm
rpm -Uvh ./libsemanage-python-2.1.10-18.el7.x86_64.rpm
rpm -Uvh ./python-IPy-0.75-6.el7.noarch.rpm
rpm -Uvh ./setools-libs-3.3.7-46.el7.x86_64.rpm
rpm -Uvh ./policycoreutils-python-2.2.5-20.el7.x86_64.rpm
rpm -Uvh ./docker-engine-selinux-1.10.3-1.el7.centos.noarch.rpm
rpm -Uvh –nodeps –force ./device-mapper-libs-1.02.107-5.el7.x86_64.rpm ./device-mapper-1.02.107-5.el7.x86_64.rpm
rpm -Uvh –nodeps –force ./systemd-219-19.el7.x86_64.rpm ./systemd-libs-219-19.el7.x86_64.rpm ./kmod-20-5.el7.x86_64.rpm ./dracut-033-359.el7.x86_64.rpm ./initscripts-9.49.30-1.el7.x86_64.rpm ./libgudev1-219-19.el7.x86_64.rpm ./systemd-sysv-219-19.el7.x86_64.rpm ./dracut-network-033-359.el7.x86_64.rpm ./dracut-config-rescue-033-359.el7.x86_64.rpm
rpm -Uvh ./docker-engine-1.10.3-1.el7.centos.x86_64.rpm
————————-
2、啟動docker服務
啟動docker服務指令:sudo service docker start
将docker加入随主機自啟動清單:sudo chkconfig docker on
3、驗證docker環境
執行指令:docker version,顯示如下資訊,則docker環境正确安裝:
二、安裝etcd服務
本次安裝的是etcd2.3.6。
将etcd-v2.3.6-linux-amd64.tar.gz上傳主機,并解壓。
tar -xzvf etcd-v2.3.6-linux-amd64.tar.gz
2、驗證
export PATH=$PATH:/root/etcd-v2.3.6-linux-amd64
etcd -version
3、啟動etcd服務
編輯shell腳本startEtcd.sh,内容如下:
——————————-
#!/bin/sh
export ETCD_OPTS=”–listen-client-urls http://0.0.0.0:4001 –advertise-client-urls http://0.0.0.0:4001 –data-dir /var/lib/etcd/default.etcd”
nohup /root/etcd-v2.3.6-linux-amd64/etcd $ETCD_OPTS &
啟動指令:./startEtcd.sh
三、安裝flannel虛拟網絡環境
本次安裝的是flannel0.5.5。
将flannel-0.5.5-linux-amd64.tar.gz上傳主機,并解壓。
tar -zxvf flannel-0.5.5-linux-amd64.tar
2、在etcd中預注冊flannel要使用虛拟位址段
etcdctl mk /coreos.com/network/config ‘{ “Network”: “172.19.0.0/16” }’
3、啟動flannel
編輯shell腳本startFlannel.sh,内容如下:
——————–
nohup /root/flannel-0.5.5/flanneld –etcd-endpoints=http://127.0.0.1:4001 &
———————
啟動指令:./startFlanneld.sh
4、etcd中驗證flannel位址配置設定
etcdctl ls /coreos.com/network/subnets
etcdctl get /coreos.com/network/subnets/172.19.3.0-24
這說明本地flannel使用的172.19.3.0網段位址。
5、生成docker相關參數,${FLANNEL_SUBNET}
./mk-docker-opts.sh
cat /run/flannel/subnet.env
6、給docker0虛拟網卡添加參數,重新開機
//ifconfig docker0 172.19.3.1/24
ifconfig docker0 ${FLANNEL_SUBNET}
ifconfig docker0 down
ifconfig docker0 up
7、重新開機docker服務
service docker stop
service docker start
8、驗證
Ifconfig指令
Docker網卡的位址不再是172.17網段的位址,而是172.19.3位址(這個每次擷取都會變)。
這幾個前置環境部署好後,接下來将部署K8S環境。
本文轉自kubernetes中文社群-
Kubernetes安裝部署示範介紹-(一)