前後端分離架構+k8s+ingress

一、概述

在前面幾篇文章中,已經講到了前後端分離架構和ingress,鏈接如下:

https://www.cnblogs.com/xiao987334176/p/12195722.html

https://www.cnblogs.com/xiao987334176/p/12195797.html

接下來使用k8s進行發佈應用

 

二、演示3.0

環境說明

k8s集羣

系統dockerip主機名配置
centos 7.6 19.03.5 192.168.31.150 k8s-master 2核4G
centos 7.6 19.03.5 192.168.31.178 k8s-node01 2核4G
centos 7.6 19.03.5 192.168.31.164 k8s-node02 2核4G

 

 

 

 

 

 

harbor

系統dockerdocker-composeharborip主機名配置
centos 7.6 19.03.5 1.24.1 1.8.0 192.168.31.37 harbor 2核4G

 

 

 

 

關於k8s搭建,請參考鏈接:

https://www.cnblogs.com/xiao987334176/p/11899321.html

 

關於harbor搭建,請參考鏈接:

https://www.cnblogs.com/xiao987334176/p/11326467.html

 

推送鏡像到harbor

在前面2.0的環境中,已經打包好了login和api鏡像,直接推送到harbor倉庫即可。

修改docker配置文件,增加harbor地址

vi /etc/docker/daemon.json

內容如下:

{
  "registry-mirrors": ["http://hub-mirror.c.163.com"],
  "insecure-registries": ["192.168.31.37"]
}

重啓docker

systemctl restart docker

 

docker登錄harbor,直接使用管理員賬號登錄

docker login 192.168.31.37 -u admin -p Harbor12345

 

打tag並推送

docker tag demo_api:v1 192.168.31.37/library/demo_api:v1
docker push 192.168.31.37/library/demo_api:v1

docker tag demo_login:v1 192.168.31.37/library/demo_login:v1
docker push 192.168.31.37/library/demo_login:v1

 

k8s集羣登錄harbor

登錄到k8s集羣中的master節點以及node節點。

修改docker配置文件,增加harbor地址

vi /etc/docker/daemon.json

內容如下:

{
  "registry-mirrors": ["http://hub-mirror.c.163.com"],
  "insecure-registries": ["192.168.31.37"]
}

重啓docker

systemctl restart docker

 

k8s發佈應用

yum install -y git
git clone https://github.com/py3study/django-login-example.git

 

前端

login.yaml是使用kuboard生成的,login-ingress.yaml是否手寫的。因爲kuboard生成的ingress有bug,外部無法訪問。

cd django-login-example/3.0
kubectl apply -f login.yaml
kubectl apply -f login-ingress.yaml 

注意:請修改yaml文件中的倉庫地址,改爲實際環境中的harbor

 

api

cd django-login-example/3.0
kubectl apply -f api.yaml
kubectl apply -f api-ingress.yaml 

注意:請修改yaml文件中的倉庫地址,改爲實際環境中的harbor

 

查看pods

# kubectl get pods -o wide
NAME                          READY   STATUS    RESTARTS   AGE     IP              NODE         NOMINATED NODE   READINESS GATES
svc-api-6559bb7cb8-58fvj      1/1     Running   0          2m24s   10.244.58.197   k8s-node02   <none>           <none>
svc-login-66c8d579b5-94x6t    1/1     Running   0          2m30s   10.244.85.198   k8s-node01   <none>           <none>

確保處於`Running`狀態,如果出現imagesoff,請確保node能下載鏡像,鏡像地址是否正確,是否登錄了harbor

 

查看ingress

# kubectl get ingresses.extensions
NAME           HOSTS                ADDRESS   PORTS   AGE
svc-api        api.baidu.com                  80      4m37s
svc-login      h5.baidu.com                   80      4m43s

 

訪問頁面

在1.0和2.0中,都使用了nginx轉發。在3.0就無需nginx轉發了,直接使用ingress轉發。

將域名解析到任意node節點的ip即可。如果沒有dns,windows 10添加2條hosts記錄

192.168.31.178 h5.baidu.com
192.168.31.178 api.baidu.com

 

訪問登錄頁面

http://h5.baidu.com/

效果如下:

 

 

 

登錄成功後,效果如下:

 

發佈了287 篇原創文章 · 獲贊 10 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章