- 創(chuàng)建namespace,在kubectl中輸入以下命令:
kubectl create namespace ekiper
- 創(chuàng)建deployment部署yaml文件,將以下配置復制到一個yaml文件中(比如ekuiper-deployment.yaml)并保存:
apiVersion: apps/v1
kind: Deployment
metadata:
name: ekuiper
namespace: ekiper
spec:
replicas: 1
selector:
matchLabels:
app: ekuiper
template:
metadata:
labels:
app: ekuiper
spec:
containers:
- name: ekuiper
image: lfedge/ekuiper:latest
ports:
- name: http
containerPort: 9081
- name: mqtt
containerPort: 20498
env:
- name: MQTT_SOURCE__DEFAULT__SERVER
value: "tcp://broker.emqx.io:1883"
- name: KUIPER__BASIC__CONSOLELOG
value: "true"
- name: KUIPER__BASIC__IGNORECASE
value: "false"
volumeMounts:
- name: data
mountPath: /kuiper/data
- name: log
mountPath: /kuiper/log
securityContext:
runAsUser: 0
volumes:
- name: data
hostPath:
path: /tmp/data
- name: log
hostPath:
path: /tmp/log
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: ekuiper-manager
namespace: ekiper
spec:
selector:
matchLabels:
app: ekuiper-manager
replicas: 1
template:
metadata:
labels:
app: ekuiper-manager
spec:
containers:
- name: ekuiper-manager
image: emqx/ekuiper-manager:latest
ports:
- name: http
containerPort: 9082
env:
- name: DEFAULT_EKUIPER_ENDPOINT
value: "http://ekuiper:9081"
- 創(chuàng)建service部署yaml文件,將以下配置復制到一個yaml文件中(比如ekuiper-service.yaml)并保存:
apiVersion: v1
kind: Service
metadata:
name: ekuiper
namespace: ekiper
spec:
selector:
app: ekuiper
ports:
- name: http
port: 9081
targetPort: http
- name: mqtt
port: 20498
targetPort: mqtt
type: NodePort
---
apiVersion: v1
kind: Service
metadata:
name: ekuiper-manager
namespace: ekiper
spec:
selector:
app: ekuiper-manager
type: NodePort
ports:
- name: http
port: 9082
targetPort: http
- 應用部署yaml文件,使用kubectl命令應用剛剛創(chuàng)建的兩個yaml文件:
kubectl apply -f ekuiper-deployment.yaml
kubectl apply -f ekuiper-service.yaml
- 確認部署結果,查看ekuiper和ekuiper-manager pod的狀態(tài)是否Running,并且確認service的NodePort是否正確設置:
kubectl get pods -n ekiper
kubectl get services -n ekiper
注:本文由ChatGPT生成