kubernetes中的Gitsync未正确部署
我正在kubernetes中运行gitsync容器,并尝试从github同步存储库。我已经使用已知的_主机和ssh创建了secret。然而,我面临以下错误 “msg”=“无法同步repo,正在中止”“错误”=“运行命令时出错:退出状态128:“克隆到“/tmp/git”…\n终止:无法从远程存储库读取。\n\n请确保您具有正确的访问权限,\n并且存储库存在。\n” 这是我的部署文件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
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
/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克隆,直到修复为止。