基於阿里雲k8s的配置例項
阿新 • • 發佈:2021-12-16
目錄
一.新環境起源
彩票專案中,有了測試和生產環境,現在需要在中間加一個UAT環境,類似於遊戲測試服的環境,用於模擬生產。
之前的專案中,均使用的jenkins+gitlab+阿里雲EDAS。jenkins使用pipline方式將gitlab的程式碼打包編譯,通過java指令碼,呼叫阿里雲API,將war包傳到EDAS服務上,EDAS服務使用這個war包啟動服務。
jenkins和gitlab組合比較常見,而EDAS是阿里的Paas服務,比較少見。EDAS將多臺ECS雲主機建立EDAS服務,阿里雲會自動在每臺ECS中安裝一個taobao-tomacat。也就是經過改造的tomacat,帶有驗證、監控等功能。如果不考慮附加功能,整體和tomcat沒區別。
UAT將採用EDAS-k8s叢集的方式,同時採用阿里雲的映象倉庫服務。
二.新環境配置
1.在gitlab中,新建二個專案:uat_pipline,uat_Dockerfile
2.uat_pipline中是用於k8s的pipline檔案,在內容上有些許變化
增加了2塊,下載了dockerfie專案,最後面釋出改了。
node () { def dir = pwd() def version = 'uat' stage 'checkout' dir('uat_user'){ git branch: branch, credentialsId: 'jenkins', url: 'http://1.1.1.1/test_user.git' } dir('uat_user_dockerfile'){ git branch: 'master', credentialsId: 'jenkins', url: '[email protected]/uat_user_dockerfile.git' } stage 'Build' sh""" cd $dir/uat_user /usr/local/maven/bin/mvn clean install -Puat """ stage 'edas' sh''' time=$(date +%m%d%H%M) ver=UAT cur_dir=uat_user mkdir -p /jenkins_bak/$ver/$cur_dir/$time mv $dir/uat_user/uat_usr.war /jenkins_bak/$ver/$cur_dir/$time cd $dir/uat_user_dockerfile /usr/local/git/bin/git pull origin master git tag -a release-v$time -m "docker images tag" git push origin master --tags /usr/bin/python3 /release-images.py ''' }
3.在jenkins中,先將程式碼打包構建,然後去dockerfile檔案下去打一個tag標籤,這樣就會觸發映象倉庫的操作,阿里雲映象倉庫會按照Dockerfile去打映象。
FROM centos:7 MAINTAINER 企業級分散式應用服務EDAS研發團隊 <[email protected]> #同步時間 RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone #安裝打包必備軟體 RUN yum -y install wget unzip #準備 JDK/Tomcat 系統變數與路徑 ENV JAVA_HOME /usr/java/latest ENV CATALINA_HOME /home/admin/taobao-tomcat ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin #設定 EDAS-Container / Pandora 應用容器版本 ENV EDAS_CONTAINER_VERSION V3.5.2 LABEL pandora V3.5.2 #下載安裝 JDK 8 RUN wget http://edas-bj.oss-cn-beijing.aliyuncs.com/agent/prod/files/jdk-8u191-linux-x64.rpm -O /tmp/jdk-8u191-linux-x64.rpm && \ yum -y install /tmp/jdk-8u191-linux-x64.rpm && \ rm -rf /tmp/jdk-8u191-linux-x64.rpm #下載安裝 Ali-Tomcat 7.0.92 到 /home/admin/taobao-tomcat 目錄 RUN wget http://edas-bj.oss-cn-beijing.aliyuncs.com/edas-container/7.0.92/taobao-tomcat-production-7.0.92.tar.gz -O /tmp/taobao-tomcat.tar.gz && \ mkdir -p ${CATALINA_HOME} && \ tar -xvf /tmp/taobao-tomcat.tar.gz -C ${CATALINA_HOME} && \ mv ${CATALINA_HOME}/taobao-tomcat-production-7.0.59.3/* ${CATALINA_HOME}/ && \ rm -rf /tmp/taobao-tomcat.tar.gz ${CATALINA_HOME}/taobao-tomcat-production-7.0.59.3 && \ chmod +x ${CATALINA_HOME}/bin/*sh #下載war包,解壓內容到root目錄下 RUN wget http://1.1.1.1/UAT/uat_user.war -O /tmp/ROOT.war && \ unzip /tmp/ROOT.war -d ${CATALINA_HOME}/deploy/ROOT/ #設定 Tomcat 安裝目錄為容器啟動目錄,並啟動tomcat WORKDIR $CATALINA_HOME CMD ["/bin/bash", "/bin/startup.sh"]
4.打包好的映象,會存放在映象倉庫,映象名就是提交的tag標籤名,也就是時間名
5.jenkins會執行python指令碼,呼叫阿里雲API去迴圈判斷映象倉庫的映象是否打成功。成功則呼叫EDAS的api去部署新的映象,若不成功則返回錯誤
6.在EDAS處可以新增services的ip
7.然後在阿里雲-容器服務k8s裡面,新增一個路徑,將servicesip對映為公網地址