创建一个namespace
kind: Namespace
apiVersion: v1
metadata:
name: nginx-test
创建一个configmap
1 apiVersion: v1
2 kind: ConfigMap
3 metadata:
4 name: nginx-config
5 namespace: nginx-test
6 data:
7 default: |
8 server {
9 listen 80;
10 server_name localhost;
11 location / {
12 root /var/www/html;
13 index index.html index.htm index.php;
14 }
15 error_page 500 502 503 504 /50x.html;
16 location = /50x.html {
17 root /var/www/html;
18 }
19 location ~ \.php$ {
20 root /var/www/html;
21 fastcgi_pass 127.0.0.1:9000;
22 fastcgi_index index.php;
23 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
24 include fastcgi_params;
25 }
26 location ~ /\.ht {
27 deny all;
28 }
29 }
构建deployment配置文件
1 apiVersion: apps/v1
2 kind: Deployment
3 metadata:
4 name: nginx-deploy
5 namespace: nginx-test
6 spec:
7 replicas:
8 selector:
9 matchLabels:
10 app: nginx-php
11 template:
12 metadata:
13 labels:
14 app: nginx-php
15 spec:
16 containers:
17 - image: 'nginx:1.21.1'
18 imagePullPolicy: IfNotPresent
19 name: nginx-server
20 ports:
21 - containerPort: 80
22 name: http
23 protocol: TCP
24 resources:
25 limits:
26 cpu: 500m
27 memory: 1Gi
28 requests:
29 cpu: 200m
30 memory: 500m
31 volumeMounts:
32 - mountPath: /var/www/html
33 name: php-html
34 - mountPath: /etc/nginx/conf.d
35 name: nginx-config
36 volumes:
37 - hostPath:
38 path: /data/k8s-data/nginx/html
39 type: Directory
40 name: php-html
41 - configMap:
42 items:
43 - key: default
44 path: default.conf
45 name: nginx-config
46 name: nginx-config
绑定一个service
1 apiVersion: v1
2 kind: Service
3 metadata:
4 name: nginx-deploy
5 namespace: nginx-test
6 spec:
7 type: NodePort
8 ports:
9 - name: http
10 port: 80
11 protocol: TCP
12 targetPort: 80
13 nodePort: 30080
14 selector:
15 app: nginx-php
创建一个PVC
1 apiVersion: v1
2 kind: PersistentVolumeClaim
3 metadata:
4 name: nfs-pvc001
5 namespace: nginx-test
6 spec:
7 accessModes:
8 - ReadWriteOnce
9 resources:
10 requests:
11 storage: 1Gi
12 storageClassName: nfs
13 selector:
14 matchLabels:
15 pv: nfs-pv001
1 apiVersion: v1
2 kind: PersistentVolume
3 metadata:
4 name: nfs-pv001
5 namespace: nginx-test
6 labels:
7 pv: nfs-pv001
8 spec:
9 capacity:
10 storage: 1Gi
11 accessModes:
12 - ReadWriteOnce
13 persistentVolumeReclaimPolicy: Recycle
14 storageClassName: nfs
15 nfs:
16 path: /nfs/data/pv001
17 server: 192.168.122.100