我在kubernetes中运行gitsync容器,并试图从github同步存储库。我已经使用known_hosts和ssh创建了秘密。然而,我面临着随之而来的错误。
“msg”=“未能同步repo,中止”"error"="error“运行命令:退出状态128:”克隆到‘/tmp/git’.\n致命:无法从远程存储库读取。\n\n请确保您具有正确的访问权限\nand存储库。\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发布于 2020-07-11 19:09:26
看来你跟踪了正式文件。
但事实证明,这些文档根本没有提到将公钥放在哪里。
实际上,通过SSH进行git身份验证需要执行以下步骤:
1.生成SSH密钥对:
ssh-keygen -t rsa -N "" -f mykey此cmd生成2个文件:
./mykey./mykey.pub2.在“设置”>“SSH ”下将公钥放入您的Github帐户中。
复制./mykey.pub的内容并将其添加到github帐户中。
3.将私钥放入k8s 中
正式文档从这里开始,它将$HOME/.ssh/id_rsa视为私钥。
kubectl create secret generic git-creds \
--from-file=ssh=./mykey \
....其馀部分应与所解释的正式文件相同。
https://stackoverflow.com/questions/62852561
复制相似问题