栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

k8s搭建zabbix服务

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

k8s搭建zabbix服务

  1. k8s环境搭建,可以看上篇文章。
  2. 创建pv, node节点可以看到/hoem/data数据目录。
cat mysql-pv.yaml
kind: PersistentVolume
apiVersion: v1
metadata:
  name: mysql-pv-volume
  labels:
    type: local
spec:
  storageClassName: manual
  capacity:
    storage: 20Gi
  accessModes:
    - ReadWriteonce
  hostPath:
    path: "/home/data"
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: mysql-pv-claim
spec:
  storageClassName: manual
  accessModes:
    - ReadWriteonce
  resources:
    requests:
      storage: 20Gi

  1. 创建mysql
#cat mysql-config.yaml
apiVersion: v1
kind: ConfigMap
metadata:
  name: mysql-config
data:
  custom.cnf: |
    [mysqld]
    default_storage_engine=innodb
    skip_external_locking
    character-set-server=utf8
    collation-server=utf8_unicode_ci
    skip_host_cache
    skip_name_resolve
    default_authentication_plugin=mysql_native_password

#echo -n password|base64
cGFzc3dvcmQ=

#cat mysql-secret.yaml
apiVersion: v1
kind: Secret
metadata:
  name: mysql-user-pwd
data:
  mysql-root-pwd: cGFzc3dvcmQ=

#cat mysql-deploy.yaml
apiVersion: v1
kind: Service
metadata:
  name: mysql
spec:
  type: NodePort
  ports:
  - port: 3306
    nodePort: 30006
    protocol: TCP
    targetPort: 3306
  selector:
    app: mysql

---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: mysql
spec:
  replicas: 1
  selector:
    matchLabels:
      app: mysql
  strategy:
    type: Recreate
  template:
    metadata:
      labels:
        app: mysql
    spec:
      containers:
      - image: mysql:5.7.28
        name: mysql
        imagePullPolicy: IfNotPresent
        env:
        - name: MYSQL_ROOT_PASSWORD
          valueFrom:
            secretKeyRef:
              name: mysql-user-pwd
              key: mysql-root-pwd
        ports:
        - containerPort: 3306
          name: mysql
        volumeMounts:
        - name: mysql-config
          mountPath: /etc/mysql/conf.d/
        - name: mysql-persistent-storage
          mountPath: /var/lib/mysql
        - name: timezone
          mountPath: /etc/localtime
      volumes:
      - name: mysql-config
        configMap:
          name: mysql-config
      - name: timezone
        hostPath:
          path: /usr/share/zoneinfo/Asia/Shanghai
      - name: mysql-persistent-storage
        persistentVolumeClaim:
          claimName: mysql-pv-claim

  1. 启动mysql
#pwd
/home/k8s/zabbix/mysql
#kubectl  apply -f .
#kubectl  get pod
NAME                             READY   STATUS    RESTARTS   AGE
mysql-688977bc8b-jls5n           1/1     Running   0          6h25m
#创建zabbix用户
#kubectl exec -it mysql-688977bc8b-jls5n bash
mysql -uroot -ppassword
CREATE USER 'zabbix'@'%' IDENTIFIED BY '123456';
GRANT privileges ON *.* TO 'zabbix'@'%' WITH GRANT OPTION;
FLUSH   PRIVILEGES;
  1. 创建zabbix
#cat zabbix-server-deploy.yaml
apiVersion: v1
kind: Service
metadata:
  name: zabbixserver
spec:
  type: NodePort
  ports:
  - port:  10051
    nodePort: 30051
    protocol: TCP
    targetPort: 10051
  selector:
    app: zabbix-server
---
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
          imagePullPolicy: IfNotPresent
          ports:
          - containerPort: 10051
            name: server
            protocol: TCP
          readinessProbe:
            tcpSocket:
              port: server
            initialDelaySeconds: 5
            periodSeconds: 10
          livenessProbe:
            tcpSocket:
              port: server
            initialDelaySeconds: 15
            periodSeconds: 20
          env:
          - name: DB_SERVER_HOST
            value: "mysql"
          - name: MYSQL_USER
            value: "zabbix"
          - name: MYSQL_PASSWORD
            value: "123456"
          - name: MYSQL_DATAbase
            value: "zabbix"
          - name: ZBX_CACHESIZE
            value: "1024M"
          - name: ZBX_TRENDCACHESIZE
            value: "1024M"
          - name: ZBX_HISTORYCACHESIZE
            value: "2048M"
          - name: ZBX_HISTORYINDEXCACHESIZE
            value: "1024M"
          - name: ZBX_STARTTRAPPERS
            value: "5"
          - name: ZBX_STARTPREPROCESSORS
            value: "10"
          - name: ZBX_STARTDBSYNCERS
            value: "10"
          - name: DB_SERVER_PORT
            value: "3306"
          securityContext:
            privileged: true

#cat zabbix-web.yaml
apiVersion: v1
kind: Service
metadata:
  name: zabbix-web
spec:
  type: NodePort
  ports:
 1. port: 8080
    protocol: TCP
    nodePort: 30080
    targetPort: 8080
  selector:
    app: zabbix-web
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: zabbix-web
spec:
  replicas: 2
  selector:
    matchLabels:
      app: zabbix-web
  template:
    metadata:
      labels:
        app: zabbix-web
    spec:
      containers:
      - image: zabbix/zabbix-web-nginx-mysql
        name: zabbix-web
        imagePullPolicy: IfNotPresent
        ports:
        - containerPort: 8080
          name: web
          protocol: TCP
        env:
        - name: DB_SERVER_HOST
          value: "mysql"
        - name:  ZBX_SERVER_HOST
          value: "zabbixserver"
        - name: MYSQL_USER
          value: "zabbix"
        - name: MYSQL_PASSWORD
          value: "123456"
        - name: TZ
          value: "Asia/Shanghai"


6. 启动zabbix

#pwd
/home/k8s/zabbix/zabbix-server
#kubectl  apply -f .
#kubectl  get pod
NAME                             READY   STATUS    RESTARTS   AGE
mysql-688977bc8b-jls5n           1/1     Running   0          6h29m
zabbix-server-687768dc47-pq56k   1/1     Running   0          5h22m
zabbix-web-74c95859c5-294cc      1/1     Running   0          4h12m
zabbix-web-74c95859c5-ssxkj      1/1     Running   0          4h12m
kubectl logs zabbix-server-687768dc47-pq56k

  1. 访问
    默认密码:Admin/zabbix
http://192.168.1.151:30080/

  1. 遇到的问题,zabbix-server,zabbix-web连不上mysql。
  2. 账号重新授权,然后进去容器里面测试是否可以链接成功,权限是否够等。
  3. 删除zabbix库,删除pod重新拉取。
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/460883.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号