Kubernetes(k8s)認識以及應用(一)——Minikube單機部署

Kubernetes(k8s)

k8s是做什麼的?

用於自動部署,擴展和管理容器化應用程序的開源系統

常見的集羣管理工具

Apache Mesos:Mesos是Apache下的開源分佈式資源管理框架,它被稱爲是分佈式系統的內核成本高,但穩定性好

Docker Swarm:Docker官方提供的一款集羣管理工具

Google Kubernetes:是Google開源的容器集羣管理系統

k8s的組件

Master節點上的組件:

Master 組件提供的集羣控制,Master 組件對集羣做出全局性決策並調度,以及檢測和響應集羣事件

kube-apiserver:用於暴露Kubernetes API,任何的資源請求/調用操作都是通過kube-apiserver提供的接口進行,請參閱構建高可用羣集

etcd:Kubernetes提供默認的存儲系統,保存所有集羣數據,使用時需要爲etcd數據提供備份計劃。

kube-controller-manager:運行管理控制器,它們是集羣中處理常規任務的後臺線程

kube-scheduler:監視新創建沒有分配到Node的Pod,爲Pod選擇一個Node

Node節點上的組件:

node節點組件在每個節點上運行,維護運行的 Pod 並提供 Kubernetes 運行時環境

kubelet:主要的節點代理,它會監視已分配給節點的pod

kube-proxy:通過在主機上維護網絡規則並執行連接轉發來實現Kubernetes服務

pod:管理容器的基本單元

還有servicedocker。。。。。。

k8s各個組件的工作原理(下圖所示)

通過Minikube簡單使用鏡像搭建k8s羣集

安裝docker-ce(最好安裝1.8.09.6的版本)

yum install -y yum-utils

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

yum list docker-ce --showduplicates | sort -r

yum -y install docker-ce-18.09.6

運行環境如下圖所示(環境嵌套了4層ip關係):

方法一:使用virtualbox虛擬機搭建(在虛擬機裏面運行k8s環境)

1.安裝virtualbox

配置yum源:vim /etc/yum.repos.d/vbox.repo

[virtualbox]
name=Oracle Linux / RHEL / CentOS-$releasever / $basearch - VirtualBox
baseurl=http://download.virtualbox.org/virtualbox/rpm/el/$releasever/$basearch
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://www.virtualbox.org/download/oracle_vbox.asc

yum安裝virtualbox

yum -y install VirtualBox-5.2

2.使用國內阿里雲安裝Minikube

curl -Lo minikube http://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/releases/v1.2.0/minikube-linux-amd64 && chmod +x minikube && sudo mv minikube /usr/local/bin/

3.使用國內阿里雲安裝kubectl

curl -LO http://kubernetes.oss-cn-hangzhou.aliyuncs.com/kubernetes-release/release/`curl -s http://kubernetes.oss-cn-hangzhou.aliyuncs.com/kubernetes-release/release/stable.txt`/bin/linux/amd64/kubectl && chmod +x kubectl && sudo mv kubectl /usr/local/bin/kubectl

4.啓動minikube程序創建k8s

minikube start --vm-driver=virtualbox --registry-mirror=https://registry.docker-cn.com

沒有--vm-driver選項默認也是通過virtualbox虛擬機啓動

運行該命令之後會自己下載鏡像

5.運行kubectl設置映射訪問地址(因爲是在虛擬機中的虛擬機中運行,所以沒有設置只能在宿主CentOS7.2上訪問,如果沒有圖形化界面沒有瀏覽器就無法操作k8s)

kubectl proxy --address='0.0.0.0' --accept-hosts='^*$'

該進程會一直運行

因爲我們使用的是centos 7 minimal只有終端環境,所以我們要在宿主機上進行瀏覽器訪問

6.通過命令查看web網頁訪問路徑,訪問測試

執行命令:minikube dashboard

該命令如果是系統安裝了圖形化桌面的話就可以直接進入到web界面,如果沒有安裝就不行,但是可以通過該命令知道訪問路徑,然後通過瀏覽器訪問該地址路徑進入web界面

通過該地址路徑訪問進入k8s系統

注意:記得修改前面的ip地址和端口該問宿主機ip地址和8001端口

方法二:在宿主機上搭建(就是在真機上的VMware上CentOS7.2上安裝)

步驟一致只需要啓動minikube的時候修改選項(不需要安裝virtualbox)

minikube start --vm-driver=none --registry-mirror=https://registry.docker-cn.com

注意:用docker images查看鏡像是否下載全了,如果網速不好可能會導致有些鏡像沒有下載完成,啓動運行就會出錯,導致404和503的錯誤通常是因爲kubernetes-dashboard鏡像缺失

docker images命令查看,應該會有下面這些鏡像(注意版本)

k8s.gcr.io/kube-proxy
k8s.gcr.io/kube-apiserver
k8s.gcr.io/kube-scheduler
k8s.gcr.io/kube-controller-manager
k8s.gcr.io/etcd
k8s.gcr.io/coredns
k8s.gcr.io/kubernetes-dashboard-amd64
k8s.gcr.io/kube-addon-manager
k8s.gcr.io/kubernetes-dashboard
k8s.gcr.io/k8s-dns-dnsmasq-nanny
k8s.gcr.io/k8s-dns-sidecar
k8s.gcr.io/k8s-dns-kube-dns
k8s.gcr.io/pause
gcr.io/k8s-minikube/storage-provisioner

也可以使用kubectl get pods --all-namespaces命令查看(如下圖所示)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章