k8s启动nginx服务
本次需要启动的是一个通过nginx实现的静态文件服务器。
创建命名空间脚本create_shjujubu_namespace.yaml
MT4教程专题/tupian/20230522/p
apiVersion: v1
kind: Namespace
metadata:
name: shujubu
labels:
name: shujubu
执行文件创建 shujubu命名空间:
kubectl create -f create_shjujubu_namespace.yaml
1
需要的镜像列表:
nginx 1.17 62c261073ecf 3 months ago 109MB
1
定义pod文件 nginx-pod.yaml
apiVersion: v1
kind: Pod
metadata:
name: sjb-nginx
namespace: shujubu
labels:
name: sjb-nginx
spec:
containers:
- name: nginx
image: ccr.ccs.tencentyun.com/shujubu/nginx:1.17
imagePullPolicy: IfNotPresent
ports:
- containerPort: 80
volumeMounts:
- mountPath: /etc/nginx/nginx.conf
name: config
- mountPath: /etc/nginx/conf.d/default.conf
name: default
- mountPath: /var/log/nginx/
name: log
- mountPath: /usr/share/nginx/shzr/area
name: shzr
- mountPath: /usr/share/nginx/zgbs/mujun
name: mujun
- mountPath: /usr/share/nginx/zgbs/area
name: zgbs
restartPolicy: Never
volumes:
- name: config
hostPath:
path: /home/users/qix/sjb_bs_source/nginx/nginx.conf
- name: default
hostPath:
path: /home/users/qix/sjb_bs_source/nginx/conf.d/default.conf
- name: log
hostPath:
path: /home/users/qix/sjb_bs_source/nginx/log/
- name: shzr
hostPath:
path: /home/users/qix/sjb_bs_source/shzr/area/
- name: mujun
hostPath:
path: /home/users/qix/sjb_bs_source/zgbs/mujun/
- name: zgbs
hostPath:
path: /home/users/qix/sjb_bs_source/zgbs/area/
上面的pod中只定义了一个容器,并在容器中挂载了nginx的配置文件、日志文件及我们要访问的资源文件。
定义service文件 nginx-np.yaml
apiVersion: v1
kind: Service
metadata:
name: nginx
spec:
selector:
name: sjb-nginx
type: NodePort
ports:
- protocol: TCP
port: 10008
targetPort: 80
nodePort: 30008
注意,service中的selector中的配置要与pod中的labels保持一致。
并附上nginx.conf中的部分配置
user root;
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
gzip on;
gzip_min_length 1024K; # 大于1M的压缩
gzip_comp_level 5; # 压缩级别 1-10 数字越大压缩的越好
gzip_types text/plain application/x-javascript text/css application/xml application/json text/javascript application/x-httpd-php image/jpeg image/gif image/png; # 压缩的文件类型
server {
listen 80;
server_name 192.168.111.36:80;
location / {
root /usr/share/nginx/html;
index index.html;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location ^~ /shzr/area/ {
root /usr/share/nginx/;
autoindex on;
}
location ^~ /zgbs/mujun/ {
root /usr/share/nginx/;
autoindex on;
}
location ^~ /zgbs/area/ {
root /usr/share/nginx/;
autoindex on;
}
}
}
启动pod命令:
kubectl create -f nginx-pod.yaml -n shujubu
1
启动service命令:
kubectl create -f nginx-np.yaml -n shujubu