參照了網上N多文檔,不一一清單,共享精神永存!!!!
==================================================
安裝包分為兩類,rpm安裝包和docker鏡像
rpm為以下四個
kubeadm-1.7.0-0.x86_64.rpm
kubectl-1.7.0-0.x86_64.rpm
kubelet-1.7.0-0.x86_64.rpm
kubernetes-cni-0.5.1-0.x86_64.rpm
A, 從github上clone以下項目:
<a href="https://github.com/kubernetes/release">https://github.com/kubernetes/release</a>
B,進入rpm目錄,執行<code>docker-build.sh</code><code>腳本,會在output目錄下生成那4個rpm安裝包。</code>
*如果隻生成amd-64的包,修改一下腳本,把其它幾個構架的去掉。
*這些安裝包的生成,需要fedora:24鏡像,最好提前準備。
A, 下載下傳kubernetes
https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG.md
kube-apiserver.tar
kube-controller-manager.tar
kube-scheduler.tar
kube-proxy.tar
kube-aggregator.tar
将這些鏡像導入harbor倉庫便以後備用。
*因為k8s的官方鏡像都放在google上,不FQ一般不能直接下載下傳,附錄會寫一個如何結合github,dockerhub,daocloud來擷取指定鏡像的辦法。
擴充的docker鏡像,涉及etcd,flannel,traefik,nginx,tomcat等,後面結合場景寫清楚。
主要是确認伺服器的各項系統名額滿足安裝kubernetes的要求。
*RedHat發行版本為: 7.3 (Maipo)
*Linux核心版本為:3.10.0-514.el7.x86_64
這個安裝我們沒有涉及,原本已安裝好,版本為17.05.0-ce, build 89658be
注意新增/etc/systemd/system/docker.service.d/docker.conf檔案:
它改寫了docker的存儲目錄,且定義了harbor倉庫位址。
确認/usr/sbin/sestatus指令輸出為:disabled
确認以下兩條指令均無顯示
lsmod | grep -i ipv6
ifconfig | grep -i inet6
echo 1 > /proc/sys/net/ipv4/ip_forward
echo 1 > /proc/sys/net/bridge/bridge-nf-call-iptables
*預設禁用,通過硬防來控制規則。
将所有涉及的rpm包上傳到伺服器的一個安裝目錄(e.g:/root/k8s/)
将前節提到的docker images上傳到harbor倉庫(harbor-ip-address)
生成并運作以下腳本,進行master初始化前安裝。(k8s-master-setup_before.sh)
*一定要指定version,k8s才不會去網上拉docker,指定pod的cidr,因為後面我們是用flannel作vxlan網絡支撐.
*一般等待1分鐘左右,初始化即可完成。如有問題,可及時檢視/var/log/message進行排錯。
生成并運作以下腳本,進行master初始化後安裝。(k8s-master-setup_after.sh)
*以下幾個檔案都是github裡的标準檔案
運作kubectl get指令,确認所有pod及svc狀态正常.
生成并運作以下腳本,進行從節點加入前安裝。(k8s-node-setup.sh)
*這個token可通過在主節點上運作kubeadm token list獲得
在主節點上運作kubectl get nodes(從節點上也可以運作,但要先擷取認證檔案)
A, 下載下傳traefik最新版本(略)
B, 寫traefik-ds.yaml配置檔案
C, 寫traefik-ing.yaml配置檔案
D, 應用這兩個配置檔案
E, 測試,通路從節點8580端口。
*見本blog以前的文章