五月综合激情婷婷六月,日韩欧美国产一区不卡,他扒开我内裤强吻我下面视频 ,无套内射无矿码免费看黄,天天躁,日日躁,狠狠躁

新聞動態(tài)

打包docker鏡像推送到遠程服務器并部署到k8s的方法步驟

發(fā)布日期:2022-01-29 11:54 | 文章來源:CSDN

前提條件:

1、docker服務器已開啟遠程訪問,參考《遠程docker服務器攜帶證書連接》。

2、服務器上已經搭建好k8s集群,本文是k8s單點集群用于測試。

在之前的文章中我們已經通過idea的docker插件測試了遠程docker服務器已經能夠正常訪問,雖然利用這個docker插件也可以完成docker鏡像的打包及推送,但本文我們將換一種方式,使用maven的docker-maven-plugin插件完成docker鏡像的打包,以及推送到遠程docker服務器。

1、Dockerfile

Dockerfile文件用于將我們的應用做成docker鏡像

# 指定jdk環(huán)境版本,基于java8創(chuàng)建鏡像
FROM java:8
# 掛載臨時目錄
VOLUME /tmp
# 添加指定jar包到容器《此處為項目打包產生的jar包全名》
ADD practice-job-0.0.1-SNAPSHOT.jar /practice-job.jar
# 容器向外暴露的端口號《指該項目運行所占用的的端口號》
EXPOSE 8081
# 容器啟動后執(zhí)行的命令
ENTRYPOINT [ "java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "/practice-job.jar" ]

2、pom配置

pom文件的相關配置如下,注意填入遠程服務器的ip,并指明上述Dockerfile路徑以及訪問遠程docker需要的pem證書文件的路徑。

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
 
            <!--使用docker-maven-plugin插件,用于將該服務打包成鏡像發(fā)往docker服務端-->
            <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <version>1.2.2</version>
                <!--將插件綁定在某個phase執(zhí)行 -->
                <executions>
                    <execution><id>build-image</id><!--將插件綁定在package這個phase上。也就是說,用戶只需執(zhí)行mvn package ,就會自動執(zhí)行mvn docker:build --><phase>package</phase><goals>
<goal>build</goal></goals>
                    </execution>
                </executions>
                <configuration>
                    <forceTags>true</forceTags>
                    <!--指定生成的鏡像名 該處修改為自己想要生成的鏡像名稱-->
                    <imageName>practice-job</imageName>
                    <!--指定標簽-->
                    <imageTags><imageTag>latest</imageTag>
                    </imageTags>
                    <!-- 指定Dockerfile 路徑 -->
                    <dockerDirectory>${project.basedir}</dockerDirectory>
                    <!--指定遠程docker地址 -->
                    <dockerHost>https://公網ip:2376</dockerHost>
                    <!--指定pem證書文件路徑地址 -->
                    <dockerCertPath>${project.basedir}/src/main/resources/pem</dockerCertPath>
                    <!-- 這里是復制jar包到docker容器指定目錄配置 -->
                    <resources><resource>
<targetPath>/</targetPath>
<!--jar 包所在的路徑此處配置的即對應 target 目錄 -->
<directory>${project.build.directory}</directory>
<!-- 需要包含的jar包,這里對應的是Dockerfile中添加的文件名 -->
<include>${project.build.finalName}.jar</include></resource>
                    </resources>
                </configuration>
            </plugin>
        </plugins>
    </build>

3、鏡像推送

上述準備就緒以后執(zhí)行install命令,等待一段時間后下方控制臺出現BUILD SUCCESS則說明鏡像推送成功。

接著去遠程服務器驗證一下,輸入docker images命令查看容器鏡像。

可以看到我們的應用鏡像已經推送成功了,下面就是部署階段。

4、k8s部署

如果在以前我們的部署環(huán)境只有docker容器,那么這里只需要docker run我們的應用鏡像,將項目部署在docker容器就可以訪問了。但現在我們的部署環(huán)境是k8s+docker,所以不能直接運行我們的應用鏡像進行部署,下面進入k8s的部署。

首先需要創(chuàng)建兩個yaml文件:practice-job-deployment.yaml、practice-job-service.yaml,至于這兩個文件的作用涉及到k8s的概念,關于k8s的概念將會在之后的文章中談到,這里只需要知道在k8s中的大部分配置都是基于yaml文件進行定義的就可以了。

vi practice-job-deployment.yaml

apiVersion: v1
kind: Namespace
metadata:
  name: practice
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: practice-job-deployment
  namespace: practice
spec:
  replicas: 1
  selector:
    matchLabels:
      app: practice-job-pod
  template:
    metadata:
      labels:
        app: practice-job-pod
    spec:
      hostNetwork: true
      containers:
        - name: practice-job-container
          image: practice-job:latest  #鏡像名稱+版本
          imagePullPolicy: Never   #表示鏡像來源,IfNotPresent本地沒有就從hub倉庫拉取,Never表示只從本地
          ports:
            - containerPort: 8081
          env:
            # 指定日志文件路徑
            - name: logging.path
              value: /var/logs

vi practice-job-service.yaml

apiVersion: v1
kind: Service
metadata:
  name: practice-job-service
  namespace: practice
  labels:
    app: practice-job-service
spec:
  type: NodePort
  selector:
    app: practice-job-pod
  ports:
    - name: http
      protocol: TCP
      port: 8081 #service(對內)的端口
      targetPort: 8081 #pod的端口
      nodePort: 32001 #service(對外)的端口

然后分別執(zhí)行命令:

kubectl apply -f practice-job-deployment.yaml
kubectl apply -f practice-job-service.yaml

執(zhí)行命令:kubectl get pod --all-namespaces 查看pod,可以看到我們項目的pod已經成功運行。

執(zhí)行命令:kubectl logs practice-job-deployment-77d685767-glvgm -n practice 查看應用運行日志。格式為:kubectl logs <pod的name> -n <pod的namespace>。

執(zhí)行命令:docker ps 可以看到項目也已經運行在容器中了

執(zhí)行命令:kubectl get service --all-namespaces 可以看到應用對應的服務也已啟動成功且對外暴露的端口正是32001,這個端口就是我們前面在yaml文件中自己配置的。

最后瀏覽器訪問:公網ip:32001/doc.html。此路徑只是針對我的項目,不同的項目路徑不同。注意防火墻需要開啟相應端口。

至此應用從本地打包docker鏡像推送至服務器,并部署到k8s+docker容器結束。

到此這篇關于打包docker鏡像推送到遠程服務器并部署到k8s的方法步驟的文章就介紹到這了,更多相關docker鏡像打包并部署到k8s內容請搜索本站以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持本站!

美國服務器租用

版權聲明:本站文章來源標注為YINGSOO的內容版權均為本站所有,歡迎引用、轉載,請保持原文完整并注明來源及原文鏈接。禁止復制或仿造本網站,禁止在非maisonbaluchon.cn所屬的服務器上建立鏡像,否則將依法追究法律責任。本站部分內容來源于網友推薦、互聯網收集整理而來,僅供學習參考,不代表本站立場,如有內容涉嫌侵權,請聯系alex-e#qq.com處理。

實時開通

自選配置、實時開通

免備案

全球線路精選!

全天候客戶服務

7x24全年不間斷在線

專屬顧問服務

1對1客戶咨詢顧問

在線
客服

在線客服:7*24小時在線

客服
熱線

400-630-3752
7*24小時客服服務熱線

關注
微信

關注官方微信
頂部