kubernetes中的Gitsync未正确部署

kubernetes中的Gitsync未正确部署,git,github,kubernetes,containers,google-kubernetes-engine,Git,Github,Kubernetes,Containers,Google Kubernetes Engine,我正在kubernetes中运行gitsync容器,并尝试从github同步存储库。我已经使用已知的_主机和ssh创建了secret。然而,我面临以下错误 “msg”=“无法同步repo,正在中止”“错误”=“运行命令时出错:退出状态128:“克隆到“/tmp/git”…\n终止:无法从远程存储库读取。\n\n请确保您具有正确的访问权限,\n并且存储库存在。\n” 这是我的部署文件 apiVersion: apps/v1 kind: Deployment metadata: name: gi

我正在kubernetes中运行gitsync容器,并尝试从github同步存储库。我已经使用已知的_主机和ssh创建了secret。然而,我面临以下错误

“msg”=“无法同步repo,正在中止”“错误”=“运行命令时出错:退出状态128:“克隆到“/tmp/git”…\n终止:无法从远程存储库读取。\n\n请确保您具有正确的访问权限,\n并且存储库存在。\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: "git@github.com: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

看来你是跟着我来的

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

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

1。生成SSH密钥对:

ssh-keygen -t rsa -N "" -f mykey
此命令生成2个文件:

  • 私钥:
    /mykey
  • 公钥:
    /mykey.pub
2。将公钥放入Github帐户的“设置”>“SSH密钥”下

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

3。将私钥放入k8s密钥中

官方文档从这里开始,它考虑了<代码> $home /ssh/IDyRSA < /Case>作为私钥。

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

其余部分应与解释的官方文档相同。

您知道私钥和公钥之间的区别吗?如果是这样,您是否将私钥放在github端,将公钥放在k8s端(secret)?还是你做了相反的事?@AbdennourTOUMI我知道。我已经在github上添加了公钥,在我的机器上运行没有问题。唯一的问题是运行gitsynck8spod。你能不能请执行到pod中并运行
ls-la/etc/git secret/ssh
嘿,容器崩溃了。但是,我使用YAML本身中的命令和参数成功地运行了它。它为lrwxrwx 1提供根根目录10 Jul 11 19:19/etc/git secret/ssh->…data/ssh@abdennourtoumia当您现在可以登录到pod时,通过检查私钥(chmod 400 mykey)的权限开始故障排除。完成此操作后,尝试以交互方式进行git克隆,直到修复为止。