Kubernetes


Kubernetes

經過幾番折騰終於搞定Kubernetes了,我們要在Openstack上部署Kubernetes集群,使用最新工具Kubeadm來安裝,由於不能直接訪問Kubernetes的源,我們需要一台可以穿牆的機器,可以是個人電腦,另外需要一台基於Docker快照的雲主機,將下載后的所有資源放到這台機器中生成新的Kubernetes快照,用來做為以后Kubernetes集群的系統基礎。

下載Kubernetes依賴資源

所有操作在可以穿牆的機器上進行

1,下載安裝源

我們使用的kubernetes版本是1.4.5, 參考官方安裝文檔,http://kubernetes.io/docs/getting-started-guides/kubeadm/ ,配置好源后,僅下載所有Kubernetes依賴的安裝包,注意這里不需要再安裝Docker了

yum install -y kubelet kubeadm kubectl kubernetes-cni  --downloadonly --downloaddir=/root/rpmsource

在安裝的時候配置一個本地源。

下載kubernetes鏡像

kubernetes一些服務是運行在Docker中的,所以我們需要提前下載好依賴的鏡像到本地,然后Push到我們在上文中說到的Registry2.io中

images=(gcr.io/google_containers/kube-proxy-amd64:v1.4.5 gcr.io/google_containers/kube-apiserver-amd64:v1.4.5 gcr.io/google_containers/kube-scheduler-amd64:v1.4.5 gcr.io/google_containers/kube-controller-manager-amd64:v1.4.5 gcr.io/google_containers/kube-discovery-amd64:1.0 gcr.io/google_containers/kubedns-amd64:1.7 gcr.io/google_containers/exechealthz-amd64:1.1 gcr.io/google_containers/kube-dnsmasq-amd64:1.3 gcr.io/google_containers/pause-amd64:3.0 gcr.io/google_containers/etcd-amd64:2.2.5 weaveworks/weave-npc:1.7.2 weaveworks/weave-kube:1.7.2 weaveworks/scope:0.17.1 weaveworks/weaveexec:1.6.1) for imageName in ${images[@]} ; do docker pull $imageName localName=registry2.io/${imageName/gcr.io\//} docker tag $imageName $localName docker push $localName echo $localName done

注意你要安裝的版本號,在用的時候同樣的方法pull下來再把tag改回去。

將所有下載好的資源上傳到雲主機上,並生成一個新的快照做為以后創建Kubernetes集群主機的基礎系統!

Kubernetes初始化

現在可以使用Kubernetes的快照創建三台雲主機,一台Master,其余的做為Worker,如圖


注意網段不要跟Kubernetes的沖突,Kubernetes默認是10,這里改為100!

按照官方文檔,安裝之后,在Master上做init操作

kubeadm init --use-kubernetes-version=v1.4.5

需要注意的是一定要等所有的pods都處於Running狀態再進行一步操作,比如安裝Web UI等

另外需要注意的一點是一定要按照順序操作,先添加一台子結點再初始化網絡,反之始化網絡時總是失敗,其它的子結點可以在后序慢慢添加。

組件安裝

Web UI

安裝參考http://kubernetes.io/docs/user-guide/ui/ ,一條Kubectl命令搞定

配置heapster,支持圖形展示cpu、內存等數據
https://github.com/kubernetes/heapster/blob/master/docs/influxdb.md

Weave Scope

一個圖形化的k8s所有資源的拓撲、pods依賴展現等

安裝參考,很簡單,參考https://www.weave.works/docs/scope/latest/installing/

常用操作

記住,有了Kubernetes就不要再想着直接操作Docker了,大多數操作基本都被封裝在了Kubectl命令中了,Kubect的常用命令大家在網上搜索一下,這里就不一一列舉了,只說幾個非常有用的操作,

    • kubectl exec pod_id_xxx date  在PODS中運行命令
    • kubectl exec pod_id_xxx -it /bin/sh  進入PODS
    • kubectl delete -f xxx.yml  刪除資源
    • kubectl apply -f xxx.yml  更新、修改資源,沒有的話會創建,所以可以直接使用apply,如果失敗嘗試刪除再create!
    • kubectl create -f xxx.yml  創建資源
    • kubectl get po --all-namespaces  所出所有pods資源


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM