Docker Desktop forWindowsで実行されているK8sの永続ボリュームをセットアップしようとしています。最終的な目標は、Jenkinsを実行し、docker / K8sがスピンダウンしても作業を失わないようにすることです。
私はいくつかのことを試しましたが、これを行う能力を誤解しているか、何か間違った設定をしています。現在、私は次のような環境設定をしています。
JenkinsのDockerにボリュームを設定しました。ボリュームを作成するだけで、ここでさらに構成が必要かどうかはわかりません。
docker volume inspect jenkins-pv
[
{
"CreatedAt": "2020-05-20T16:02:42Z",
"Driver": "local",
"Labels": {},
"Mountpoint": "/var/lib/docker/volumes/jenkins-pv/_data",
"Name": "jenkins-pv",
"Options": {},
"Scope": "local"
}
]
また、Dockerボリュームのマウントポイントを指す永続ボリュームをK8sで作成し、デプロイしました。
apiVersion: v1
kind: PersistentVolume
metadata:
name: jenkins-pv-volume
labels:
type: hostPath
spec:
storageClassName: manual
capacity:
storage: 1Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Delete
hostPath:
path: "/var/lib/docker/volumes/jenkins-pv/_data"
また、pvクレームを作成し、それを展開しました。
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: jenkins-pv-claim
spec:
storageClassName: manual
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
最後に、Jenkinsのデプロイメントを作成しました。動作することを確認し、アプリにアクセスできるようになりました。
apiVersion: apps/v1
kind: Deployment
metadata:
name: jenkins-deployment
spec:
replicas: 1
selector:
matchLabels:
app: jenkins-app
template:
metadata:
labels:
app: jenkins-app
spec:
containers:
- name: jenkins-pod
image: jenkins/jenkins:2.237-alpine
ports:
- containerPort: 50000
- containerPort: 8080
volumeMounts:
- name: jenkins-pv-volume
mountPath: /var/lib/docker/volumes/jenkins-pv/_data
volumes:
- name: jenkins-pv-volume
persistentVolumeClaim:
claimName: jenkins-pv-claim
ただし、データはDockerを終了しても保持されないため、起動するたびにJenkinsを再構成する必要があります。私は何かを逃しましたか、または私がしようとしていることは不可能ですか?これを行うためのより良いまたはより簡単な方法はありますか?
ありがとう!
私は自分の問題を理解しました、それは2つありました。
これを機能させるために、Dockerに共有フォルダー(C:\ DockerShare)を作成しました。次に、永続ボリュームのホストパスを更新しました。形式は/ host_mnt / path_to_docker_shared_folder_locationです。C:\ DockerShareを使用したので、パスは/ host_mnt / c / DockerShareです。
apiVersion: v1
kind: PersistentVolume
metadata:
name: jenkins
labels:
type: hostPath
spec:
storageClassName: manual
capacity:
storage: 1Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
hostPath:
path: /host_mnt/c/DockerShare/jenkins
また、実際には構成を保存していなかったため、Jenkinsデプロイメントを更新する必要がありました。/ var / jenkins_homeからデータを保存する必要がありました。
展開は次のようになります。
apiVersion: apps/v1
kind: Deployment
metadata:
name: jenkins
spec:
replicas: 1
selector:
matchLabels:
app: jenkins-app
template:
metadata:
labels:
app: jenkins-app
spec:
containers:
- name: jenkins-pod
image: jenkins/jenkins:2.237-alpine
ports:
- containerPort: 50000
- containerPort: 8080
volumeMounts:
- name: jenkins
mountPath: /var/jenkins_home
volumes:
- name: jenkins
persistentVolumeClaim:
claimName: jenkins
とにかく今は機能していて、PVのセットアップに関して他の誰かに役立つことを願っています。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加