這兩天參加了阿里雲的 雲效 體驗動手實驗課,分別加了釘釘群,大概一周的時間利用阿里老師准備的實驗代碼從打包到服務成功提供進行了N個步驟,最終要求是利用微服務示例在阿里“雲效”上建立Pipline進行服務發布
本次總結一下在本地 k8s 1.18環境中部署示例微服務的步驟;
1、本地環境描述:
由於要使用K8S環境,所以按照一博主的博客快速使用kubeadm搭建了一套本地環境,搭建蠻順利的,按照步驟走基本很流暢
https://blog.csdn.net/weixin_38320674/article/details/105781372
2、利用搭建好的本地環境開始了實驗動手課程
a、熟悉項目代碼,項目代碼見:https://code.aliyun.com/groups/alpd-demo
b、參照項目代碼里面的README,在本地構建出alpd-bot-auth、alpd-bot-query、alpd-bot-ssh三個應用的容器鏡像
c、在本地k8s集群中將三個應用部署起來
以上是從阿里雲官方實驗說明頁面截的圖,將微服務的三個部分及功能描述都已經說清楚了,目的要將三個服務部署到自己本地的k8s環境當中,另外需要注意的是auth模塊中git pull下來的代碼protos是空的,這個簡單粗暴的方式就是從其他兩個模塊直接復制進去即可
我是將代碼直接放到Master節點的vm中直接運行 docker build -t Dockerfile 進行編譯的,還是蠻順利的三個服務都順利打成指定的鏡像,由於本地沒有搭建鏡像倉庫所以直接使用的阿里雲的ACR服務。
將三個鏡像上傳到ACR中,並部署到本地K8s中
步驟如下:
1、分別進入alpd-bot-auth和alpd-bot-ssh和alpd-bot-query文件夾進行Docker build :
docker build -f Dockerfile .
2、將build后的pull到ACR中:
3、更改不同服務中的 deployment-local.yml 文件,從ACR中獲取指定鏡像並運行部署到本地K8S中,三個服務我主要更改的是pull鏡像的方式:
由於pull鏡像需要倉庫密碼,所以需要提前在k8s中創建 Secrets ,這里需要注意Secrets有namespace區分,之后環境中都創建在default命名空間下
kubectl create secret docker-registry registry-key --docker-server=registry.cn-hangzhou.aliyuncs.com --docker-username={用戶名} --docker-password={ACR設置的密碼} --docker-email={郵件地址}
ACR可以設置鏡像pull的用戶名和密碼,直接拷貝到命令行即可,創建完成后可以在本地環境中查看
至此,配置完成后可以直接運行命令創建服務:
kubectl apply -f deployment-local.yml
alpd-bot-ssh服務依賴alpd-bot-auth服務,所以最后創建alpd-bot-ssh服務即可,創建完成后可以查看三個服務及相關service的運行狀態(不同服務之間通過Service ClusterIP進行訪問):
至此我們將三個微服務都已部署到本地環境中,接下來可以測試一下可用性,在Master節點可以ssh alpd-bot-ssh-svc進行服務訪問(用戶名和密碼是admin和pass):
以上功能說明三個微服務已經可以在本地跑通,接下來需要使用阿里kt-connct開源工具將 k8s 服務暴露,配置本地訪問