此时情绪此时天,无事小神仙
好好生活,平平淡淡每一天

编辑

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
posted @ 2021-12-24 11:27  踏步  阅读(1849)  评论(0编辑  收藏  举报