k8s 微服務打包上傳私庫、部署、發布


微服務打包上傳私庫、部署、發布

1.   Idea maven打包

修改配置文件yml的 eureka地址:http://10.0.0.111:11111/eureka

Maven-----打成jar包。

2.   Docker  配置私服地址:

1  Docker配置鏡像加速器地址和私庫地址:在/etc/docker目錄創建daemon.json文件

在daemon.json文件中填寫如下配置

{
"registry-mirrors": ["https://vaflkxbk.mirror.aliyuncs.com"],
"insecure-registries": ["10.0.0.34:5000"]
}

  

重啟docker服務:  systemctl  restart docker

鏈接地址:

https://jingyan.baidu.com/article/466506585d92f8b549e5f89c.html

 

3.   Java后端代碼創建鏡像

1  在安裝docker環境的服務器上新建一個目錄,

 

2 把項目maven  jar上傳到目錄里面,新建一個Dockerfile文件,用來打包docker鏡像:紅色是需要自己修改的

 

FROM 10.0.0.34:5000/project/openjdk:8-jdk-alpine
EXPOSE 8508
VOLUME "/tmp"
COPY PROJECT_TEST-1.0.1-SNAPSHOT.jar  test.jar
ENTRYPOINT ["java","-Dspring.profiles.active=docker","-jar","/test.jar"]

  

 

3  如果項目用到本地目錄的應該添加VOLUME路徑"/opt/case/",最好為兩層路徑,不然會報錯找不到文件路徑,

 

FROM 10.0.0.34:5000/project/openjdk:8-jdk-alpine
EXPOSE 8508
VOLUME ["/tmp","/opt/case/"]
COPY PROJECT_TEST-1.0.1-SNAPSHOT.jar  test.jar
ENTRYPOINT ["java","-Dspring.profiles.active=docker","-jar","/ test.jar"]

  

 

4  docker拉取jdk鏡像,創建Java鏡像的時候使用(服務器有鏡像的不用拉取);

docker  pull  10.0.0.34:5000/project/openjdk:8-jdk-alpine

  

5  docker  images查看拉取成功后,開始創建Java鏡像:

docker  build   -t  test:latest  

  

.

6  創建成功后修改項目鏡像的tag,加上docker私庫的ip端口,用於上傳鏡像:

docker   tag  test:latest   10.0.0.34:5000/project/ test:latest

  

 

7 docker images查看 修改成功了,開始上傳鏡像到私庫:

docker  push   10.0.0.34:5000/project/case:latest

  

8  上傳成功后,查看私庫的鏡像列表:

curl  http://10.0.0.34:5000/v2/_catalog

  

9  也可以瀏覽器訪問http://10.0.0.34:5000/v2/_catalog查看一下是否推送成功

4.   Vue前端代碼

1  登錄Docker環境的服務器,新建目錄:上傳dist和nginx.conf文件

2  編寫nginx的配置文件,具體內容因項目而異

3  在項目中增加Dockerfile文件,用來打包docker鏡像

FROM nginx
ENV TimeZone=Asia/Shanghai
RUN mkdir /etc/nginx/logs
COPY dist/ /etc/nginx/html
COPY nginx.conf /etc/nginx/nginx.conf

  

 

4  在Dockerfile目錄執行腳本,進行打包鏡像,標簽,推送到私服

docker build -t="project/client" ./         # 打包docker鏡像
docker tag project/client:latest 10.0.0.34:5000/project/client:latest
#設置遠程私服標簽

docker push 10.0.0.34:5000/project/client # 推送到私服

  

可以訪問http://10.0.0.34:5000/v2/_catalog查看一下是否推送成功

5.   K8S部署

1  登錄到k8s:http://10.30.16.224:32567/dashboard 選擇名稱空間

輸入Token:

eyJhbGciOiJSUzI1NiIsImtpZCI6IjhPUXFjcXp1ZmNHODM4amlUd1dYMElaZTUyUlAtbzlHZzRZb20zYUthZU0ifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlLXN5c3RlbSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJrdWJvYXJkLXVzZXItdG9rZW4tN3pqeHMiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoia3Vib2FyZC11c2VyIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQudWlkIjoiOGZiYTZkYTMtNWYzOC00ODBiLThmMjYtNTA5OTMxMDUyNWIzIiwic3ViIjoic3lzdGVtOnNlcnZpY2VhY2NvdW50Omt1YmUtc3lzdGVtOmt1Ym9hcmQtdXNlciJ9.hxmqaVDpNxC24g9nA374b4yVltDZtkqrkwrzOLS7XgCPY4ighPdXbyLewQZdm9wKznKcKBH21Pj9jHe4yaugNSwnARgiBUyR44ORBseGUW7qjR-cPBI9g-iqJGX8uaAYLmgvMhvvsg

 

2  點擊進入名稱空間,常用操作,選擇從yaml創建

 

 

 

 

 

編寫部署鏡像的yaml文件,把所有case的地方替換成你項目名稱(namespace是部署的空間目錄,containerPort是端口號)

 

kind: Deployment
apiVersion: apps/v1
metadata:
  name: test-deployment
  namespace: test
spec:
  replicas: 1
  selector:
    matchLabels:
      app: test
  template:
    metadata:
      labels:
        app: test
    spec:
      containers:
      - name: test
        image: 10.0.0.34:5000/project/ test
        ports:
        - containerPort: 8508

  

2  點擊”確定” “應用” 創建成功如下圖:

 

 

 

 

 

6.   K8S發布

1  點擊服務查看,進入編輯區

 

 

 

 

 

 

2  點擊編輯按鈕進入服務發布編輯區,添加下圖紅色框的內容,

 

 

 

 

 

 

填寫service頁面,k8s端口范圍30000-32767:

 

 

 

3  填寫完畢后,點擊保存,服務自動發布

 

 

 

4  Swagger測試服務http://10.30.16.211:31010/swagger-ui.html把端口號改成自己的端口

5  K8s開放平台測試服務http://10.30.16.224:30080/project


免責聲明!

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



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