windows環境でminikubeを使用し、windows内のファイルとpod内のファイルを共有させ、ブラウザで内容を確認するまでにやった作業 minikube minikube
windows環境でminikubeを使用し、windows内のファイルとpod内のファイルを共有させ、ブラウザで内容を確認するまでにやった作業とファイル
ファイルを
windowsフォルダ:C:\work\minikubedemo1 内に設置し。これが
↓
minikube: /mnt/minikubedemo1 を経由して
↓
pod: /usr/share/nginx/html
内に共有される。
これで、C:\work\minikubedemo1\index.html の内容が
ブラウザで表示すると反映されてるまでを確認した
事前にwindows環境でdockerインストール済であること
★★概要
1. docker desktop 起動
2. minikube 起動。mountオプションつき
作業は windows powershell内で実行
% minikube start --mount --mount-string C:\work\minikubedemo1:/mnt/minikubedemo1
3. 以下に作成したyamlファイルを適用
pv,pvc,deployment,service を作成
% cd C:\work\minikubedemo1
% kubectl apply -f nginx1-pv.yaml
% kubectl apply -f nginx1-pvc.yaml
% kubectl apply -f nginx1-deployment.yaml
% kubectl apply -f nginx1-service.yaml
※各ファイル内容は備考参照
4. ブラウザでurl入力し、index.html内容が表示されることを確認
urlの値は
minikube service nginx1-service
の結果を指定
おしまい
★★備考 使用したファイル
-----------------------------------------------
■nginx1-pv.yaml
apiVersion: v1
kind: PersistentVolume
metadata:
name: nginx1-pv-vol1
spec:
capacity:
storage: 1Gi
accessModes:
- ReadWriteMany
persistentVolumeReclaimPolicy: Delete
storageClassName: manual
hostPath:
path: /mnt/minikubedemo1
type: Directory
-----------------------------------------------
-----------------------------------------------
■nginx1-pvc.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: nginx1-pvc
spec:
resources:
requests:
storage: 0.5Gi
accessModes:
- ReadWriteMany
storageClassName: manual
-----------------------------------------------
-----------------------------------------------
■nginx1-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx1-deployment
labels:
app: nginx1-deployment
spec:
replicas: 3
selector:
matchLabels:
app: nginx1-deployment
template:
metadata:
labels:
app: nginx1-deployment
spec:
containers:
- name: web-container
image: nginx
ports:
- containerPort: 80
volumeMounts:
- mountPath: "/usr/share/nginx/html"
name: nginx1-volume-pvc
volumes:
- name: nginx1-volume-pvc
persistentVolumeClaim:
claimName: nginx1-pvc
-----------------------------------------------
-----------------------------------------------
■nginx1-service.yaml
apiVersion: v1
kind: Service
metadata:
name: nginx1-service
spec:
type: NodePort
selector:
app: nginx1-deployment
ports:
- port: 80
targetPort: 80
nodePort: 30007
-----------------------------------------------
■index.html
中身はてきとうで