在Kubernetes中使用gitRepo卷时,会将repo克隆到mountPath目录中。对于以下pod规范,例如:
apiVersion: v1
kind: Pod
metadata:
name: server
spec:
containers:
- image: nginx
name: nginx
volumeMounts:
- mountPath: /usr/share/docroot
name: docroot-volume
volumes:
- name: docroot-volume
gitRepo:
repository: "git@somewhere:me/my-git-repository.git"
该目录显示在/ usr / share / docroot / my-git-repository的容器中。这意味着我的容器需要知道我的存储库名称。我不希望我的容器知道有关存储库名称的任何信息。它应该只知道有一个“docroot”,但初始化。 git存储库名称应该出现的唯一位置是pod规范。
Kubernetes是否还有指定git repo卷装的完整内部路径?
答案 0 :(得分:0)
目前没有本地方法可以执行此操作,但我为您提交了issue。
Under the hood kuberetes只是在emptyDir卷上执行git clone $source
,但由于源是作为单个参数传递的,因此无法指定目标名称。
Fri, 09 Oct 2015 18:35:01 -0700 Fri, 09 Oct 2015 18:49:52 -0700 90 {kubelet stclair-minion-nwpu} FailedSync Error syncing pod, skipping: failed to exec 'git clone https://github.com/kubernetes/kubernetes.git k8s': Cloning into 'kubernetes.git k8s'...
error: The requested URL returned error: 400 while accessing https://github.com/kubernetes/kubernetes.git k8s/info/refs
fatal: HTTP request failed
: exit status 128
与此同时,我可以考虑两个选项来避免对存储库名称的依赖: