Minikube v0.24.1を実行しています。このminikubeでは、nginxアプリケーションのポッドを作成します。また、ローカルディレクトリからデータを渡したいです。
つまり、ローカル$HOME/go/src/github.com/nginx
をポッドにマウントしたいということです。
これどうやってするの?
apiVersion: v1
kind: Pod
metadata:
name: nginx
spec:
containers:
- image: nginx:0.1
name: nginx
volumeMounts:
- mountPath: /data
name: volume
volumes:
- name: volume
hostPath:
path: /data
ローカルディレクトリをポッドに直接マウントすることはできません。
まず、ディレクトリをマウントする必要があります$HOME/go/src/github.com/nginx
をminikubeに入れます。
$ minikube start --mount-string="$HOME/go/src/github.com/nginx:/data"
その後、/data
hostPathを使用してポッドに移動すると、ローカルディレクトリデータがポッドに移動します。
別の方法があります
ホストの$HOME
ディレクトリがminikubeの/hosthome
ディレクトリ。ここでデータを取得します
$ ls -la /hosthome/go/src/github.com/nginx
したがって、このディレクトリをマウントするには、PodのhostPathを変更できます
hostPath:
path: /hosthome/go/src/github.com/nginx
エアロカイトの解決策を試しましたが、--mount
と同様 --mount-string "local-path:minikube-path"
は、minikubeにディレクトリをマウントします。
minikube start --mount-string ${HOME}/go/src/github.com/nginx:/data --mount
。これを理解するのに少し時間を費やしました。
私は方法を発見しました。
これにより、ディレクトリをコンテナに直接マウントできます。最初にディレクトリをminikubeにマウントする必要はありません。
hostPath
のvolumes
を使用して、コンテナに追加するディレクトリを指定できます。
volumeMounts:
- name: crypto-config
mountPath: <PATH IN CONTAINER>
- name: channel-artifacts
mountPath: /opt/gopath/src/github.com/hyperledger/fabric/peer/channel-artifacts
- name: chaincode
mountPath: /opt/gopath/src/github.com/chaincode
volumes:
- name: crypto-config
hostPath:
path: <YOUR LOCAL DIR PATH>
- name: channel-artifacts
hostPath:
path: /Users/akshaysood/Blockchain/Kubernetes/Fabric/network/channel-artifacts
- name: chaincode
hostPath:
path: /Users/akshaysood/Blockchain/Kubernetes/Fabric/network/chaincode
すでに実行中のminikubeの場合、次のことができます。
Nohup minikube mount <Host-directory-path>:<desired-minikube-directory-path> &
パーティーに遅れて参加したかどうかはわかりませんが、次のコマンドを実行してroot:rootマッピングを行いました。
minikube start --mount-string="/:/"
これにより、ローカルファイルシステムのルートがminikubeにマウントされるだけで、システム間でシームレスな状態が維持されます。
MinikubeはすでにデフォルトのホームディレクトリをVMにマウントしています:
/Users
_homedir.HomeDir()
Minikubeソースを参照すると、これがどのように行われるかを確認できます。
これは現時点での検索ですが、結果は時間とともに変化する可能性があります。
https://github.com/kubernetes/minikube/search?q=DefaultMountDir&unscoped_q=DefaultMountDir
HomeDir()
の定義は次のとおりです。 https://godoc.org/k8s.io/client-go/util/homedir
いつでも_minikube ssh
_をMinikube VMに入力して、探索することができます:
_$ df -hl
Filesystem Size Used Avail Use% Mounted on
...
/Users 466G 442G 25G 95% /Users
_
MinikubeはシングルノードKubernetesクラスターであるため、ポッド内に_/Users/...
_をマウントできます。
_
minikube mount /path/to/dir/to/mount:/vm-mount-path
_は、ローカルKubernetesクラスターで使用できるように、ディレクトリをminikubeにマウントする推奨方法です。このコマンドは、サポートされているすべてのプラットフォームで機能します。
ドキュメントと例を参照してください: https://github.com/kubernetes/minikube/blob/master/docs/Host_folder_mount.md