kubernetes部署常用应用
Deployment部署
部署nginx
如何创建 nfs storageClass 详见link
下面是将nginx容器里的/usr/share/nginx/html挂载在nfs storageClass共享的目录下
vim nginx.yaml
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: nginx-nfs-pvc
spec:
accessModes: [ "ReadWriteOnce" ]
storageClassName: "nfs-storage"
resources:
requests:
storage: 10Mi
---
kind: Deployment
apiVersion: apps/v1
metadata:
name: nginx
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx
volumeMounts:
- name: www
mountPath: /usr/share/nginx/html
volumes:
- name: www
persistentVolumeClaim:
claimName: nginx-nfs-pvc
---
apiVersion: v1
kind: Service
metadata:
name: nginx-service
spec:
selector:
app: nginx
type: NodePort # service类型
ports:
- port: 80
nodePort: 30001 # 指定绑定的node的端口(默认的取值范围是:30000-32767), 如果不指定,会默认分配
targetPort: 80
应用上面的资源
kubectl apply -f nginx.yaml
查看pv与pvc
kubectl get pv && kubectl get pvc
查看nfs storageClass共享的目录(该目录由创建nfs storageClass的配置路径决定),我这里是/root/nfs
ls /root/nfs
进入上面的共享目录,创建一个index.html文件
cd default-nginx-nfs-pvc-pvc-40bb028a-f2e0-459f-8ab1-5acb4106c270
echo "hello k8s" > index.html
访问服务
curl 127.0.0.1:30001
部署mysql
vim mysql.yaml
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: mysql-nfs-pvc
spec:
accessModes: [ "ReadWriteOnce" ]
storageClassName: "nfs-storage"
resources:
requests:
storage: 5Gi
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: mysql
spec:
replicas: 1
selector:
matchLabels: