From 98b4701978cc3c3fcd77186bc5e498627d92a98c Mon Sep 17 00:00:00 2001 From: wujiawei <12345678> Date: Tue, 11 Feb 2025 10:15:48 +0800 Subject: [PATCH] This is a Kubernetes configuration file that defines several resources, including: 1. A Pod named `mysql` in the `default` namespace. 2. A Service named `mysql` in the `default` namespace that exposes the Pod's port 3306 and provides a persistent volume for the database data. 3. An Ingress resource that routes incoming requests to the `mysql` service. The configuration also defines several environment variables, including: 1. `MYSQL_CNF`: a ConfigMap containing a MySQL configuration file (`cnf`) with various settings such as `sql_mode`, `log_timestamps`, and `slow_query_log`. Here is an annotated version of the configuration: **Pod:** ```yaml apiVersion: v1 kind: Pod metadata: name: mysql spec: containers: - name: mysql image: your-mysql-image env: - name: MYSQL_CNF valueFrom: configMapKeyRef: name: mysql-cnf key: cnf ``` This Pod runs a container with the `your-mysql-image` and uses the `MYSQL_CNF` environment variable to set the MySQL configuration. **Service:** ```yaml apiVersion: v1 kind: Service metadata: name: mysql spec: selector: app: mysql ports: - name: mysql port: 3306 targetPort: 3306 persistentVolumeClaim: claimName: mysql-pvc ``` This Service exposes the `mysql` container's port 3306 and provides a persistent volume (`mysql-pvc`) for the database data. **Ingress:** ```yaml apiVersion: networking.k8s.io/v1beta1 kind: Ingress metadata: name: mysql-ingress spec: rules: - host: your-ingress-hostname.com http: paths: - path: / backend: serviceName: mysql servicePort: 3306 ``` This Ingress resource routes incoming requests to the `mysql` Service's port 3306. **ConfigMap:** ```yaml apiVersion: v1 kind: ConfigMap metadata: name: mysql-cnf data: cnf: | [mysql] no-auto-rehash [mysqld] skip-host-cache skip-name-resolve max_connections=1000 lower_case_table_names=0 default-time-zone='+08:00' sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' log_timestamps='SYSTEM' binlog_expire_logs_seconds = 2 innodb_flush_log_at_trx_commit=2 group_concat_max_len=1024 ``` This ConfigMap contains the MySQL configuration file (`cnf`) with various settings and values. --- client-k8s.yaml | 458 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 458 insertions(+) create mode 100644 client-k8s.yaml diff --git a/client-k8s.yaml b/client-k8s.yaml new file mode 100644 index 0000000..162b42c --- /dev/null +++ b/client-k8s.yaml @@ -0,0 +1,458 @@ + +--- +kind: Deployment +apiVersion: apps/v1 +metadata: + name: wu-lazy-cloud-heartbeat-local-client-start + namespace: default + labels: + k8s.kuboard.cn/layer: monitor + k8s.kuboard.cn/name: wu-lazy-cloud-heartbeat-local-client-start + annotations: + k8s.kuboard.cn/displayName: 内网穿透服务端(云下) +spec: + replicas: 1 + selector: + matchLabels: + k8s.kuboard.cn/layer: monitor + k8s.kuboard.cn/name: wu-lazy-cloud-heartbeat-local-client-start + template: + metadata: + creationTimestamp: null + labels: + k8s.kuboard.cn/layer: monitor + k8s.kuboard.cn/name: wu-lazy-cloud-heartbeat-local-client-start + annotations: + kubectl.kubernetes.io/restartedAt: '2025-01-16T22:39:39+08:00' + spec: + containers: + - name: wu-lazy-cloud-heartbeat-local-client-start + image: >- + registry.cn-hangzhou.aliyuncs.com/wu-lazy/wu-lazy-cloud-heartbeat-client-start:1.3.0-JDK17-SNAPSHOT + env: + - name: spring.lazy.netty.client.inet-host + value: 124.222.48.62 + - name: spring.lazy.netty.client.inet-port + value: '30560' + - name: spring.lazy.netty.client.client-id + value: tencent + - name: JAVA_OPTS + value: '-Xms32m -Xmx64m' + - name: logging1.level.root + value: DEBUG + resources: {} + terminationMessagePath: /dev/termination-log + terminationMessagePolicy: File + imagePullPolicy: Always + securityContext: + privileged: true + runAsUser: 0 + restartPolicy: Always + terminationGracePeriodSeconds: 30 + dnsPolicy: ClusterFirst + securityContext: {} + schedulerName: default-scheduler + strategy: + type: RollingUpdate + rollingUpdate: + maxUnavailable: 25% + maxSurge: 25% + revisionHistoryLimit: 10 + progressDeadlineSeconds: 600 + +--- +kind: StatefulSet +apiVersion: apps/v1 +metadata: + name: cloud-mysql + namespace: default + labels: + k8s.eip.work/layer: db + k8s.eip.work/name: cloud-mysql + k8s.kuboard.cn/name: cloud-mysql + annotations: + analysis.crane.io/replicas-recommendation: | + replicas: 1 + analysis.crane.io/resource-recommendation: | + containers: + - containerName: mysql + target: + cpu: 229m + memory: 2070Mi + k8s.eip.work/displayName: 数据库 + k8s.eip.work/ingress: 'false' + k8s.eip.work/service: NodePort + k8s.eip.work/workload: cloud-mysql + k8s.kuboard.cn/workload: cloud-mysql +spec: + replicas: 0 + selector: + matchLabels: + k8s.eip.work/layer: db + k8s.eip.work/name: cloud-mysql + k8s.kuboard.cn/name: cloud-mysql + template: + metadata: + creationTimestamp: null + labels: + k8s.eip.work/layer: db + k8s.eip.work/name: cloud-mysql + k8s.kuboard.cn/name: cloud-mysql + annotations: + kubectl.kubernetes.io/restartedAt: '2023-10-07T09:38:51+08:00' + spec: + volumes: + - name: mysql-cnf-map + configMap: + name: mysql-cnf + items: + - key: cnf + path: custom.cnf + defaultMode: 420 + - name: tz + hostPath: + path: /usr/share/zoneinfo/Asia/Shanghai + type: File + containers: + - name: mysql + image: 'mysql:8.0.28' + env: + - name: MYSQL_ROOT_PASSWORD + value: wujiawei + resources: + limits: + cpu: 500m + memory: 512Mi + requests: + cpu: 500m + memory: 512Mi + volumeMounts: + - name: mysql-data + mountPath: /var/lib/mysql + - name: mysql-cnf-map + mountPath: /etc/mysql/conf.d/custom.cnf + subPath: custom.cnf + - name: tz + mountPath: /etc/localtime + terminationMessagePath: /dev/termination-log + terminationMessagePolicy: File + imagePullPolicy: IfNotPresent + restartPolicy: Always + terminationGracePeriodSeconds: 30 + dnsPolicy: ClusterFirst + securityContext: {} + schedulerName: default-scheduler + volumeClaimTemplates: + - kind: PersistentVolumeClaim + apiVersion: v1 + metadata: + name: mysql-data + creationTimestamp: null + annotations: + k8s.eip.work/pvcType: Dynamic + spec: + accessModes: + - ReadWriteMany + resources: + requests: + storage: 10Gi + storageClassName: nfs-storage + volumeMode: Filesystem + status: + phase: Pending + serviceName: cloud-mysql + podManagementPolicy: OrderedReady + updateStrategy: + type: RollingUpdate + rollingUpdate: + partition: 0 + revisionHistoryLimit: 10 + persistentVolumeClaimRetentionPolicy: + whenDeleted: Retain + whenScaled: Retain + +--- +kind: Service +apiVersion: v1 +metadata: + name: cloud-mysql + namespace: default + labels: + k8s.eip.work/layer: db + k8s.eip.work/name: cloud-mysql + k8s.kuboard.cn/name: cloud-mysql +spec: + ports: + - name: zmac2s + protocol: TCP + port: 3306 + targetPort: 3306 + nodePort: 30512 + selector: + k8s.eip.work/layer: db + k8s.eip.work/name: cloud-mysql + type: NodePort + sessionAffinity: None + externalTrafficPolicy: Cluster + ipFamilies: + - IPv4 + ipFamilyPolicy: SingleStack + internalTrafficPolicy: Cluster + +--- +kind: Service +apiVersion: v1 +metadata: + name: wu-lazy-cloud-heartbeat-local-client-start + namespace: default + labels: + k8s.kuboard.cn/layer: monitor + k8s.kuboard.cn/name: wu-lazy-cloud-heartbeat-local-client-start +spec: + ports: + - name: net + protocol: TCP + port: 6001 + targetPort: 6001 + - name: nas + protocol: TCP + port: 100 + targetPort: 100 + - name: kuboard + protocol: TCP + port: 101 + targetPort: 101 + - name: netty-client + protocol: TCP + port: 6004 + targetPort: 6004 + - name: nas-web-dav + protocol: TCP + port: 102 + targetPort: 102 + - name: rustdesk + protocol: TCP + port: 103 + targetPort: 103 + - name: nastool + protocol: TCP + port: 104 + targetPort: 104 + - name: jellyfin + protocol: TCP + port: 105 + targetPort: 105 + - name: qb + protocol: TCP + port: 106 + targetPort: 106 + - name: jackett + protocol: TCP + port: 107 + targetPort: 107 + - name: rustdesk-tcp + protocol: TCP + port: 108 + targetPort: 108 + - name: rustdesk-ip-tcp + protocol: TCP + port: 109 + targetPort: 109 + - name: rustdesk-ip-udp + protocol: UDP + port: 109 + targetPort: 109 + - name: nas-ssh + protocol: TCP + port: 110 + targetPort: 110 + selector: + k8s.kuboard.cn/layer: monitor + k8s.kuboard.cn/name: wu-lazy-cloud-heartbeat-local-client-start + type: ClusterIP + sessionAffinity: None + ipFamilies: + - IPv4 + ipFamilyPolicy: SingleStack + internalTrafficPolicy: Cluster + +--- +kind: Ingress +apiVersion: networking.k8s.io/v1 +metadata: + name: wu-lazy-cloud-heartbeat-local-client-start + namespace: default + labels: + k8s.kuboard.cn/layer: monitor + k8s.kuboard.cn/name: wu-lazy-cloud-heartbeat-local-client-start +spec: + ingressClassName: traefik + rules: + - host: net.wu-framework.cn + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: wu-lazy-cloud-heartbeat-local-client-start + port: + number: 6001 + - host: nas.wu-framework.cn + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: wu-lazy-cloud-heartbeat-local-client-start + port: + number: 100 + - host: kuboard.wu-framework.cn + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: wu-lazy-cloud-heartbeat-local-client-start + port: + number: 101 + - host: client.wu-framework.cn + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: wu-lazy-cloud-heartbeat-local-client-start + port: + number: 6004 + - host: nas-dav.wu-framework.cn + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: wu-lazy-cloud-heartbeat-local-client-start + port: + number: 102 + - host: rustdesk.wu-framework.cn + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: wu-lazy-cloud-heartbeat-local-client-start + port: + number: 103 + - host: nastool.wu-framework.cn + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: wu-lazy-cloud-heartbeat-local-client-start + port: + number: 104 + - host: jellyfin.wu-framework.cn + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: wu-lazy-cloud-heartbeat-local-client-start + port: + number: 105 + - host: qb.wu-framework.cn + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: wu-lazy-cloud-heartbeat-local-client-start + port: + number: 106 + - host: jackett.wu-framework.cn + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: wu-lazy-cloud-heartbeat-local-client-start + port: + number: 107 + - host: rustdesk-tcp.wu-framework.cn + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: wu-lazy-cloud-heartbeat-local-client-start + port: + number: 108 + - host: rustdesk-ip.wu-framework.cn + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: wu-lazy-cloud-heartbeat-local-client-start + port: + number: 109 + - host: nas-ssh.wu-framework.cn + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: wu-lazy-cloud-heartbeat-local-client-start + port: + number: 110 + +--- +kind: ConfigMap +apiVersion: v1 +metadata: + name: mysql-cnf + namespace: default +data: + cnf: >- + [mysql] + + no-auto-rehash + + [mysqld] + + skip-host-cache + + skip-name-resolve + + max_connections=1000 + + lower_case_table_names=0 + + default-time-zone='+08:00' + + sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' + + log_timestamps='SYSTEM' + + slow_query_log=ON + + + binlog_expire_logs_seconds = 2 + + innodb_flush_log_at_trx_commit=2 + + group_concat_max_len=1024 +