一、检查本地k8s环境
1.检查系统pod运行状态
[root@k8s-master ~]# kubectl get pods -ANAMESPACE NAME READY STATUS RESTARTS AGEkube-system calico-kube-controllers-7bc6547ffb-2nf66 1/1 Running 1 (9m28s ago) 2d16hkube-system calico-node-8c4pn 1/1 Running 1 (9m16s ago) 2d16hkube-system calico-node-f28qq 1/1 Running 1 (9m10s ago) 2d16hkube-system calico-node-wmc2j 1/1 Running 1 (9m29s ago) 2d16hkube-system coredns-6d8c4cb4d-6gm4x 1/1 Running 1 (9m28s ago) 2d16hkube-system coredns-6d8c4cb4d-7vxlz 1/1 Running 1 (9m29s ago) 2d16hkube-system etcd-k8s-master 1/1 Running 1 (9m30s ago) 2d16hkube-system kube-apiserver-k8s-master 1/1 Running 1 (9m29s ago) 2d16hkube-system kube-controller-manager-k8s-master 1/1 Running 1 (9m30s ago) 2d16hkube-system kube-proxy-8dfw8 1/1 Running 1 (9m29s ago) 2d16hkube-system kube-proxy-ghzrv 1/1 Running 1 (9m9s ago) 2d16hkube-system kube-proxy-j867z 1/1 Running 1 (9m15s ago) 2d16hkube-system kube-scheduler-k8s-master 1/1 Running 1 (9m28s ago) 2d16h
2.检查node节点状态
[root@k8s-master ~]# kubectl get nodes -owideNAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIMEk8s-master Ready control-plane,master 2d16h v1.23.1 192.168.3.201 <none> CentOS Linux 7 (Core) 3.10.0-957.el7.x86_64 containerd://1.6.6k8s-node01 Ready <none> 2d16h v1.23.1 192.168.3.202 <none> CentOS Linux 7 (Core) 3.10.0-957.el7.x86_64 containerd://1.6.6k8s-node02 Ready <none> 2d16h v1.23.1 192.168.3.203 <none> CentOS Linux 7 (Core) 3.10.0-957.el7.x86_64 containerd://1.6.6
二、配置nfs共享存储
1.安装nfs
yum install -y nfs-utils
2.创建共享目录
mkdir -p nfs/data
3.配置共享目录
echo "/nfs/data/ *(insecure,rw,sync,no_root_squash)" > etc/exports
4.启动相关服务
systemctl enable rpcbindsystemctl enable nfs-serversystemctl start rpcbind
5.使配置生效
exportfs -r
6.查看nfs
[root@k8s-master ~]# exportfs/nfs/data <world>
7.其他节点检查nfs共享
[root@k8s-node01 ~]# showmount -e 192.168.3.201Export list for 192.168.3.201:/nfs/data *
三、安装zabbix-mysql
1.编写zabbix-mysql的yaml文件
[root@k8s-master zabbix]# cat zabbix_mysql.yaml---apiVersion: v1kind: PersistentVolumemetadata:name: zabbixdb-pvspec:capacity: #创建存储的大小storage: 10GivolumeMode: Filesystem #存储的类型accessModes:- ReadWriteOncepersistentVolumeReclaimPolicy: Recyclenfs:path: nfs/data/zabbixserver: 192.168.3.201mountOptions:- hard- nfsvers=4.1---apiVersion: v1kind: PersistentVolumeClaimmetadata:name: zabbixdb-pvcnamespace: zabbixspec:accessModes:- ReadWriteOncevolumeMode: Filesystem #存储类型 ,块存储Blockresources:requests:storage: 8Gi---apiVersion: apps/v1kind: Deploymentmetadata:labels:app: zabbixdbname: zabbixdbnamespace: zabbixspec:replicas: 1selector:matchLabels:app: zabbixdbstrategy: {}template:metadata:labels:app: zabbixdbspec:volumes:- name: zabbixdb-datapersistentVolumeClaim:claimName: zabbixdb-pvccontainers:- image: mysql:8.0name: mysqlports:- name: mysqlcontainerPort: 3306protocol: TCPvolumeMounts:- name: zabbixdb-datamountPath: var/lib/mysqlenv:- name: MYSQL_DATABASEvalue: 'zabbix'- name: MYSQL_USERvalue: 'zabbix'- name: MYSQL_PASSWORDvalue: 'zabbix'- name: MYSQL_ROOT_PASSWORDvalue: 'zabbix'resources:requests:cpu: 0.1memory: 128Milimits:cpu: 0.3memory: 512Mi---apiVersion: v1kind: Servicemetadata:creationTimestamp: nulllabels:app: zabbixdbname: zabbixdbnamespace: zabbixspec:clusterIP: 10.96.1.99ports:- name: 3306-3306port: 3306protocol: TCPtargetPort: 3306selector:app: zabbixdbtype: ClusterIPstatus:loadBalancer: {}
2.创建命名空间
[root@k8s-master zabbix]# kubectl create namespace zabbixnamespace/zabbix created
3.创建zabbix数据库
kubectl apply -f zabbix_mysql.yaml
4.检查pod状态
[root@k8s-master zabbix]# kubectl get pods -n zabbixNAME READY STATUS RESTARTS AGEzabbixdb-69b7cd8dff-jnpjd 1/1 Running 0 11m
四、检查zabbix数据库的service域名
1.运行测试pod
[root@k8s-master ~]# kubectl run busybox --image=busybox:1.28 -- sleep 3600pod/busybox created
2.进入busybox的pod
[root@k8s-master ~]# kubectl exec -it busybox -- bin/sh/ #
3.查看域名解析
[root@k8s-master ~]# kubectl exec -it busybox -- bin/sh/ # nslookup zabbixdb.zabbix.svc.cluster.localServer: 10.96.0.10Address 1: 10.96.0.10 kube-dns.kube-system.svc.cluster.localName: zabbixdb.zabbix.svc.cluster.localAddress 1: 10.96.1.99 zabbixdb.zabbix.svc.cluster.local/ #
五、安装zabbix-server
1.编写zabbix_server.yaml文件
[root@k8s-master zabbix]# cat zabbix_server.yamlapiVersion: apps/v1kind: Deploymentmetadata:creationTimestamp: nulllabels:app: zabbix-servername: zabbix-servernamespace: zabbixspec:replicas: 1selector:matchLabels:app: zabbix-serverstrategy: {}template:metadata:creationTimestamp: nulllabels:app: zabbix-serverspec:volumes:- name: zabbix-scriptshostPath:path: usr/lib/zabbix/- name: zabbix-filehostPath:path: var/lib/zabbixnodeSelector:zabbix-server: "true"hostNetwork: truecontainers:- image: zabbix/zabbix-server-mysql:6.0-ubuntu-latestname: zabbix-server-mysqlenv:- name: DB_SERVER_HOSTvalue: 10.96.1.99- name: MYSQL_USERvalue: zabbix- name: MYSQL_PASSWORDvalue: zabbixresources: {}status: {}
2.给node02节点打上标签
[root@k8s-master zabbix]# kubectl label nodes k8s-node02 zabbix-server=truenode/k8s-node02 labeled
3.安装zabbix-server
[root@k8s-master zabbix]# kubectl apply -f zabbix_server.yamldeployment.apps/zabbix-server created
4.检查pod状态
[root@k8s-master zabbix]# kubectl get pods -n zabbixNAME READY STATUS RESTARTS AGEzabbix-server-5f48d9d57d-rkr5p 1/1 Running 0 66szabbixdb-69b7cd8dff-krt2w 1/1 Running 0 4m22s
六、部署zabbix-web
1.编写zabbix_web.yaml文件
[root@k8s-master zabbix]# cat zabbix_web.yamlapiVersion: apps/v1kind: Deploymentmetadata:creationTimestamp: nulllabels:app: zabbix-webname: zabbix-webnamespace: zabbixspec:replicas: 1selector:matchLabels:app: zabbix-webstrategy: {}template:metadata:creationTimestamp: nulllabels:app: zabbix-webspec:containers:- image: zabbix/zabbix-web-nginx-mysql:6.0-ubuntu-latestname: zabbix-web-nginx-mysqlenv:- name: DB_SERVER_HOSTvalue: zabbixdb.zabbix.svc.cluster.local- name: MYSQL_USERvalue: zabbix- name: MYSQL_PASSWORDvalue: zabbix- name: ZBX_SERVER_HOSTvalue: 192.168.3.201- name: PHP_TZvalue: Asia/shanghairesources: {}status: {}---apiVersion: v1kind: Servicemetadata:creationTimestamp: nulllabels:app: zabbix-webname: zabbix-webnamespace: zabbixspec:ports:- name: 8080-8080port: 8080protocol: TCPtargetPort: 8080selector:app: zabbix-webtype: NodePortstatus:loadBalancer: {}
2.安装zabbix-web
[root@k8s-master zabbix]# kubectl apply -f zabbix_web.yamldeployment.apps/zabbix-web createdservice/zabbix-web created
3.查看pod状态
[root@k8s-master zabbix]# kubectl get pods -n zabbixNAME READY STATUS RESTARTS AGEzabbix-server-5f48d9d57d-rkr5p 1/1 Running 0 2m36szabbix-web-55cd66f74f-9f284 1/1 Running 0 18szabbixdb-69b7cd8dff-krt2w 1/1 Running 0 5m52s
七、部署zabbix-agent
1.编辑zabbix_agent.yaml
[root@k8s-master zabbix]# cat zabbix_agent.yamlapiVersion: apps/v1kind: DaemonSetmetadata:labels:app: zabbix-agentname: zabbix-agentnamespace: zabbixspec:selector:matchLabels:app: zabbix-agenttemplate:metadata:creationTimestamp: nulllabels:app: zabbix-agentspec:hostNetwork: truecontainers:- image: zabbix/zabbix-agent:6.0-ubuntu-latestname: zabbix-agentenv:- name: ZBX_SERVER_HOSTvalue: 192.168.3.201resources: {}
2.安装zabbix-agent
kubectl apply -f zabbix_agent.yaml
3.查看pod状态
[root@k8s-master zabbix]# kubectl get pods -n zabbixNAME READY STATUS RESTARTS AGEzabbix-agent-h2qwf 1/1 Running 0 3szabbix-agent-plnbd 1/1 Running 0 3szabbix-server-5f48d9d57d-rkr5p 1/1 Running 0 3m2szabbix-web-55cd66f74f-9f284 1/1 Running 0 44szabbixdb-69b7cd8dff-krt2w 1/1 Running 0 6m18s
八、访问zabbix的web
1.查看svc
[root@k8s-master zabbix]# kubectl get svc -n zabbixNAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGEzabbix-web NodePort 10.100.50.7 <none> 8080:30775/TCP 59szabbixdb ClusterIP 10.96.1.99 <none> 3306/TCP 6m33s
2.登录web
http://192.168.3.202:30775
3.登录zabbix
初始账号admin/zabbix
4.查询zabbix-server的监控项图表


转载自:https://blog.csdn.net/jks212454/article/details/125624373

往期推荐

Zabbix2022 全年在线课录屏
PDF手册|1666页 Zabbix6.0官方中文 操作手册PDF下载!

扫一扫|加入技术交流群
微信号|17502189550
备注“使用Zabbix年限+企业+姓名”
5000+用户已加入!


一个人走得快,一群人走得远!
文章转载自Zabbix开源社区,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。





