使用k8s部署springcloud應用過程


-- 摘自海生哥哥

1. 打包項目為jar包

- 在集群master節點上執行命令,獲取eurekaService注冊中心的集群地址ClusterIP和集群端口port
- kubectl get svc
- ClusterIP:集群中[service]的IP
- port:集群中[service]的端口
- 拉取svn更新userService代碼
- 更新userService模塊內的boostrap.yml修改注冊中心地址
- eureka.client.serviceUrl.defaultZone = http://[ClusterIP]:[port]/eureka/
- 例如:eureka.client.serviceUrl.defaultZone = http://10.106.159.181:8761/eureka/
- userService模塊執行maven clean install生成jar包

2. 打包jar為docker鏡像並上傳到私有倉庫,目前使用的私有倉庫是docker官方的registry

- 上傳jar到安裝了docker的CentOS服務器上
- 在jar包旁邊創建Dockerfile文件,注意該文件沒有任何后綴

- 創建鏡像,build命令中的最后一個點代表當前Dockerfile的路徑
- registryIP:私有倉庫registry的IP
- registryPort:私有倉庫registry的端口
- imageName:鏡像名稱,可以使用斜杠區分目錄,例如:myProject/userService
- tag:鏡像的標簽,docker私有倉庫registry中同一個鏡像的標簽唯一
- docker build -t [registryIP][registryPort][imageName]:[tag] .
- 例如:docker build -t docker build -t 172.16.0.11:5000/springcloud/gatewayservice:v4 .

- 推送鏡像到私有倉庫registry
- docker push [registryIP][registryPort][imageName]:[tag]
- 例如:docker push 172.16.0.11:5000/springcloud/gatewayservice:v4

3. 在k8s的master節點執行更新

- 登錄集群master節點
- 進入自定義存放userServiceDeployment.yaml文件的路徑
- cd /usr/local/zixinhui/my_deployment
- 修改userServiceDeployment.yaml文件中docker鏡像的標簽[tag],例如一下屬性中的v4
apiVersion: apps/v1
kind: Deployment
metadata:
    name: deployment-userservice
    namespace: default # 命名空間,不同命名空間相互隔離
spec:
  replicas: 1 # 部署userService服務的個數
  selector:
    matchLabels:
      name: deployment-userservice # pod名稱
  template:
    metadata:
      labels:
        name: deployment-userservice # pod名稱
    spec:
      containers:
      - name: userservice # 鏡像名稱
        image: 172.16.0.11:5000/springcloud/userservice:v4 # 我們打包的鏡像,打包為v4就寫v4,打包成v5就寫v5
        imagePullPolicy: Always # 容器拉取規則,Always表示每次都從docker私有倉庫registry拉取鏡像部署
        ports:
        - containerPort: 8766
        env: # 設置容器內環境變量,以下效果為設置容器時間為上海標准時間
        - name: TZ
          value: Asia/Shanghai
---
apiVersion: v1
kind: Service
metadata:
  name: userservice-service
spec:
  type: ClusterIP # 集群IP類型:NodePort、ClusterIP、None
  selector:
    name: deployment-userservice
  ports:
    - protocol: TCP
      port: 8766 # 集群service端口
      targetPort: 8766 # docker容器端口
- 保存修改之后,執行更新命令
- kubectl apply -f userService.yaml

4. 在k8s中master節點查看日志、服務等命令

- 查看日志,加-f參數效果類似tail -f output.log
- kubectl logs -f [podName]
- podName:通過命令kubectl get pods查詢出來的NAME字段
- 進入pod內部:
- kubectl exec -it [podName] -- /bin/sh
- pod內部可以包含多個容器,pod是k8s最小執行單位
- 按照范圍划分:service > pod > container > jar


免責聲明!

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



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