`
maosheng
  • 浏览: 568098 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Kubernetes 部署 Nginx 集群

阅读更多
一.设置标签
为了保证nginx之能分配到nginx服务器需要设置标签,设置标签可以让Pod选择该服务器部署
#设置标签 key为type 的 value为nginx
# kubectl label node k8s-node1  type=nginx
# kubectl label node k8s-node2  type=nginx
#查看标签
# kubectl get node --show-labels


二.创建nginx-deployment的yaml文件
nginx-deployment.yaml

### define deployment info ###
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: nginx-deployment
  namespace: default
  labels:
    app: nginx
### define pod info ###
spec:
# define the pod count
  replicas: 2
  revisionHistoryLimit: 5  #保存5个历史版本
# select the pod which is controlled
  selector:
    matchLabels:
      app: nginx
# define the pod
  template:
    metadata:
# define the pod label,which must be same with selector's matchLabels
      labels:
        app: nginx
        env: dev
        tie: front
### define container info ###
    spec:
      containers:
# define the container name
      - name: nginx
        image: nginx:1.17.5
        imagePullPolicy: IfNotPresent
        volumeMounts:
        - name: conf
          mountPath: /etc/nginx
        - name: opt
          mountPath: /opt
      #node label selector
      nodeSelector:
        type: nginx
      volumes:
      - name: conf
        hostPath:
          path: /etc/nginx
          type: Directory
      - name: opt
        hostPath:
          path: /opt
          type: Directory


三、应用启动
# kubectl create -f nginx-deployment.yaml

# kubectl get pod -o wide

四.创建nginx-service的yaml文件

nginx-service.yaml

apiVersion: v1
# delcare it's service
kind: Service
metadata:
  name: nginx-service
  labels:
    app: nginx
spec:
  externalIPs:
  - 192.168.10.80
  - 192.168.10.81
  - 192.168.10.82
  ports:
# define the service's port
  - port: 80
    name: nginx-service-80 
    protocol: TCP
# define the container's port
    targetPort: 80
# nodePort 对应 type: NodePort
#    nodePort: 30080  
# define the pod label which the selector match with
  selector:
    app: nginx
# three type : ClusterIP,NodePort,LoadBalancer
  type: ClusterIP

 
五、应用启动
# kubectl create -f nginx-service.yaml

# kubectl get service -o wide

六、访问Nginx
http://192.168.10.81


附录:
查找.yaml 的所有文件
find / -name *.yaml









分享到:
评论

相关推荐

    k8s下部署nginx集群部署方式(相关yaml文件的编写和说明)

    在Kubernetes(k8s)环境下,部署Nginx集群是一项常见的任务,它涉及到容器编排、服务发现、负载均衡等多个重要概念。本篇将详细阐述如何使用YAML文件进行Nginx集群的配置和部署。 首先,让我们了解YAML文件在k8s中...

    二进制方式部署Kubernetes高可用集群.pdf

    二进制方式部署Kubernetes高可用集群 本文将详细介绍如何使用二进制方式部署Kubernetes高可用集群,并对相关的知识点进行详细说明。 环境准备 在部署Kubernetes高可用集群之前,需要准备好环境,包括安装cfssl...

    Linux搭建Nginx集群步骤+详细配置

    本文将详细介绍如何在Linux上搭建Nginx集群,以及如何进行详细配置,以实现负载均衡功能。 首先,我们需要理解负载均衡的基本概念。负载均衡是一种技术,通过分散网络流量到多个服务器,防止单点故障,提高服务的...

    k8s下部署nginx集群,以及相关yaml文件的编写和说明

    在Kubernetes(k8s)环境下部署Nginx集群是一项常见的任务,这通常涉及到使用YAML文件来定义和管理资源。YAML是Kubernetes的主要配置语言,用于描述应用的部署、服务、持久化存储等各个方面的配置。在这个过程中,...

    云端部署Kubernetes与容器集群方案.pptx

    AWS Elastic Container Service (ECS)和Elastic Kubernetes Service (EKS)是两种常见的Kubernetes部署选项。 - **AWS VPC网络模式**:提供了安全且隔离的网络环境,便于设置网络策略和访问控制。 - **EKS**:是AWS...

    基于kubeadm的kubernetes高可用集群部署

    基于kubeadm的kubernetes高可用集群部署,包含 stacked loadbalancer;包含load balancer的高可用master架构,以keepalived和nginx-lb作为高可用集群的load balancer。需要为keepalived分配一个vip(虚拟浮动ip)...

    二进制部署kubernetes多master集群

    ### 二进制部署Kubernetes多Master集群 #### 一、环境准备与要求 在部署Kubernetes集群前,首先需要确保服务器满足以下条件: - **硬件配置**:建议每台服务器至少配备2核CPU、2GB内存及30GB硬盘空间。 - **网络...

    和我一步步部署 kubernetes 集群.pdf

    在提供的部分内容中,文档详细列出了部署Kubernetes集群的步骤列表,包括初始化系统、配置全局变量、创建CA证书和秘钥、部署kubectl命令行工具、etcd集群、flannel网络以及nginx代理作为apiserver的高可用组件。...

    Docker-Compose部署nginx代理Tomcat集群

    本教程将深入探讨如何使用Docker Compose来部署一个Nginx代理服务器,该服务器将作为负载均衡器服务于多个Tomcat应用服务器,形成一个集群。这样可以提高服务的可用性和响应能力,确保在高流量情况下系统的稳定运行...

    kubernetes高可用集群搭建手册

    为了监控集群的健康状态和性能,部署Kubernetes Metrics Server,它可以收集和提供资源使用情况的数据。 #### 2.10 Dashboard部署 Kubernetes Dashboard是Web UI,方便用户可视化地管理和监控集群。部署Dashboard...

    ingress-nginx-4.0.17

    ingress-nginx-4.0.17是专为Helm部署在Kubernetes(k8s)集群中的ingress-nginx控制器设计的图表资源。这个版本提供了稳定性和性能优化,使得对Kubernetes服务的外部访问变得更为便捷和可靠。本文将深入探讨ingress...

    基于CentOS 7的Kubernetes安装全过程(含附件)

    三、Nginx on Kubernetes部署 13 3.1 Nginx部署与验证 13 Kubernetes(简称K8s)具有完备的集群管理能力,它是当前被业界广泛认可和看好的Docker分布式系统解决方案,能够实现自动化资源管理、无缝动态扩容以及跨多...

    kubernetes二进制集群部署——–多master集群(步骤非常详细,适合初学者)

    在Kubernetes环境中,多Master节点集群的部署是一个关键任务,特别是在需要高可用性和容错性的场景下。本文将详细介绍如何通过二进制方式部署一个多Master节点的Kubernetes集群,适合初学者逐步学习。 首先,我们要...

    01 搭建一个完整的K8S集群部署文档以及相关讲解.docx

    在本文中,我们将详细介绍 Kubernetes 二进制部署的过程,包括角色 IP 组件、Master 节点、Node 节点、etcd 集群、Nginx 和 keepalived 的配置等。 角色 IP 组件 在 Kubernetes 集群中,Master 节点和 Node 节点都...

    NGINX Ingress Controller:用于 Kubernetes 的 NGINX 入口控制器-开源

    但需要注意的是,我们不会在仅影响上游配置的更改(即部署应用程序时端点更改)时重新加载 Nginx。 我们使用 lua-nginx-module 来实现这一点。 查看下面以了解有关它是如何完成的更多信息。 通常,Kubernetes 控制...

    使用NGINX Web服务器和Kubernetes(部署和服务)的基本头盔图表。拜托,看看赫尔姆医生.zip

    4. **部署NGINX**:学习如何编写Kubernetes的YAML文件,定义一个运行NGINX的Deployment,这包括Pod规格、镜像、副本数量等。 5. **服务暴露**:了解如何创建一个Kubernetes Service来暴露NGINX,可能包括ClusterIP...

    linux服务器的自动部署k8s脚本 up.sh

    用Kubernetes部署Metrics Server 安装Helm包管理工具 配置Helm,在 Kubernetes集群中创建运行Helm 的 tiller,并初始化Helm 用Helm安装Nginx Ingress Controller,同时启用RBAC和发布Ingress Controller的Service 用...

    RHCE9认证之Kubernetes容器编排工具学习笔记

    Kubernetes 应用示例包括部署 Nginx 服务、使用卷挂载、弹性伸缩和滚动升级版本等。Kubernetes 提供了多种应用示例和解决方案,帮助用户快速上手和部署应用程序。 Kubernetes 集群操作 Kubernetes 集群操作包括...

Global site tag (gtag.js) - Google Analytics