Kubernetes1.21部署apisix网关

目录

1、安装nfs-subdir-external-provisioner

2、helm安装apisix

3、Prometheus使用kubesphere内置的

4、创建ServiceMonitor

5、安装Grafana   grafana.yaml kubectl apply -f grafana.yaml(参照官网)

6、配置Grafana ,添加Prometheus数据源

 7、部署whoami或者httpbin,配置网关,进行访问

8、创建Grafana Dashboard,选择import,效果如下

9、运行pod

 10、应用访问,加上gateway的端口号



1、安装nfs-subdir-external-provisioner

helm install nfs-subdir-external-provisioner nfs-subdir-external-provisioner/nfs-subdir-external-provisioner  -f values.yaml     -n default

docker pull k8s.gcr.io/sig-storage/nfs-subdir-external-provisioner:v4.0.2
下载地址nfs-subdir-external-provisioner安装文件资源-CSDN文库

2、helm安装apisix

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

helm install apisix apisix/apisix  \
--set ingress-controller.enabled=true \
--set dashboard.enabled=true \
--set gateway.tls.enabled=true \
--set etcd.volumePermissions.enabled=true \
--set etcd.persistence.storageClass="nfs-client" \
--set etcd.persistence.size="22Gi" \
--set ingress-controller.config.apisix.adminKey="edd1c9f034335f136f87ad84b625c8f1" \
--set admin.credentials.admin="edd1c9f034335f136f87ad84b625c8f1" \
--set admin.credentials.viewer="4054f7cf07e344346cd3f287985e76a2" \
--set ingress-controller.config.apisix.serviceNamespace=apisix  --namespace apisix --create-namespace

安装完成,查看网关的打印地址

export NODE_PORT=$(kubectl get --namespace apisix -o jsonpath="{.spec.ports[0].nodePort}" services apisix-gateway)
export NODE_IP=$(kubectl get nodes --namespace apisix -o jsonpath="{.items[0].status.addresses[0].address}")
echo http://$NODE_IP:$NODE_PORT

3、Prometheus使用kubesphere内置的

使用第二步安装的apisix service 端口未暴露,需要修改暴露出来

4、创建ServiceMonitor

apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
  name: apisix
  namespace: apisix
spec:
  endpoints:
    - scheme: http
      targetPort: monitor
      path: /apisix/prometheus/metrics
      interval: 15s
  namespaceSelector:
    matchNames:
      - apisix
  selector:
    matchLabels:
      app.kubernetes.io/name: apisix
      app.kubernetes.io/version: 3.3.0
      helm.sh/chart: apisix-2.0.0 

5、安装Grafana   grafana.yaml kubectl apply -f grafana.yaml(参照官网)

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: grafana-pvc
  namespace: apisix
spec:
  storageClassName: nfs-client
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 10Gi
---
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: grafana
  name: grafana
  namespace: apisix
spec:
  selector:
    matchLabels:
      app: grafana
  template:
    metadata:
      labels:
        app: grafana
    spec:
      securityContext:
        fsGroup: 472
        supplementalGroups:
          - 0
      containers:
        - name: grafana
          image: grafana/grafana:9.1.0
          imagePullPolicy: IfNotPresent
          ports:
            - containerPort: 3000
              name: http-grafana
              protocol: TCP
          readinessProbe:
            failureThreshold: 3
            httpGet:
              path: /robots.txt
              port: 3000
              scheme: HTTP
            initialDelaySeconds: 10
            periodSeconds: 30
            successThreshold: 1
            timeoutSeconds: 2
          livenessProbe:
            failureThreshold: 3
            initialDelaySeconds: 30
            periodSeconds: 10
            successThreshold: 1
            tcpSocket:
              port: 3000
            timeoutSeconds: 1
          resources:
            requests:
              cpu: 250m
              memory: 750Mi
          volumeMounts:
            - mountPath: /var/lib/grafana
              name: grafana-pv
      volumes:
        - name: grafana-pv
          persistentVolumeClaim:
            claimName: grafana-pvc
---
apiVersion: v1
kind: Service
metadata:
  name: grafana
  namespace: apisix
spec:
  ports:
    - port: 3000
      protocol: TCP
      targetPort: http-grafana
  selector:
    app: grafana
  sessionAffinity: None
  type: LoadBalancer

prometheus获取apisix的信息可能会初选拒绝连接的情况,默认apisix暴露的地址是本地的,需要修改下配置

 正常情况,看到信息应该如下图

6、配置Grafana ,添加Prometheus数据源

地址是:http://prometheus-operated.kubesphere-monitoring-system.svc:9090

 7、部署whoami或者httpbin,配置网关,进行访问

8、创建Grafana Dashboard,选择import,效果如下

 

9、运行pod

 10、应用访问,加上gateway的端口号

httpbin.org (liebe.com.cn)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Kubernetes 1.21官方文档详细介绍了这个开源容器编排平台的最新版本。文档提供了全面的指南,帮助用户了解Kubernetes的核心概念、架构和原理,并提供了详实的操作步骤。 首先,文档介绍了Kubernetes的基本概念和术语,比如Pods、Services、Volumes等。这些概念对于理解Kubernetes的工作方式至重要。然后,文档详细解释了Kubernetes的架构,包括Master节点和Worker节点之间的系,以及各个组件(如kube-apiserver、kube-scheduler等)的功能和作用。 接下来,文档提供了于如何安装和配置Kubernetes集群的指导。它涵盖了各种安装方法,包括使用kubeadm、kube-spray和云提供商的托管服务等。该文档还重点介绍了必要的络、存储和安全设置,以确保集群的正常运行并保护敏感数据。 文档还介绍了常见的Kubernetes对象,如ReplicaSets、Deployments和ConfigMaps等。它解释了如何创建、管理和扩展这些对象,并提供了详细的配置示例。 此外,文档提供了多个常见场景下的指南,如扩展集群、负载均衡、日志和监控、自动扩缩容等。这些指南帮助用户解决实际应用中遇到的常见问题,并提供了最佳实践建议。 总体而言,Kubernetes 1.21官方文档是一个详细而全面的资源,可以帮助用户更好地理解和使用Kubernetes。无论是初学者还是有经验的用户,都可以从这个文档中获得有用的信息和指导,以搭建和管理高效可靠的容器编排平台。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值