热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

k8s安装nginx部署前端页面_Kubernetes之使用Kubernetes部署Nginx服务

使用k8s部署Nginx服务,Nginx对外提供服务只希望部署在其中一台主机,该主机不提供其他服务一.设置标签及污点为了保证nginx之能分配到nginx服务器需要设

使用k8s部署Nginx服务,Nginx对外提供服务只希望部署在其中一台主机,该主机不提供其他服务

一.设置标签及污点

为了保证nginx之能分配到nginx服务器需要设置标签和污点,设置标签可以让Pod选择该服务器部署,设置污点可以使其他服务Pod无法部署在该服务器

本次部署nginx服务器IP为192.168.1.232

设置标签

#设置标签 key为typevalue为nginx

kubectl label node 192.168.1.232 type=nginx

#查看标签

kubectl get node 192.168.1.232 --show-labels

NAME STATUS ROLES AGE VERSION LABELS

192.168.1.232 Ready 30h v1.17.4 kubernetes.io/arch=amd64,kubernetes.io/hostname=192.168.1.232,kubernetes.io/os=linux,type=nginx

设置污点

#给node192.168.1.232设置污点key为key值为nginx effec为NoSchedule永不调度

#除非在Pod里设置了对应的tolerations参数

kubectl taint node 192.168.1.232 key=nginx:NoSchedule

查看污点

kubectl describe node 192.168.1.232

二.设置Nginx-deployment的yaml文件

# cat nginx-deployment.yaml

apiVersion: apps/v1

kind: Deployment

metadata:

labels:

app: nginx

name: nginx-deployment

spec:

replicas: 1

selector:

matchLabels:

app: nginx

template:

metadata:

labels:

app: nginx

spec:

containers:

- image: nginx:1.14.0

name: nginx

#标签选择器

nodeSelector:

type: nginx

#设置污点可以调度到对应服务器

tolerations:

- key: "key"

operator: "Equal"

value: "nginx"

effect: "NoSchedule"

应用启动

kubectl apply -f nginx-deployment.yaml

查看已经调度到对应的服务器

# kubectl get pod -o wide

NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES

nginx-deployment-57f94c46b4-5whb5 1/1 Running 0 6h30m 172.17.97.3 192.168.1.232

三.设置Nginx配置文件和程序根目录挂载

启动的Nginx使用默认的配置文件和默认的网站根目录,需要使用volume挂载

# cat nginx-deployment.yaml

apiVersion: apps/v1

kind: Deployment

metadata:

labels:

app: nginx

name: nginx-deployment

spec:

replicas: 1

selector:

matchLabels:

app: nginx

template:

metadata:

labels:

app: nginx

spec:

containers:

- image: nginx:1.14.0

name: nginx

volumeMounts:

- name: conf

mountPath: /etc/nginx

- name: opt

mountPath: /opt

#标签选择器

nodeSelector:

type: nginx

#设置污点可以调度到对应服务器

tolerations:

- key: "key"

operator: "Equal"

value: "nginx"

effect: "NoSchedule"

volumes:

- name: conf

hostPath:

path: /etc/nginx

type: Directory

- name: opt

hostPath:

path: /opt

type: Directory

本次使用了本机挂载hostPath挂载配置文件及根目录,生产环境最好使用pvc挂载

四.设置Service对外提供服务

# cat nginx-service.yaml

apiVersion: v1

kind: Service

metadata:

labels:

app: nginx

name: nginx-deployment

spec:

ports:

- port: 80

name: nginx-service80

protocol: TCP

targetPort: 80

nodePort: 80

- port: 81

name: nginx-service81

protocol: TCP

targetPort: 81

nodePort: 81

selector:

app: nginx

type: NodePort

PS:使用NodePort启用端口对外提供服务,如果对外映射多个端口需要在port参数下加参数name定义名称,单个端口无需设置参数name

k8s默认使用NodePort对外映射端口为30000-50000如需要映射其他端口需要修改配置文件/opt/kubernetes/cfg/kube-apiserver,修改端口范围



