k8s環境安裝tomcat應用


k8s可以直接使用docker下載各種官方的鏡像進行部署,但是當我們需要部署自己的web應用時,就不能直接下載官方鏡像,而是應該使用dockerfile文件生成部署了自己的web應用的鏡像,然后把該鏡像上傳到私有倉庫,再在k8s中使用私有倉庫中該鏡像去生成pod。但是生成pod后,只可以在pod的所在node的機器上使用pod的id進行訪問,外部網絡不能訪問,所以為了讓外部網絡可以訪問pod里的web應用,我們還需要創建service,service的類型有好幾種,我采用的是nodeport,創建該類型的service,可以在外部網絡通過pod所在的node服務器的ip對web應用進行訪問。所以k8s部署web應用的過程大概可以分為以下幾個步驟:
開始——准備好web應用安裝包——創建docker鏡像,並在鏡像中安裝好web應用——把docker鏡像上傳到私有倉庫——k8s調用私有倉庫的鏡像生成pod——k8s創建service,建立pod跟外部網絡的鏈接通道——通過pod所在的node服務器ip訪問pod——結束
一、創建docker鏡像並安裝應用
通過Dockerfile創建鏡像,命令如下
docker build -t tomcat:v1 .
注意最后面有“.

Dockerfile的內容如下:
# base image (使用的基礎鏡像)
FROM centos:7

# MAINTAINER (標明作者)
MAINTAINER www.cnblogs.com/fivedays/

#Yum install base programs
RUN yum install -y net-tools
RUN yum install -y vim
RUN yum install -y vi
RUN yum install -y unzip

#Install tomcat
ADD tomcat-8.5.45-jdk1.8.tar.gz /home/
#拷貝.tar.gz格式的壓縮包進docker時,會自動解壓,同時需要注意,tomcat包最好自帶自己想要的jdk
RUN chmod +x -R /home/tomcat-8.5.45-jdk1.8/

#Workdir (安裝好鏡像及容器后,命令進入容器時默認進入該路徑)
WORKDIR /home/tomcat-8.5.45-jdk1.8/bin/

#CMD (啟動容器時默認執行的命令,命令必須有效,否則無法正常啟動容器)
CMD ["/home/tomcat-8.5.45-jdk1.8/bin/catalina.sh","run"]

#Expose port (容器映射到宿主機的端口,此處只是寫入默認參數,並沒有生效,具體生效操作是在第一次啟動鏡像時輸入的具體參數)
EXPOSE 8080


tomcat-8.5.45-jdk1.8.tar.gz是tomcat+程序包,並且數據庫,環境變量等已經完全配置好,解壓即可使用。
8080是tomcat的啟動端口
二、上傳到私有倉庫
1、先給鏡像打上私有倉庫的路徑標簽標簽,我的私有倉庫的訪問路徑是192.168.8.23:5000,所以命令是:
docker tag tomcat:v1 192.168.8.23:5000/tomcat:v1
2、上傳鏡像到私有倉庫
docker push 192.168.8.23:5000/tomcat:v1
三、k8s使用私有倉庫生成pod
kubectl create -f tomcat.yaml

taglib.yaml文件內容如下:
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: tomcat
spec:
  replicas: 1
  template:
    metadata:
      labels:
        run: tomcat
    spec:
      containers:
      - name: tomcat
        image: 192.168.8.23:5000/tomcat:v1
        ports:
        - containerPort: 8080
      imagePullSecrets:
      - name: myregistry-key

四、創建service
kubectl create -f tomcat-svc.yaml
taglib-svc.yaml的內容如下:
apiVersion: v1
kind: Service
metadata:
  name: tomcat-svc
spec:
   type: NodePort
   ports:
   - protocol: TCP
     port: 8080
     targetPort: 8080
     nodePort: 30001
   selector:
     run: tomcat
至此部署完成。
應用升級
同樣的套路,先創建鏡像並部署升級后的系統,鏡像名跟之前的名字一樣,但是版本號換成v2,命令如下:
docker build -t tomcat:v2 .
再上傳到私有倉庫
docker tag taglib:v2 192.168.8.23:5000/tomcat:v2
docker push 192.168.8.23:5000/tomcat:v2
再修改tomcat.yaml,把鏡像的版本換成v2
image: 192.168.8.23:5000/tomcat:v2
執行命令
kubectl apply -f tomcat.yaml
等待升級完畢即可。

如果安裝環境是局域網,無法連接公網,則可以在個人環境中創建好docker鏡像后,進行導出,然后導入到安裝環境的docker中,再上傳到私有倉庫。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM