k8s部署zabbix的代码
时间: 2023-07-19 19:30:05 浏览: 40
以下是一个基本的部署 Zabbix 的 Kubernetes YAML 配置文件,您可以根据您的实际需求进行调整和优化。
```
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: zabbix-pvc
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10Gi
---
apiVersion: v1
kind: Service
metadata:
name: zabbix-mysql
spec:
ports:
- name: mysql
port: 3306
selector:
app: zabbix-mysql
clusterIP: None
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: zabbix-mysql
spec:
selector:
matchLabels:
app: zabbix-mysql
serviceName: zabbix-mysql
replicas: 1
template:
metadata:
labels:
app: zabbix-mysql
spec:
containers:
- name: mysql
image: mysql:5.7
env:
- name: MYSQL_ROOT_PASSWORD
value: "password"
- name: MYSQL_USER
value: "zabbix"
- name: MYSQL_PASSWORD
value: "password"
- name: MYSQL_DATABASE
value: "zabbix"
ports:
- containerPort: 3306
name: mysql
volumeMounts:
- name: mysql-pv
mountPath: /var/lib/mysql
volumes:
- name: mysql-pv
persistentVolumeClaim:
claimName: zabbix-pvc
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: zabbix-server
spec:
replicas: 1
selector:
matchLabels:
app: zabbix-server
template:
metadata:
labels:
app: zabbix-server
spec:
containers:
- name: zabbix-server
image: zabbix/zabbix-server-mysql:latest
env:
- name: DB_SERVER_HOST
value: zabbix-mysql
- name: MYSQL_USER
value: "zabbix"
- name: MYSQL_PASSWORD
value: "password"
- name: MYSQL_DATABASE
value: "zabbix"
ports:
- containerPort: 10051
name: zabbix-server
volumeMounts:
- name: zabbix-pv
mountPath: /var/lib/zabbix
volumes:
- name: zabbix-pv
persistentVolumeClaim:
claimName: zabbix-pvc
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: zabbix-web
spec:
replicas: 1
selector:
matchLabels:
app: zabbix-web
template:
metadata:
labels:
app: zabbix-web
spec:
containers:
- name: zabbix-web
image: zabbix/zabbix-web-nginx-mysql:latest
env:
- name: DB_SERVER_HOST
value: zabbix-mysql
- name: MYSQL_USER
value: "zabbix"
- name: MYSQL_PASSWORD
value: "password"
- name: MYSQL_DATABASE
value: "zabbix"
ports:
- containerPort: 80
name: zabbix-web
volumeMounts:
- name: zabbix-pv
mountPath: /var/lib/zabbix
volumes:
- name: zabbix-pv
persistentVolumeClaim:
claimName: zabbix-pvc
```
这个配置文件会创建一个 PersistentVolumeClaim 用于持久化存储 Zabbix 的数据和配置,一个 MySQL StatefulSet 用于存储 Zabbix 数据,一个 Zabbix 服务器 Deployment 和一个 Zabbix Web 前端 Deployment。注意其中的环境变量和密码需要根据实际情况进行修改。