k8s-部署容器化應用


一、k8s部署容器化應用的步驟

1、制作鏡像(自己Dockerfile文件制作,或者從倉庫pull)

2、通過控制器管理pod(把鏡像啟動得到一個容器,容器在pod里)

3、暴露應用,以便外界可以訪問

二、k8s部署nginx示例

1、制作鏡像(有現成的,不需要制作)

2、kubectl  create  deployment  nginx  --image=nginx

3、kubectl  expose  deployment  nginx  --port=80  --type=NodePort

4、訪問應用

查看一下:

kubectl  get  node(s)

kubectl  get  deploy(ment)

kubectl  get   pod(s)

kubectl  get  service(s)   暴露控制器端口后才會看到service

 

#刪除nginx控制器(刪除控制器后,對應的pod也被刪除 )

kubectl   delete  deploy  nginx

#刪除nginx的service

kubectl   delete  service  nginx

#刪除nginx的pod

kubectl   delete   pod    nginx-6799fc88d8-mcjsg

 

#查看命名空間

kubectl  get  namespace

#查看pod詳情

kubectl  describe  pods  pod名稱

#查看pod實時日志

kubectl  logs  -f  pod名稱

 三、k8s集群中部署SpringBoot應用

1、項目打包(jar、war)--->可以采用一些工具git、jenkins,maven

2、制作Dockerfile文件,生成鏡像

3、kubectl  create  deployment  your-springboot  --image=你的鏡像

4、你的springboot就部署好了,是以docker容器方式運行在pod里面

Master控制node-->service-->deployment(控制器)-->pod-->docker

自定義JDK鏡像:

FROM centos:latest
MAINTAINER  BAI
ADD  jdk-8u251-linux-x64.tar.gz /usr/local/java
ENV JAVA_HOME /usr/local/java/jdk1.8.0_251
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV PATH $PATH:$JAVA_HOME/bin
CMD java -version

構建java鏡像:docker  build  -t  jdk1.8.0_251  .

構建項目鏡像:

FROM  jdk1.8.0_251
MAINTAINER  BAI
ADD  springboot-k8s-1.0.0.jar  /opt
RUN  chmod  +x  /opt/springboot-k8s-1.0.0.jar
CMD  java  -jar  /opt/springboot-k8s-1.0.0.jar

構建項目鏡像:docker  build  -t  springboot-k8s-1.0.0-jar  .

空運行測試:

Kubectl  create  deployment  springboot-k8s  --image=springboot-k8s-1.0.0-jar  --dry-run  -o  yaml
Kubectl  create  deployment  springboot-k8s  --image=springboot-k8s-1.0.0-jar  --dry-run  -o  yaml  >  deploy.yaml

  yaml文件內容:

apiVersion: apps/v1
kind: Deployment
metadata:
  creationTimestamp: null
  labels:
    app: springboot-k8s
  name: springboot-k8s
spec:
  replicas: 1
  selector:
    matchLabels:
      app: springboot-k8s
  strategy: {}
  template:
    metadata:
      creationTimestamp: null
      labels:
        app: springboot-k8s
    spec:
      containers:
      - image: springboot-k8s-1.0.0-jar
        name: springboot-k8s-1.0.0-jar
        #配置從本地拉取鏡像,不從鏡像倉庫拉取
imagePullPolicy:Never resources: {} status: {}

Yml文件部署:

kubectl  apply  -f  deploy.yaml
kubectl expose deploy springboot-k8s --port=80 --type=NodePort
kubectl get service
kubectl get deploy kubectl get pods

  

 


免責聲明!

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



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