欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

k8s部署nginx的三種方式小結(jié)

 更新時間:2023年11月15日 09:14:22   作者:轉(zhuǎn)戰(zhàn)容器化  
本文主要介紹了k8s部署nginx的三種方式小結(jié),主要包括直接部署、使用數(shù)據(jù)卷部署、使用ConfigMap部署,具有一定的參考價值,感興趣的可以了解一下

使用kubernetes來部署nginx服務(wù),nginx一般是作為服務(wù)的入口,其在kubernetes的部署方式也大致相似,我將其分為三種----直接部署、使用數(shù)據(jù)卷部署、使用ConfigMap部署。個人建議使用ConfigMap部署。

直接部署

這種方式就是直接將nginx復(fù)制到容器內(nèi)部,將其制作為鏡像,之后進行部署,優(yōu)點嗎?不知道。缺點在每次更新配置文件時,需要重新制作經(jīng)鏡像

部署步驟

前提:需要有自己的nginx配置文件

  • 拉去nginx官方鏡像,建議選擇穩(wěn)定版(stable)
$ docker pull nginx:1.22.0
  • 編寫Dockerfile
FROM nginx:1.22.0

# 刪除官方nginx鏡像默認的配置
RUN rm -rf /etc/nginx/conf.d/default.conf

# 將nginx.conf(自己的nginx配置)添加到默認配置目錄下
# 注意:nginx.conf需要與Dockerfile在同一目錄
ADD ./nginx.conf /etc/nginx/conf.d/
  • 構(gòu)建自己的nginx鏡像
# 在Dockerfile所在目錄執(zhí)行,v1.0.0是新構(gòu)建nginx鏡像的tag
$ docker build -t nginx:v1.0.0 .
  • 編寫nginx-service-deployment.yaml
apiVersion: v1
kind: Service
metadata:
  labels:
    app: nginx-servie
  name: nginx-service
	# 命名空間,沒有可以刪除,默認是default
  namespace: hello-world
spec:
  ports:
	# 對外暴露的端口
  - nodePort: 30013
    port: 80
    protocol: TCP
    targetPort: 80
  selector:
    app: nginx-pod
  # NodePort類型可以對外暴露端口
  type: NodePort

---
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: nginx-deploy
  name: nginx-deploy
  namespace: hello-world
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nginx-pod
  template:
    metadata:
      labels:
        app: nginx-pod
      namespace: hello-world
    spec:
      containers:
		# 鏡像名稱
      - image: nginx:v1.0.0
        name: nginx
        ports:
        - containerPort: 80
        resources: {}
  • 執(zhí)行yaml文件
$ kubectl apply -f nginx-service-deployment.yaml
  • 通過nodeIp+nodePort進行訪問

使用數(shù)據(jù)卷部署

這種方式是通過將nginx的配置文件以數(shù)據(jù)卷的形式掛載出來,修改nginx配置文件,只需要修改掛載出來的文件,同時刪除pod即可。缺點是需要數(shù)據(jù)卷做支撐,如nfs等,如果使用pv、pvc,還需要配置pv、pvc文件,在集群模式下不要使用host進行掛載,測試時可以使用;優(yōu)點是部署好后改動小。

部署步驟

前提:需要有nginx的配置文件,并且配置好nfs共享

  • 配置nfs共享,將nginx配置文件共享出來,略
    注意:掛載的方式只支持文件夾掛載不支持文件掛載,不僅是在nfs配置中,容器的配置中也是一樣的
  • 編寫nginx-service-deployment.yaml,示例不適用pv、pvc
apiVersion: v1
kind: Service
metadata:
  labels:
    app: nginx-service
  name: nginx-service
  # 命名空間,沒有可以刪除,默認是default
  namespace: hello-world
spec:
  ports:
	# 對外暴露的端口
  - nodePort: 30013
    port: 80
    protocol: TCP
    targetPort: 80
  selector:
    app: nginx-pod
  # NodePort類型可以對外暴露端口
  type: NodePort

---
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: nginx-deploy
  name: nginx-deploy
  namespace: hello-world
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nginx-pod
  strategy: {}
  template:
    metadata:
      labels:
        app: nginx-pod
      namespace: hello-world
    spec:
      containers:
      - image: nginx:1.22.0
        name: nginx
        ports:
        - containerPort: 80
        resources: {}
        volumeMounts:
        - name: nginx-config
          mountPath: "/etc/nginx/conf.d/"
      volumes:
      - name: nginx-config
        nfs:
		  # 共享的目錄
          path: "/opt/nginx/"
	      server: xxx.xxx.xxx.xxx
  • 執(zhí)行yaml文件
$ kubectl apply -f nginx-service-deployment.yaml
  • 通過nodeIp+nodePort進行訪問

使用ConfigMap進行部署

這種方式是通過ConfigMap的方式將nginx的配置文件掛載出來,修改nginx的配置文件時,只需要修改ConfigMap,同時刪除就的pod即可。缺點是配置文件時只讀文件,如果對文件有特殊要求的不行;優(yōu)點是改動小,操作簡單。

部署步驟

  • 編寫nginx-configmap.yaml
    這里寫了一個簡單的例子,訪問/hello-world/進行跳轉(zhuǎn)
