测试学习使用kubernetes集群搭建zabbix监控平台
搭建nfs服务器
yum install -y nfs-utils
mkdir -p /nfs/data
echo "/root/nfs_root *(insecure,rw,sync,no_root_squash)" > /etc/exports
systemctl enable rpcbind
systemctl enable nfs-server
systemctl start rpcbind
exportfs -r
#查看nfs
exportfs
安装zabbix-mysql
编写zabbix-mysql的yaml文件
#vim zabbix_mysql.yaml
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: zabbixdb-pv
spec:
capacity: #创建存储的大小
storage: 10Gi
volumeMode: Filesystem #存储的类型
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Recycle
nfs:
path: /root/nfs_root #此处更改为实际的nfs地址配置
server: 192.168.85.6
mountOptions:
- hard
- nfsvers=4.1
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: zabbixdb-pvc
namespace: zabbix
spec:
accessModes:
- ReadWriteOnce
volumeMode: Filesystem #存储类型 ,块存储Block
resources:
requests:
storage: 5Gi
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: zabbixdb
name: zabbixdb
namespace: zabbix
spec:
replicas: 1
selector:
matchLabels:
app: zabbixdb
strategy: {}
template:
metadata:
labels:
app: zabbixdb
spec:
volumes:
- name: zabbixdb-data
persistentVolumeClaim:
claimName: zabbixdb-pvc
containers:
- image: mysql:8.0
name: mysql
ports:
- name: mysql
containerPort: 3306
protocol: TCP
volumeMounts:
- name: zabbixdb-data
mountPath: /var/lib/mysql
env:
- name: MYSQL_DATABASE
value: 'zabbix'
- name: MYSQL_USER
value: 'zabbix'
- name: MYSQL_PASSWORD
value: 'zabbix'
- name: MYSQL_ROOT_PASSWORD
value: 'zabbix'
resources:
requests:
cpu: 0.1
memory: 128Mi
limits:
cpu: 0.3
memory: 512Mi
---
apiVersion: v1
kind: Service
metadata:
creationTimestamp: null
labels:
app: zabbixdb
name: zabbixdb
namespace: zabbix
spec:
# clusterIP: 10.96.1.99
ports:
- name: 3306-3306
port: 3306
protocol: TCP
targetPort: 3306
selector:
app: zabbixdb
type: ClusterIP
status:
loadBalancer: {}
创建命名空间
kubectl create ns zabbix
创建zabbix数据库
kubectl apply -f zabbix_mysql.yaml
检查pod状态
检查zabbix数据库的service域名
运行测试pod
#运行busybox
kubectl run busybox --image=busybox:1.28 -- sleep 3600
#进入busybox
kubectl exec -it busybox -- /bin/sh
查看域名解析
nslookup zabbixdb.zabbix.svc.cluster.local
确认svc配置生效
安装zabbix-server
编写zabbix_server.yaml的文件
apiVersion: apps/v1
kind: Deployment
metadata:
creationTimestamp: null
labels:
app: zabbix-server
name: zabbix-server
namespace: zabbix
spec:
replicas: 1
selector:
matchLabels:
app: zabbix-server
strategy: {}
template:
metadata:
creationTimestamp: null
labels:
app: zabbix-server
spec:
volumes:
- name: zabbix-scripts
hostPath:
path: /usr/lib/zabbix/
- name: zabbix-file
hostPath:
path: /var/lib/zabbix
nodeSelector:
zabbix-server: "true"
hostNetwork: true
containers:
- image: zabbix/zabbix-server-mysql:6.0-ubuntu-latest
name: zabbix-server-mysql
env:
- name: DB_SERVER_HOST
value: zabbixdb #使用service的name
- name: MYSQL_USER
value: zabbix
- name: MYSQL_PASSWORD
value: zabbix
resources: {}
status: {}
给node节点打上标签进行调度
kubectl label nodes k8s-node02 zabbix-server=true
安装zabbix-server
kubectl apply -f zabbix_server.yaml
查看pod状态
部署zabbix-web
编写zabbix-web.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
creationTimestamp: null
labels:
app: zabbix-web
name: zabbix-web
namespace: zabbix
spec:
replicas: 1
selector:
matchLabels:
app: zabbix-web
strategy: {}
template:
metadata:
creationTimestamp: null
labels:
app: zabbix-web
spec:
containers:
- image: zabbix/zabbix-web-nginx-mysql:6.0-ubuntu-latest
name: zabbix-web-nginx-mysql
env:
- name: DB_SERVER_HOST
value: zabbixdb.zabbix.svc.cluster.local
- name: MYSQL_USER
value: zabbix
- name: MYSQL_PASSWORD
value: zabbix
- name: ZBX_SERVER_HOST
value: 192.168.85.4 #此处随便填?
- name: PHP_TZ
value: Asia/shanghai
resources: {}
status: {}
---
apiVersion: v1
kind: Service
metadata:
creationTimestamp: null
labels:
app: zabbix-web
name: zabbix-web
namespace: zabbix
spec:
ports:
- name: 8080-8080
port: 8080
protocol: TCP
targetPort: 8080
selector:
app: zabbix-web
type: NodePort
status:
loadBalancer: {}
创建并查看pod状态
安装zabbix-agent
#vim zabbix-agent
apiVersion: apps/v1
kind: DaemonSet
metadata:
labels:
app: zabbix-agent
name: zabbix-agent
namespace: zabbix
spec:
selector:
matchLabels:
app: zabbix-agent
template:
metadata:
creationTimestamp: null
labels:
app: zabbix-agent
spec:
hostNetwork: true
containers:
- image: zabbix/zabbix-agent:6.0-ubuntu-latest
name: zabbix-agent
env:
- name: ZBX_SERVER_HOST
value: 192.168.85.4
resources: {}
登录
查看svc
登录zabbix
http;//<nodeip>:32591
账户密码 admin zabbix