K8S部署Mysql.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: mysql
  namespace: development
spec:
  replicas: 2
  template:
    metadata:
      labels:
        name: mysql
    spec:
      containers:
      - name: mysql
        image: mysql
        imagePullPolicy: Always
        ports:
        - containerPort: 3306
        environment:
          MYSQL_ROOT_PASSWORD:123456
---
apiVersion: v1
kind: Service
metadata:
  name: mysql
  namespace: development
spec:
  type: NodePort
  ports: 
  - port: 3306
    nodePort: 10306
    targetPort: 3306
  selector:
    name: mysql
访问数据库:IP+10306端口
如果您想在 Kubernetes 上部署 Nacos 并使用外部 MySQL 数据库,则可以使用 StatefulSet 来实现高可用性的 Nacos 集群。这里提供一个简单的示例 YAML 文件,您可以根据自己的需求进行修改: ```yaml apiVersion: v1 kind: Service metadata: name: nacos-mysql labels: app: nacos spec: ports: - port: 3306 name: mysql selector: app: nacos tier: mysql clusterIP: None --- apiVersion: v1 kind: Service metadata: name: nacos labels: app: nacos spec: ports: - name: http port: 8848 targetPort: 8848 selector: app: nacos tier: server clusterIP: None --- apiVersion: apps/v1 kind: StatefulSet metadata: name: nacos spec: serviceName: nacos replicas: 3 selector: matchLabels: app: nacos tier: server template: metadata: labels: app: nacos tier: server spec: containers: - name: nacos image: nacos/nacos-server:latest env: - name: MODE value: "cluster" - name: MYSQL_SERVICE_HOST value: nacos-mysql - name: MYSQL_SERVICE_PORT value: "3306" - name: MYSQL_DATABASE value: "nacos" - name: MYSQL_USER value: "nacos" - name: MYSQL_PASSWORD value: "nacos" ports: - containerPort: 8848 name: http volumeMounts: - name: nacos-data mountPath: /home/nacos/data - name: nacos-sidecar image: nacos/nacos-sidecar:latest env: - name: NACOS_SERVER_ADDR value: "nacos:8848" - name: NACOS_NAMESPACE value: "nacos" - name: NACOS_LOG_DIR value: "/home/nacos/logs" - name: NACOS_LOG_LEVEL value: "info" - name: NACOS_CONFIG_DIR value: "/home/nacos/nacos-config" volumeMounts: - name: nacos-data mountPath: /home/nacos/data - name: nacos-config mountPath: /home/nacos/nacos-config - name: nacos-log mountPath: /home/nacos/logs - name: nacos-nginx image: nginx:1.19.2-alpine ports: - containerPort: 80 name: http volumeMounts: - name: nginx-conf mountPath: /etc/nginx/conf.d - name: nacos-data mountPath: /usr/share/nginx/html readOnly: true volumes: - name: nginx-conf configMap: name: nginx-conf items: - key: nacos.conf path: default.conf - name: nacos-data emptyDir: {} - name: nacos-config configMap: name: nacos-config - name: nacos-log emptyDir: {} volumeClaimTemplates: - metadata: name: nacos-data spec: accessModes: - ReadWriteOnce resources: requests: storage: 1Gi ``` 上面的 YAML 文件中定义了三个部分: - `Service`:定义了一个 `nacos-mysql` 的 MySQL 服务,使用了 `None` 类型的 ClusterIP,表示这个服务只能在 Kubernetes 集群内部被访问,不需要提供外部访问。 - `StatefulSet`:定义了一个名为 `nacos` 的 StatefulSet,使用了 `nacos-mysql` 服务作为 MySQL 数据库,并使用了三个副本实例来实现高可用性。其中的模板定义了三个容器实例:`nacos`、`nacos-sidecar` 和 `nacos-nginx`,分别用于启动 Nacos 服务、Sidecar 代理和 Nginx 反向代理。 - `ConfigMap`:定义了两个 ConfigMap,分别用于存储 Nginx 配置文件和 Nacos 配置文件。 注意,该 YAML 文件中使用了一些默认的配置参数,您需要根据自己的需求进行修改,例如 MySQL 的用户名、密码、数据库名称等。此外,还需要创建 `nginx-conf` 和 `nacos-config` 两个 ConfigMap,分别用于存储 Nginx 配置文件和 Nacos 配置文件。您可以根据自己的需求定义这两个 ConfigMap。 最后,您可以使用 `kubectl apply -f <yaml-file>` 命令来部署这个 YAML 文件,部署完毕后,您可以使用 `kubectl get pods` 和 `kubectl get svc` 命令来查看您的 Nacos 集群的状态和服务的 IP 地址。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值