首页 > 其他分享 >apisix~helm方式的部署到k8s

apisix~helm方式的部署到k8s

时间:2024-05-10 09:14:18浏览次数:15  
标签:动态 自定义 配置 apisix helm k8s APISIX

什么是apisix

Apache APISIX 是一个高性能、轻量级的开源 API 网关,基于 Nginx 和 OpenResty 构建。APISIX 提供了丰富的功能和灵活的配置,适用于构建现代的微服务架构和云原生应用。

以下是 Apache APISIX 的一些主要特点和功能:

  1. 动态路由:APISIX 支持基于请求路径、方法、头部等条件进行动态路由,可以根据需求灵活配置路由规则。

  2. 负载均衡:内置多种负载均衡算法,支持权重、IP 黑白名单等策略,实现流量分发和控制。

  3. 熔断与限流:提供熔断器和限流功能,保护后端服务免受突发流量冲击,确保系统稳定性。

  4. 插件系统:APISIX 提供丰富的插件系统,包括认证、日志、监控、缓存、转发、重试等插件,方便扩展和定制功能。

  5. 动态 SSL/TLS:支持动态证书管理,实现自动化的 SSL/TLS 配置和更新,保障通信安全。

  6. 灵活配置:采用基于 Lua 的 DSL(Domain Specific Language)进行配置,具有灵活性和可扩展性,方便定制化需求。

  7. 可观测性:提供丰富的监控指标和日志输出,支持 Prometheus、Grafana 等监控工具,帮助实时监控和调优系统。

  8. 云原生支持:APISIX 可以无缝集成到 Kubernetes 等容器编排平台中,支持自动伸缩、动态配置等特性。

总的来说,Apache APISIX 是一个功能强大、易于扩展的 API 网关,适用于构建高性能、可靠的微服务架构,并提供丰富的功能和灵活的配置选项来满足不同场景下的需求。

部署apisix

下载官方的包

helm repo add apisix https://charts.apiseven.com

helm pull apisix/apisix

# 可能版本有更新
tar zxvf apisix-2.7.0.tgz

添加自定义配置

  • values.override.yaml
  • 功能:添加自定义的存储类为etcd
service:
  http:
    nodePort: 30080

apisix-dashboard:
  service:
    type: NodePort
    port: 80
    nodePort: 30081

dashboard:
  enabled: true
  config:
    authentication:
      users:
        - username: admin
          password: admin

ingress-controller:
  enabled: true
  config:
    log_level: debug
    apisix:
      adminAPIVersion: "v3"
      serviceNamespace: apisix #这个是apisix所在的命令空间

etcd:
  enable: true 
  persistence:
    storageClass: nfs-provisioner #这个提前建立

nfs-provisioner实现自动创建pv请查看我的k8s~动态生成pvc和pv这篇文章

安装apisix

# 安装时,将使用自定义文件values.override.yaml 
helm -n apisix install apisix -f ./apisix/values.override.yaml ./apisix

进入dashboard管理平台

标签:动态,自定义,配置,apisix,helm,k8s,APISIX
From: https://www.cnblogs.com/lori/p/18183512

相关文章

  • k8s-Pod的概念和存在的意义
    1.Pod的概念pod是k8s中部署的最小单元包含多个容器(也就是说pod是一组容器的集合)一个pod中容器共享网络命名空间pod是短暂的  2.Pod存在的意思2.1创建容器使用docker,一个docker对应是一个容器,一个容器有进程,一个容器运行一个应用程序2.2Pod是多进程设计,运动多个......
  • k8s资源编排-yml介绍
    yaml文件:叫做“资源清单文件”,通过kubecl命令直接使用yaml文件就可以实现对大量的资源对象进行编排部署了。    2.Yaml的组成部分yaml由2个部分组成:2.1控制器定义2.2被控制对象 yaml文件自己写比较繁琐,还好有自动生成yml格式文件的方式:1.使用kubectlcreate......
  • k8s——api
    api概述api是k8s系统的重要部分,组件之间的所有操作和通信均由apiserver处理的restapi调用,大多数情况下,api定义和实现都符合标准的httprest格式,可以通过kubctl命令管理工具或其他命令行工具来执行api类型alpha包含alpha名称的版本(例如v1alpha1)该软件可能会包含错误。......
  • Kubernetes——K8s基础指令
    1、查看类命令#获取节点和服务版本信息kubectlgetnodes#获取节点和服务版本信息,并查看附加信息kubectlgetnodes-owide#获取pod信息,默认是default名称空间kubectlgetpod#获取pod信息,默认是default名称空间,并查看附加信息如:pod的IP及在哪个节点运行kubectlg......
  • k8s集群搭建--kubeadm方式
    1.搭建集群的硬件条件: 使用3台服务器:一个master,两个node。我们这里的案例是搭建单master集群的方式。具体操作步骤:1.“在所有节点中”执行以下步骤的命令,做一些初始化:  上面的命令,在所有master和node节点中都要全部执行一次!!! 2.在所有节点安装Docker/Kubeadm/k......
  • k8s搭建集群
    1.单master集群模式缺点:如果master宕机了,就整个集群也没有办法访问了。 2.多master集群 模式 3.快速搭建k8s集群--Kubeadm: 4.快速搭建k8s集群--二进制方式: ......
  • k8s——核心概念篇
    服务的分类有状态代表应用nginxapache优点对客户端透明,无依赖关系,可以高效实现扩容,迁移缺点不能存储数据,需要额外的数据服务支撑无状态代表应用MYSQLRedis优点可以独立存储数据,实现数据管理缺点集群环境下需要实现主从,数据同步,备份,水平扩容......
  • Kubernetes脚本——检查K8S组件/服务/配置/POD
    #!/bin/bash#echo"运维账号是否有执行常用kubectl运维命令的权限,期望结果:输出/apps/bin/kubelet-----------------------------------------">k8s_check_result.txt#ansible-i./hostsk8s-mshell-a"foriin\`sudo-l\`;doecho\$i|grep-Eikubectl;done"&......
  • Kubernetes脚本——K8s日志检查
    #!/bin/bashecho"docker日志采用建议的syslog收集检查,期望结果:1---------------------------------------------------------------------">log_check_result.txtansible-i./hostsall-mshell-a'sudofind/apps/logs/docker/-namedockerd.log|wc-l'&......
  • Kubernetes脚本——检查K8s基础信息
    #!/bin/sh#version#node,master,slave#arch#kernelversion#dockerversion#image#cpu,memandusage#pod,podlimit#service,nodeport,lb#deploy,statefulset,deamonset#cm,secret#namespaces#set-xecho_left(){if["$2&q......