文章目录
- 介绍
- 安装helm
- 更新helm库
- 初始化dapr
- 高可用方式安装
- 卸载dapr
- 验证
- k8s的dapr安装rocketmq
- 总结
介绍
Dapr(Distributed Application Runtime)是一个开源项目,旨在简化分布式应用程序的开发。它提供了一个跨语言的运行时环境,用于构建微服务应用程序,并提供了一组工具和库来解决分布式系统的常见问题,例如状态管理、消息传递、服务调用等。
以下是 Dapr 的一些关键特性和组成部分:
- 语言无关性:Dapr 提供了与编程语言无关的 API,可以在任何编程语言中使用。这使得开发人员可以使用他们最熟悉的编程语言来构建微服务应用程序。
- 状态管理:Dapr 提供了用于管理应用程序状态的 API 和组件。它支持多种状态存储后端,包括本地存储、数据库、缓存等,并提供了用于访问和操作状态的简单接口。
- 消息传递:Dapr 支持通过诸如 RabbitMQ、Kafka、Azure Service Bus 等消息代理实现的消息传递。它提供了一组 API 来发送和接收消息,并支持发布/订阅、队列等消息传递模式。
- 服务调用:Dapr 提供了用于服务间通信的 API 和组件。开发人员可以使用它来调用远程服务,而无需关心底层通信细节。Dapr 支持 HTTP、gRPC 等通信协议,并提供了服务发现、负载均衡等功能。
- 事件驱动:Dapr 支持基于事件的编程模型。开发人员可以定义事件触发器,并在特定事件发生时执行相应的操作。这种模型可用于构建响应式、松耦合的应用程序。
- 安全性:Dapr 提供了一组安全性功能,包括身份验证、访问控制等。它可以与现有的身份提供者(如 Azure Active Directory、OAuth 等)集成,以确保应用程序的安全性。
- 可观察性:Dapr 提供了用于监控和诊断应用程序的工具和组件。开发人员可以使用它来收集指标、跟踪请求、记录日志等,以便更好地了解应用程序的运行状况。
安装helm
三个包放到一个目录下
chmod +x get
./get
helm version
更新helm库
helm repo add dapr https://dapr.github.io/helm-charts/
helm repo update
helm search repo dapr --devel --versions #查看可以安装那些版本的
初始化dapr
# test-dapr是k8s的命名空间
helm install dapr dapr/dapr --namespace test-dapr --wait
helm upgrade --install dapr dapr/dapr \
--version=1.2 \
--namespace test-dapr \
--create-namespace \
--wait
高可用方式安装
helm upgrade --install dapr dapr/dapr \
--version=1.2 \
--namespace test-dapr \
--create-namespace \
--set global.ha.enabled=true \
--wait
卸载dapr
helm uninstall dapr --namespace test-dapr
验证
kubectl -n test-dapr get pods
它还有页面,但是svc那要增加一个,把那个cluster修改为NodePort方式
k8s的dapr安装rocketmq
apiVersion: dapr.io/v1alpha1
kind: Component
metadata:
name: pubsub
namespace: test-dapr
spec:
type: pubsub.rabbitmq
version: v1
metadata:
- name: host
value: "amqp://l2:l2@rabbitmq:5672"
- name: durable
value: true
apiVersion: apps/v1
kind: Deployment
metadata:
name: rabbitmq
namespace: test-dapr
spec:
replicas: 1
selector:
matchLabels:
app: rabbitmq
template:
metadata:
labels:
app: rabbitmq
spec:
containers:
- env:
- name: RABBITMQ_DEFAULT_USER
value: l2
- name: RABBITMQ_DEFAULT_PASS
value: l2
image: 自己封装的镜像,可以百度找下任意的
imagePullPolicy: IfNotPresent
name: rabbitmq
apiVersion: v1
kind: Service
metadata:
name: rabbitmq
namespace: test-dapr
spec:
ports:
- name: data-port
nodePort: 30672
port: 5672
protocol: TCP
targetPort: 5672
- name: web-port
nodePort: 30220
port: 15672
protocol: TCP
targetPort: 15672
selector:
app: rabbitmq
sessionAffinity: None
type: NodePort
总结
本文仅仅简单介绍了k8s安装dapr的使用,以及安装rocketmq