怎么在k8s中部署nginx?

建站服务器

k8s启动nginx服务

本次需要启动的是一个通过nginx实现的静态文件服务器。

创建命名空间脚本create_shjujubu_namespace.yaml

MT4教程专题http://www.gendan5.com/operation.html

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

更多关于云服务器域名注册虚拟主机的问题,请访问西部数码官网:www.west.cn

赞(0)
声明:本网站发布的内容(图片、视频和文字)以原创、转载和分享网络内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-62778877-8306;邮箱:fanjiao@west.cn。本站原创内容未经允许不得转载,或转载时需注明出处:西部数码知识库 » 怎么在k8s中部署nginx?

登录

找回密码

注册