K8S 如何实现将git代码下拉到指定的容器路径中

 

 gitRepo 是 kubernetes Volume类型中的一种,gitRepo volume可以实现将git代码下拉到指定的容器路径中。 

备注:实现此功能,Pod运行的节点都必需要安装git。换句话说,如果你的Pod指定在哪个节点上运行,则此节点必需安装git;如果不指定,则所有的节点必需安装git。否则会提示:“找不到可执行文件...”错误

关于git的安装可查看 https://www.cnblogs.com/caoxb/p/11257549.html   

 

完整示例:

Pod配置文件 tomcat.yaml

复制代码
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: myweb
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: myweb
    spec:
      containers:
      - name: myweb
        image: 192.168.38.23/library/tomcat:7.0.69-jre7  # 这里是我本地搭建的Harbor镜像地址
        ports:
        - containerPort: 8080
        volumeMounts:
        - mountPath: /usr/local/tomcat/webapps/k8sdemo.war  
          name: git-volume
          subPath: test/k8sdemo.war          
      volumes:       
      - name: git-volume
        gitRepo:
          repository: "http://192.168.38.22:8088/root/k8sdemo.git"  # 这里是我本地搭建的Gitlab项目地址
          revision: "master"
复制代码

 $ kubectl create -f tomcat.yaml

配置说明:

  • image:        jre+tomcat的镜像地址;
  • repository:  gitlab上传的war包下载地址,如果是private,格式如下:http://用户名:密码@192.168.38.22:8088/root/test.git;
  • mountPath:挂载的POD路径,这里是把war放在Pod中tomcat的webapps目录下;
  • subPath:    gitlab项目的war包路径。例如:test/k8sdemo.war  test表示gitlab的项目名称。
  • revision:     gitlab项目分支的名称

 

Server配置文件 tomcatsvc.yaml

复制代码
apiVersion: v1
kind: Service
metadata:
  name: myweb
spec:
  type: NodePort
  ports:
    - port: 8080
      targetPort: 8080
      nodePort: 30088
  selector:
    app: myweb
复制代码

$ kubectl create -f tomcatsvc.yaml

 

posted @   cao_xiaobo  阅读(1291)  评论(1编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示