我正在kubernetes中运行gitsync容器,并尝试从github同步存储库。我已经使用known_hosts和ssh创建了秘密。但是我遇到以下错误。
“ msg” =“无法同步回购,中止”“ error” =“错误正在运行的命令:退出状态128:”克隆到'/tmp/git'...\nfatal:无法从远程存储库读取。 \ 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
答案 0 :(得分:1)
似乎您遵循了official documentation。
但是事实证明,本文档完全没有提到将公钥放在何处。
实际上,通过SSH进行git身份验证需要执行以下步骤:
1。生成SSH密钥对:
ssh-keygen -t rsa -N "" -f mykey
此cmd生成2个文件:
./mykey
./mykey.pub
2。将公共密钥放在您的Github帐户的“设置”>“ SSH密钥”下
复制./mykey.pub
的内容并将其添加到您的github帐户中。
3。将私钥放入k8s机密
官方文档从此处开始,并且将$HOME/.ssh/id_rsa
作为私钥。
kubectl create secret generic git-creds \
--from-file=ssh=./mykey \
....
其余部分应与官方说明的文件相同。