kubernetes 中的 Gitsync 部署不正确

标签 git github kubernetes containers google-kubernetes-engine

我正在 kubernetes 中运行 gitsync 容器并尝试从 github 同步存储库。我已经使用known_hosts和ssh创建了 secret 。但是我面临以下错误。

"msg"="failed to sync repo, aborting" "error"="error running command: exit status 128: "Cloning into '/tmp/git'...\nfatal: Could not read from remote repository.\n\nPlease make sure you have the correct access rights\nand the repository exists.\n""

这是我的部署文件。

apiVersion: apps/v1
kind: Deployment
metadata:
  name: gitsync-deployment
  labels:
    app: gitsync
spec:
  replicas: 1
  selector:
    matchLabels:
      app: gitsync
  template:
    metadata:
      labels:
        app: gitsync
    spec:
      containers:
      - name: git-sync
        image: k8s.gcr.io/git-sync:v3.1.5
#        command: ["cat"]
#        args: ["/etc/git-secret/ssh"]
        imagePullPolicy: Always
        volumeMounts:
        - name: git-secret
          mountPath: /etc/git-secret
        env:
        - name: GIT_SYNC_REPO
          value: "<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="b3d4dac7f3d4dac7dbc6d19dd0dcde" rel="noreferrer noopener nofollow">[email protected]</a>:username/test.git"
        - name: GIT_SYNC_SSH
          value: "true"
        - name: GIT_SYNC_BRANCH
          value: master
        - name: GIT_SYNC_DEST
          value: git
        - name: GIT_SYNC_DEPTH
          value: "1"
      volumes:
      - name: html
        emptyDir: {}
      - name: git-secret
        secret:
          secretName: git-creds
          defaultMode: 256

最佳答案

您似乎遵循了official documentation .

但事实证明,该文档根本没有提及将公钥放在哪里。

实际上,通过 SSH 进行 git 身份验证需要以下步骤:

<强>1。生成 SSH key 对:

ssh-keygen -t rsa -N "" -f mykey

此命令生成 2 个文件:

  • 私钥:./mykey
  • 公钥:./mykey.pub

<强>2。将公钥放入您的 Github 帐户中的“设置”>“SSH key ”

复制./mykey.pub的内容并将其添加到您的github帐户中。

<强>3。将私钥放入k8s Secret中

官方文档从这里开始,将$HOME/.ssh/id_rsa视为私钥。

kubectl create secret generic git-creds \
    --from-file=ssh=./mykey \ 
  ....

其余的应该和官方文档解释的一样。

关于kubernetes 中的 Gitsync 部署不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62852561/

相关文章:

svn - 从 SVN 迁移到 GIT

git - ant build - unzip 不支持嵌套的 "cutdirsmapper"元素

git - 使用 go 语言与 gitolite

github - 如何在Github上搜索所有以文件扩展名 `.feature`结尾的文件?

git - 通过 ssh 共享 git repo 的正确方法

Mac 版 Git 安装程序 : Why is/usr/local/git/bin in my PATH?

api - 如何使用github API从github的URL获取主要语言或语言列表?

kubernetes - 如何运行 Kubernetes pod,其唯一目的是对其运行 exec?

php - 连接到同一 pod 中的 MySQL 容器

kubernetes - kubernetes PersistentVolumes 的最大存储容量是多少