我是靠谱客的博主 迷你自行车,最近开发中收集的这篇文章主要介绍在 Minikube 上安装 Ingress APISIX在 Minikube 上安装 Ingress APISIX 以及使用,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

在 Minikube 上安装 Ingress APISIX 以及使用

先决条件

安装Minikube。
安装helm 。
确保你的目标命名空间存在,本文档的 kubectl 操作将在命名空间中执行ingress-apisix。

安装 APISIX 和 apisix-ingress-controller

作为 apisix-ingress-controller 的数据平面,Apache APISIX可以同时使用 Helm chart 进行部署。
可参考:https://apisix.apache.org/docs/ingress-controller/deployments/minikube

helm repo add apisix https://charts.apiseven.com
helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo update
kubectl create ns ingress-apisix
*** 用helm安装Apisix ingress-apisix
helm install apisix apisix/apisix 
  --set gateway.type=NodePort 
  --set ingress-controller.enabled=true 
  --namespace ingress-apisix
kubectl get service --namespace ingress-apisix
已创建五个服务资源。

apisix-gateway,处理真实流量;
apisix-admin,它充当控制平面来处理所有配置更改。
apisix-ingress-controller,它公开了 apisix-ingress-controller 的指标。
apisix-etcd以及apisix-etcd-headless用于 etcd 服务和内部通信。

helm安装apisix:https://apisix.apache.org/docs/helm-chart/apisix/
https://apisix.apache.org/docs/ingress-controller/practices/proxy-the-httpbin-service

apisix-ingress:https://github.com/api7/apisix-mesh-agent

创建namespace

*** 开启minikube并且创建命名空间ingress-apisix
kubectl create namespace ingress-apisix
*** 查看是否创建成功ingress-apisix命名空间
kubectl get namespace
*** minikube宿主机执行kubectl查看对应创建的pods
kubectl get pods -n ingress-apisix

测试部署k8s集群内的web服务

创建文件deployment.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: httpbin
spec:
  replicas: 2
  selector:
    matchLabels:
      app: httpbin
  template:
    metadata:
      labels:
        app: httpbin
    spec:
      terminationGracePeriodSeconds: 0
      containers:
        - livenessProbe:
          image: "jocatalin/kubernetes-bootcamp:v1"
          #image: "kennethreitz/httpbin"
          #image: "k8s.gcr.io/echoserver:1.4"
          imagePullPolicy: IfNotPresent
          name: httpbin
          ports:
            - containerPort: 80
              name: httpbin
              protocol: "TCP"
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: testbin
spec:
  replicas: 2
  selector:
    matchLabels:
      app: testbin
  template:
    metadata:
      labels:
        app: testbin
    spec:
      terminationGracePeriodSeconds: 0
      containers:
        - livenessProbe:
          image: "jocatalin/kubernetes-bootcamp:v1"
          imagePullPolicy: IfNotPresent
          name: testbin
          ports:
            - containerPort: 80
              name: testbin
              protocol: "TCP"

保存本文件后执行创建deployment(注意⚠️deployment的命名空间要和apisix保持一致,本次apisix的命名空间是ingress-apisix)

kubectl apply -f deployment.yaml -n ingress-apisix

*** 查看是否创建成功deployment服务
kubectl get deployment -n ingress-apisix

*** 展示出对应testbin表示创建成功

注意:
kubectl create属于Imperative command(祈使式命令),它明确告诉kubectl要创建某个资源或对象;

kubectl apply是Declarative command(声明式命令),apply并不告诉kubectl具体做什么,而是由kubectl根据后面-f中的yaml文件与k8s中对应的object对比,自动探测要进行哪些操作,比如如果object不存在,则create;如果已经存在,则对比差异,update and replace

创建service.yaml文件

apiVersion: v1
kind: Service
metadata:
  name: httpbin
spec:
  selector:
    app: httpbin
  ports:
    - name: httpbin
      port: 80
      targetPort: 8080

---
apiVersion: v1
kind: Service
metadata:
  name: testbin
spec:
  selector:
    app: testbin
  ports:
    - name: testbin
      port: 80
      targetPort: 8080

创建保存文件后执行生成service(注意⚠️service的命名空间也要和apisix保持一致)

kubectl apply -f service.yaml -n ingress-apisix

***查看是否创建成功service服务
kubectl get service -n ingress-apisix

*** 查看是否创建testbin, httpbin服务成功
例如:
root@sunrj:~# kubectl get deployment -n ingress-apisix
NAME                        READY   UP-TO-DATE   AVAILABLE   AGE
httpbin                     2/2     2            2           25h
testbin                     2/2     2            2           25h

*** 创建成功后测试一下service直接映射外网看看是否可以访问对应的deployment
minikube service httpbin-service-test --url -n ingress-apisix

minikube会映射本机一个127.0.0.1:****的随机端口,浏览器直接访问查看是否能够访问
浏览器展示“Hello Kubernetes bootcamp! *****”表示映射成功

创建ingress.yaml文件(apisix可以直接创建ApisixRoute替代ingress的功能)

最后

以上就是迷你自行车为你收集整理的在 Minikube 上安装 Ingress APISIX在 Minikube 上安装 Ingress APISIX 以及使用的全部内容,希望文章能够帮你解决在 Minikube 上安装 Ingress APISIX在 Minikube 上安装 Ingress APISIX 以及使用所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(52)

评论列表共有 0 条评论

立即
投稿
返回
顶部