1.生成鏡像
見https://www.cnblogs.com/mushou/p/9713741.html,把測試成熟的應用添加到tomcat鏡像生成新的鏡像,用ansible部署到集群的幾點服務器中。
2.部署環境
1)安裝docker-ce
2)安裝k8s
一定記得kubectl,kubeadm,kubelet,kubernetes-cni版本與使用的kube-apiserver,kube-schedule,etcd,kube-controll-manager的版本相同
見https://www.cnblogs.com/mushou/p/9613365.html
3)部署集群
見 https://www.cnblogs.com/mushou/p/9613365.html
3.部署應用
應用依賴的數據庫,圖片,Java環境部署在數據庫服務器,采用nfs服務器共享供集群節點使用,也可以把應用服務的應用數據包共享供節點掛載。
1)配置nfs服務器
2)創建數據庫服務
創建persistentVolume,創建persistentVolumeClaim
3)創建應用配置文件.yml文件
其中,Deployment應用的鏡像為前面生成的新鏡像,
volumes包括了persistentVolumeClaim,有數據庫卷,圖片卷,Java環境卷,其中還有一個tomcat/conf下的 server.xml文件也需要掛到生成的deployment中,
需要使用configMap,需要先建好,kubectl create configmap server-xml-key --from-file=server.xml,
在 yml配置文件中的volumes使用:
name: server-xml-key
configMap:
name: server-xml-key
同時在volumeMounts:
- name: server-xml-key
mountPath: /usr/local/tomcat/conf/server.xml
subPath: server.xml
這樣就把該文件掛到pod中,我們如果更改pod中容器的tomcat的配置,只需更改該文件即可。其實我們使用nfs服務器,采用共享掛載的方式就是方便更改,同時做到不因pod 或者節點的故障而導致應用服務不可用。
4.
上文只是針對用k8s部署應用服務到生產環境的一些基本思路,具體的細節因公司業務保密的關系未在文中詳細列出,供大家參考。