apiVersion: v1
kind: ConfigMap
metadata:
  name: nginx-configmap
  namespace: hello-world
data:
  default.conf: |
    server {
        listen       80;
        listen  [::]:80;
        server_name  localhost;

        location / {
            root   /usr/share/nginx/html;
            index  index.html index.htm;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   /usr/share/nginx/html;
        }
    }

  • 編寫nginx-service-deployment.yaml
apiVersion: v1
kind: Service
metadata:
  labels:
    app: nginx-service
  name: nginx-service
	# 命名空間,沒有可以刪除,默認是default
  namespace: hello-world
spec:
  ports:
	# 對外暴露的端口
  - nodePort: 30013
    port: 80
    protocol: TCP
    targetPort: 80
  selector:
    app: nginx-pod
	# NodePort類型可以對外暴露端口
  type: NodePort

---
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: nginx-deploy
  name: nginx-deploy
  namespace: hello-world
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nginx-pod
  strategy: {}
  template:
    metadata:
      labels:
        app: nginx-pod
      namespace: hello-world
    spec:
      containers:
      - image: nginx:1.22.0
        name: nginx
        ports:
        - containerPort: 80
        resources: {}
        volumeMounts:
        - name: nginx-config
          mountPath: "/etc/nginx/conf.d/"
          readOnly: true
      volumes:
      - name: nginx-config
        configMap:
          name: nginx-configmap
  • 執(zhí)行yaml文件
$ kubectl apply -f nginx-configmap.yaml
$ kubectl apply -f nginx-service-deployment.yaml
  • 通過nodeIp+nodePort進行訪問

到此這篇關(guān)于k8s部署nginx的三種方式小結(jié)的文章就介紹到這了,更多相關(guān)k8s部署nginx內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家! 

相關(guān)文章

  • Nginx+SSL+Node.js運行環(huán)境配置教程

    Nginx+SSL+Node.js運行環(huán)境配置教程

    這篇文章主要介紹了Nginx+SSL+Node.js運行環(huán)境配置教程,本文用反向代理的方式代理基于Node.js的Web應(yīng)用,需要的朋友可以參考下
    2014-09-09
  • 服務(wù)器使用Nginx部署Vue項目

    服務(wù)器使用Nginx部署Vue項目

    本文主要介紹了服務(wù)器使用Nginx部署Vue項目,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • Nginx Mirror模塊的具體使用

    Nginx Mirror模塊的具體使用

    本文主要介紹了Nginx Mirror模塊的具體使用,Nginx mirror 模塊主要用于鏡像客戶請求到一組后端服務(wù)器,下面就來具體介紹一下,感興趣的可以了解一下
    2024-05-05
  • Nginx+Tomcat負載均衡集群安裝配置案例詳解

    Nginx+Tomcat負載均衡集群安裝配置案例詳解

    Nginx是一款非常優(yōu)秀的http服務(wù)器軟件,它能夠支持高達50000個并發(fā)連接數(shù)的相應(yīng),Nginx+Tomcat負載均衡集案列是應(yīng)用于生產(chǎn)環(huán)境的一套可靠的Web站點解決方案,對Nginx Tomcat負載均衡集群相關(guān)知識感興趣的朋友一起看看吧
    2021-10-10
  • Nginx中配置防盜鏈的方法實現(xiàn)

    Nginx中配置防盜鏈的方法實現(xiàn)

    在數(shù)字化時代,保護網(wǎng)站內(nèi)容免受盜鏈至關(guān)重要,Nginx防盜鏈通過檢查請求頭Referer字段來拒絕非法來源請求,本文就來詳細的介紹一下,感興趣的可以了解一下
    2024-10-10
  • nginx反向代理用做內(nèi)網(wǎng)域名轉(zhuǎn)發(fā)

    nginx反向代理用做內(nèi)網(wǎng)域名轉(zhuǎn)發(fā)

    這篇文章主要為大家詳細介紹了nginx反向代理用做內(nèi)網(wǎng)域名轉(zhuǎn)發(fā),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-10-10
  • 使用nginx同域名下部署多個vue項目并使用反向代理的方法

    使用nginx同域名下部署多個vue項目并使用反向代理的方法

    這篇文章主要介紹了使用nginx同域名下部署多個vue項目并使用反向代理的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-02-02
  • Nginx進程管理和重載原理詳解

    Nginx進程管理和重載原理詳解

    這篇文章主要給大家介紹了關(guān)于Nginx進程管理和重載原理的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • Nginx下讓W(xué)ordPress支持固定鏈接的偽靜態(tài)規(guī)則

    Nginx下讓W(xué)ordPress支持固定鏈接的偽靜態(tài)規(guī)則

    Nginx下讓W(xué)ordPress支持固定鏈接的偽靜態(tài)規(guī)則,要讓nginx支持wordpress固定鏈接非常簡單,需要自己進行添加點配置代碼
    2013-02-02
  • Nginx服務(wù)器初期基本配置指南

    Nginx服務(wù)器初期基本配置指南

    這篇文章主要介紹了Nginx服務(wù)器初期基本配置指南,包括重定向以及基本的負載均衡配置等,需要的朋友可以參考下
    2016-01-01

最新評論