簡述
Kubernetes谷歌微服務體系摇予,對于入門者來說汽绢,除了需要了解概念外,動手實操是極其重要的過程侧戴。社區(qū)為新手快速體驗和入門宁昭,提供了minikube跌宛,簡化使用。
文章參考官網(wǎng):快速入門 在一個機器上安裝了all in one的實驗環(huán)境积仗。
安裝前提
- mac需要安裝brew 疆拘,一個軟件包管理工具,類似于centos下的yum或者ubuntu下的apt-get,非常方便,免去了自己手動編譯安裝的不便 。(可能需要翻墻)
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
- 依賴虛擬化hypervisor寂曹,macOS可以安裝VirtualBox和VMWare等入问,我裝了VirutalBox ,下載dmg自行安裝稀颁。 minikube運行在虛擬機里面。
- 安裝docker楣黍,使用docker作為微服務的容器匾灶。(可能需要翻墻),下載過程中需要注冊登陸。
開始安裝
- 安裝kubectl 核心操作管理命令
brew install kubernetes-cli
- 安裝minikube
參考minikube租漂,有兩種方法阶女,我安裝時是v0.29.0 。
- 方法1 使用brew
brew cask install minikube
- 方法2
curl -Lo minikube https://storage.googleapis.com/minikube/releases/v0.29.0/minikube-darwin-amd64 && chmod +x minikube && sudo cp minikube /usr/local/bin/ && rm minikube
快速入門
參考 minikube quickstart 啟動minikube哩治,部署一個web應用秃踩,發(fā)布成為服務,并在線訪問的示例過程业筏。
1. 啟動minikube(需翻墻)
啟動集群憔杨,初始化服務,這個過程會下載虛擬機鏡像蒜胖,啟動virtualbox的虛擬機消别。
minikube start
Starting local Kubernetes v1.10.0 cluster...
Starting VM...
Getting VM IP address...
Moving files into cluster...
Setting up certs...
Connecting to cluster...
Setting up kubeconfig...
Starting cluster components...
Kubectl is now configured to use the cluster.
Loading cached images from config file.
安裝完畢后,看下版本
kubectl version
Client Version: version.Info{Major:"1", Minor:"12", GitVersion:"v1.12.0", GitCommit:"0ed33881dc4355495f623c6f22e7dd0b7632b7c0", GitTreeState:"clean", BuildDate:"2018-09-28T15:20:58Z", GoVersion:"go1.11", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"10", GitVersion:"v1.10.0", GitCommit:"fc32d2f3698e36b93322a3465f63a14e9f0eaead", GitTreeState:"clean", BuildDate:"2018-03-26T16:44:10Z", GoVersion:"go1.9.3", Compiler:"gc", Platform:"linux/amd64"}
2. 部署應用(需翻墻)
啟動一個鏡像台谢,hello-minikube寻狂。從網(wǎng)站上下載echoserver鏡像1.10版,發(fā)布到的容器(Pod)端口8080朋沮。
kubectl run hello-minikube --image=k8s.gcr.io/echoserver:1.10 --port=8080
deployment.apps/hello-minikube created
部署完畢后蛇券,可以通過以下命令查看
kubectl get pods
屏幕快照 2018-10-05 上午12.11.31.png
已經(jīng)部署了一個hello-minikube-xxx的應用(Pod容器組),xxx是默認加上的后綴樊拓。
3. 發(fā)布服務
將之前部署的應用纠亚,發(fā)布為可以訪問的服務。將hello-minikube應用發(fā)布成為服務骑脱,將之前容器(Pod)的8080端口菜枷,在節(jié)點(當前mac)中映射物理端口NodePort,
kubectl expose deployment hello-minikube --type=NodePort
發(fā)布后叁丧,通過命令查看已經(jīng)發(fā)布的內(nèi)容啤誊。
kubectl get services
屏幕快照 2018-10-05 上午12.12.34.png
注意服務的集群ip是每人都不同的岳瞭,這樣服務就已經(jīng)發(fā)布出來了,我們可以通過虛擬的ip地址cluster-ip(10.100.34.74)訪問服務蚊锹。
4. 訪問服務
有兩種方式訪問剛才發(fā)布的服務:
- 登錄節(jié)點(minikube mac節(jié)點)訪問
- 通過minikube service命令訪問
VM節(jié)點訪問
可以登錄到virutalbox控制臺(minikube虛擬機)上直接訪問:
curl http://10.100.34.74:8080/
minikube service方式
也可以通過minikube的命令查看數(shù)據(jù)
curl $(minikube service hello-minikube --url)
屏幕快照 2018-10-05 上午12.13.46.png
實際上服務的訪問沒有那么簡單瞳筏,先臨時這么用著,有個感官認識牡昆。
5. docker容器
整個過程中姚炕,部署應用,其實就是啟動了docker應用丢烘。
docker ps
默認是沒有東西的柱宦,執(zhí)行下面命令
eval $(minikube docker-env)
再重新看docker ps,就可以看見很多容器啟動了播瞳。
屏幕快照 2018-10-05 上午12.14.49.png
第一個容器對象k8s_hello-minikube_hello-minikube-7cxxx就是在第3步部署的掸刊,而k8s_POD_hello-minikube-7cxxx是kubenertes pod里面默認的pause容器,后面有機會再展開說赢乓。
kubernetes容器可以使用docker忧侧,并在此基礎上封裝了很多內(nèi)容。
6. 控制臺dashboard
minikube 提供了dashboard可視化界面
minikube dashboard
默認會彈出瀏覽器 http://192.168.99.100:30000/#!/overview?namespace=default
可以直觀查看節(jié)點(node)牌芋、部署(deployment)蚓炬、容器組(pod)、副本集(ReplicaSet)等躺屁。
7. 刪除服務
kubectl delete services hello-minikube
8. 刪除應用
kubectl delete deployment hello-minikube
9. 停止minikube
minikube stop