本地搭建K8s环境,并配置Ingress代理(1)
書接上文,上回說到了在Linux系統搭建K8s環境,通過腳本一鍵處理,具體可參考《入門K8s:一鍵腳本搭建Linux服務器集群》。
雖然Linux系統很不錯,而且也推薦都買一個做練習,但是不可避免的會遇到一些小問題,比如:
1、開發階段,頻繁生成鏡像,用來測試;
2、局域網內多臺電腦快速實現集群操作;
3、暫時不想買服務器;
那我們就在本地Windows系統中,快速的部署一個K8s集群,用來短時間的看到效果和測試用例,還是方便很多的,不過如果想要好好研究的話,還是要搞一個Linux服務器,從頭慢慢的搭建吧。
PS:如果想要在本地搭建環境,只有一個要求,電腦內存盡量在18G以上,我的電腦是32G。
Part 1
安裝Docker Desktop
如果你之前安裝過,現在K8s不能用了,或者之前本地都沒有安裝過,那可以從官網下載,然后直接安裝即可,過程很簡單,一直Next就行。
有一點需要注意就是要看好對應的版本,因為后邊涉及到版本的問題。
https://www.docker.com/products/docker-desktop
安裝完成,雙擊圖標,打開桌面程序,就可以看到左下角有一個綠色的鯨魚標識,注意,這個時候只有一個:
中間的打馬賽克的默認也是沒有的,這是我已經安裝好的。
安裝好Docker服務以后,K8s默認是關閉狀態的,需要我們手動打開:
請注意!
這個時候不要輕易的打開它,除非你有VPN,且網速比較好。
因為開啟K8s,主要是啟動對應的服務,大概有七八個服務,鏡像是很麻煩的,特別是沒有配置本地加速的情況下(加速可以用阿里云或者中科大的地址,百度即可)。所以需要從遠程倉庫把鏡像拉下來,過程很慢,即便我用VPN了,也一個小時未成功,無奈只能重裝,換了第二種方案。
Part 2
安裝K8s服務
上邊直接手動啟動的方式已經放棄,換成了阿里的本地鏡像:
https://github.com/AliyunContainerService/k8s-for-docker-desktop
直接clone代碼,切換到當前Docker Desktop對應版本的分支,然后根據他們的README操作即可,比較簡單,鏡像拉取完成后,就可以看到多了一些鏡像:
請好好對照下鏡像,如果少了,就手動拉取,不然是啟動不了K8s的,這里有一個坑,阿里倉庫給的ingress的版本比較低,是0.26.1的,這個版本有bug,建議用官方最新的1.0版本:
相應的v1.0版本的ingress的yml文件可以直接從官方GitHub中找到:
https://github.com/kubernetes/ingress-nginx/blob/main/deploy/static/provider/cloud/deploy.yaml
只要保證上邊的鏡像都有了,就可以開啟K8s了!
過程可能會持續1~3分鐘,但是肯定不會很長,要是時間超過20分鐘,那就只能重新搞了。
假設你已經弄好了,K8s也啟動了,如何查看效果呢,比如節點信息,Pod信息,service信息等,平時使用最多的就是開啟admin看板,查看所有的信息,不過操作不便,還需要登錄,這里安利一個工具,比admin更方便——Lens。
Part 3
用Lens連接集群
去Lens官網下載并安裝:
https://github.com/lensapp/lens
安裝完成后,配置上下文,開啟連接:
過程很簡單,功能很豐富。
安裝完成軟件,來一個完整的前端的ingress部署吧。
Part 4
部署一個完整的VUE項目
過程其實很簡單,就是準備好一個鏡像,然后部署deployment、pod、service、ingress,直接來yml吧,有問題一起討論:
apiVersion: apps/v1 kind: Deployment metadata:name: blog-h5namespace: defaultlabels:app: blog-h5 spec:replicas: 1selector:matchLabels:app: blog-h5 # has to match .spec.template.metadata.labelstemplate:metadata:labels:app: blog-h5 # has to match .spec.selector.matchLabelsspec:containers:- name: blog-h5image: blog.coreimagePullPolicy: IfNotPresentports:- containerPort: 80name: blog-h5--- apiVersion: v1 kind: Service metadata:name: blog-h5namespace: defaultlabels:app: blog-h5 spec:ports:- port: 80targetPort: 80name: blog-h5selector:app: blog-h5--- #ingress apiVersion: networking.k8s.io/v1 kind: Ingress metadata:name: blog-h5-ingressannotations:kubernetes.io/ingress.class: "nginx" spec:rules:- host: h5.cxt.ycsure.comhttp:paths:- backend:service:name: blog-h5port:number: 80path: /pathType: Prefix總結
以上是生活随笔為你收集整理的本地搭建K8s环境,并配置Ingress代理(1)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 写给80后,我们的人生才刚刚开始
- 下一篇: 自动Mock,让编写单元测试更简单