部署kubernetes集羣

一、部署說明
最近很多學生問我kubernetes的技術問題,回答了很多次,突然間想我是不是做一些帖子,可以讓我的學生能看到,身邊想學習的人也都能看到呢!於是我打算開始寫這邊文章,如果訪問量大,學習的人多,我會每週更新一篇的速度去將kubernetes的技術一直更新下去。
隨着雲計算的發展,容器技術不斷的更新,發展。從docker到kubernetes,企業也在不斷的升級自己的架構,代表公司就是我們熟悉的京東,從2015年開始不斷的使用容器來承載自己的業務。2018年618,60%的業務都是由kubernetes來完成的。
相比openstack+kvm+docker來說,kubernetes集羣更加穩定,更加容易上手,性能更加優秀。越來越多的公司都在從docker轉到kubernetes上來。
那麼想把業務放到kubernetes,就必須先搭建一個kubernetes集羣,接下來我就來給大家來部署一個kubernetes集羣。
我們的課程也會從實戰出發,一步一步教給大家如何使用Kubernetes,如何將業務放到kubernetes.
廢話少說,幹活。

            說明:實驗中的機器是CENTOS7.5 關閉firewall selinux。

二、實驗架構
kubernetes集羣分爲master和node兩個成員。
master負責節點負責對外提供一系列管理集羣的 API 接口,並且通過和node節點交互來實現對集羣的操作管理。
node負責節點是實際運行 Docker 容器的節點,負責和節點上運行的 Docker 進行交互,並且提供了代理功能。
部署kubernetes集羣
三、實驗步驟
1.根據實驗拓撲配置計算機的主機名、IP地址、hosts.
以master.ayitula.com機器爲例,看下圖:
部署kubernetes集羣
2.部署master
[root@master ~]# yum -y install kubernetes etcd
[root@master ~]# vi /etc/kubernetes/config
部署kubernetes集羣
[root@master ~]# vi /etc/kubernetes/apiserver
部署kubernetes集羣
啓動相關服務
etcd:key-value鍵值存儲數據庫,用來存儲kubernetes的信息的。
[root@master ~]# systemctl restart etcd
apiserver:用戶和 kubernetes 集×××互的入口,封裝了核心對象的增刪改查操作,提供了 RESTFul 風格的 API 接口,通過 etcd 來實現持久化並維護對象的一致性。
[root@master ~]# systemctl restart kube-apiserver
controller-manager:主要是用於保證 replicationController 定義的複製數量和實際運行的 pod 數量一致,另外還保證了從 service 到 pod 的映射關係總是最新的。
[root@master ~]# systemctl restart kube-controller-manager
scheduler:負責集羣資源的調度和管理,例如當有 pod 異常退出需要重新分配機器時,scheduler 通過一定的調度算法從而找到最合適的節點。
[root@master ~]# systemctl restart kube-scheduler

使用netstat命令查看服務是否全部啓動

部署kubernetes集羣
可以看到我的服務全部啓動成功,OK!去部署Node

3.部署node
[root@node1 ~]# yum -y install kubernetes etcd
[root@node1 ~]# vi /etc/kubernetes/kubelet
部署kubernetes集羣
啓動相關服務
kubelet:運行在node 節點,負責和節點上的 Docker 交互,例如啓停容器,監控運行狀態等。
[root@node1 ~]# systemctl restart kubelet
proxy:運行在 node節點,負責爲 pod 提供代理功能,會定期從 etcd 獲取 service 信息,並根據 service 信息通過修改 iptables 來實現流量轉發,將流量轉發到要訪問的 pod 所在的節點上去。
[root@node1 ~]# systemctl restart kube-proxy
docker: docker 容器守護進程
[root@node1 ~]# systemctl restart docker
通過netstat命令查看服務啓動器情況

部署kubernetes集羣

OK,服務啓動成功

部署第二個Node node2.ayitula.com. 步驟同理,我就不在複製了。同上
4.測試
使用kubectl命令查看master是否識別了node
[root@master ~]# kubectl get node

        哈哈,看到了吧,實驗完成了。
        下一節部署pod,大家下週來看吧!!!
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章