推荐阅读
  • 在 Kubernetes 中,Pod 的调度通常由集群的自动调度策略决定,这些策略主要关注资源充足性和负载均衡。然而,在某些场景下,用户可能需要更精细地控制 Pod 的调度行为,例如将特定的服务(如 GitLab)部署到特定节点上,以提高性能或满足特定需求。本文深入解析了 Kubernetes 的亲和性调度机制,并探讨了多种优化策略,帮助用户实现更高效、更灵活的资源管理。 ... [详细]
  • 本文详细探讨了在Web开发中常见的UTF-8编码问题及其解决方案,包括HTML页面、PHP脚本、MySQL数据库以及JavaScript和Flash应用中的乱码问题。 ... [详细]
  • 在Ubuntu 18.04上使用Nginx搭建RTMP流媒体服务器
    本文详细介绍了如何在Ubuntu 18.04上使用Nginx和nginx-rtmp-module模块搭建RTMP流媒体服务器,包括环境搭建、配置文件修改和推流拉流操作。适用于需要搭建流媒体服务器的技术人员。 ... [详细]
  • centos 7.0 lnmp成功安装过程(很乱)
    下载nginx[rootlocalhostsrc]#wgethttp:nginx.orgdownloadnginx-1.7.9.tar.gz--2015-01-2412:55:2 ... [详细]
  • 为了确保iOS应用能够安全地访问网站数据,本文介绍了如何在Nginx服务器上轻松配置CertBot以实现SSL证书的自动化管理。通过这一过程,可以确保应用始终使用HTTPS协议,从而提升数据传输的安全性和可靠性。文章详细阐述了配置步骤和常见问题的解决方法,帮助读者快速上手并成功部署SSL证书。 ... [详细]
  • 前言: 网上搭建k8s的文章很多,但很多都无法按其说明在阿里云ecs服务器成功搭建,所以我就花了些时间基于自己成功搭建k8s的步骤写了个操作手册,希望对想搭建k8s环境的盆友有所帮 ... [详细]
  • WebBenchmark:强大的Web API性能测试工具
    本文介绍了一款名为WebBenchmark的Web API性能测试工具,该工具不仅支持HTTP和HTTPS服务的测试,还提供了丰富的功能来帮助开发者进行高效的性能评估。 ... [详细]
  • 本文探讨了如何在PHP与MySQL环境中实现高效的分页查询,包括基本的分页实现、性能优化技巧以及高级的分页策略。 ... [详细]
  • 本文详细介绍了如何在Oracle VM VirtualBox中实现主机与虚拟机之间的数据交换,包括安装Guest Additions增强功能,以及如何利用这些功能进行文件传输、屏幕调整等操作。 ... [详细]
  • 本文详细介绍了如何正确设置Shadowsocks公共代理,包括调整超时设置、检查系统限制、防止滥用及遵守DMCA法规等关键步骤。 ... [详细]
  • 电商高并发解决方案详解
    本文以京东为例,详细探讨了电商中常见的高并发解决方案,包括多级缓存和Nginx限流技术,旨在帮助读者更好地理解和应用这些技术。 ... [详细]
  • 本文介绍了如何在Linux系统中获取库源码,并在从源代码编译软件时收集所需的依赖项列表。 ... [详细]
  • 网站访问全流程解析
    本文详细介绍了从用户在浏览器中输入一个域名(如www.yy.com)到页面完全展示的整个过程,包括DNS解析、TCP连接、请求响应等多个步骤。 ... [详细]
  • 在配置Nginx的SSL证书后,虽然HTTPS访问能够正常工作,但HTTP请求却会遇到400错误。本文详细解析了这一问题,并提供了Nginx配置的具体示例。此外,还深入探讨了DNS服务器证书、SSL证书的申请与安装流程,以及域名注册、查询方法和CDN加速技术的应用,帮助读者全面了解相关技术细节。 ... [详细]
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了(2022版)一套教程搞定k8s安装到实战|Affinity相关的知识,希望对你有一定的参考价值。视频来源ÿ ... [详细]
author-avatar
合思优子
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有