k8s學習指南

微服務架構(gòu)系統(tǒng)中,程序的穩(wěn)定運行的前提是需要保證每一個服務節(jié)點正產(chǎn)運行。此時,k8s容器技術(shù)就顯得尤為重要了。
首先,k8s中有幾大組件:
1,pod :應用運行容器,我們的業(yè)務服務就在pod里運行
2,deployment: 容器管理組件,控制pod的運行。
3,svc:容器暴露方式:clusterIP,nodePort。指容器需要如何對外暴露
4,pv:PersistentVolume,文件存儲服務,一般與nfs配合使用持久化存儲于本地
5,pvc:PersistentVolumeClaim 文件存儲申明服務,提供給存儲應用使用如minio
6,ingress:服務集群的代理,通常使用域名綁定svc的方式把pod暴露給容器外訪問。

通常一個服務的發(fā)布流程為:

引入自己的服務打包成docker鏡像
>docker push 到鏡像倉庫
>書寫deployment.yaml,在里面引入自己的鏡像和啟動參數(shù)
>運行kubectl create -f deployment.yaml
>創(chuàng)建svc暴露服務

通常在k8s自動部署的平臺中,會借助2個工具來實現(xiàn)自動化部署:
1,git-runner
2,Dockerfile
2,helm chart
具體的流程如圖:

當代碼提交時,觸發(fā)gitlab-ci.yml
>gitlab.ci中執(zhí)行mvn clean package,
>docker build Dockerfile -t 打成鏡像tag
>docker push 把鏡像上傳到鏡像倉庫
>最后執(zhí)行chart_build

chart_build大概做了如下事情:

在values.yaml維護tag最新上傳的鏡像
>在chart中按需添加svc,ingress等信息
>通過values.yaml信息注入到deployment.yaml中,生成一個合法的deployment
>手動點擊部署環(huán)境則會進行deployment,svc,ingress等組件的生成

k8s常用指令有如下:

查看組件:kubectl get (pod,svc,ingress,deployment,pv,pvc) -n namespace
查看pod的日志:kubectl logs -f podName -n namespace
查看deployment的配置:kubectl get deployment name -n namespace -o yaml
編輯deployment的配置:kubectl edit deployment name -n namespace -o yaml
進入pod:kubectl exec -it <runner pod> -n namespace bash
退出pod:exit

k8s ingress報錯:413 Request Entity Too 解決方式:

在一級節(jié)點為metadata的二級節(jié)點annotations下添加:
metadata:
  annotations:
    nginx.ingress.kubernetes.io/proxy-body-size: 200m

如果是nginx直接配置,則添加:

client_max_body_size 200m;
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容