k8s 部署nacos集群-yaml文库-官方版

此部署仅作为参考,对研究过K8S的人来说这是福利。

nacos需要Mysql数据库且需要导入官方的SQL文件。

Wget https://github.com/alibaba/nacos/blob/master/distribution/conf/nacos-mysql.sql 

SQL语句:

CREATE DATABAES nacos_confg;

USE nacos_config;

SOURCE /var/lib/mysql/nacos-mysql.sql

PS:本档案实际测试有效,加粗部分需要根据自身环境进行配置修改。

1.Mysql-pvc.yaml

apiVersion: v1

kind: PersistentVolumeClaim

metadata:

  name: mysql-pvc-data

  namespace: pulic-service

spec:

  accessModes:

  - ReadWriteOnce

  resources:

    requests:

      storage: 10Gi

  storageClassName: rook-cephfs

---

apiVersion: v1

kind: PersistentVolumeClaim

metadata:

  name: mysql-pvc-conf

  namespace: pulic-service

spec:

  accessModes:

  - ReadWriteOnce

  resources:

    requests:

      storage: 10Gi

  storageClassName: rook-cephfs

2.Mysql-Deploy.yaml

apiVersion: apps/v1

kind: Deployment

metadata:

  labels:

    app: mysql #为该Deployment设置key为app,value为mysql的标签

  name: mysql

  namespace: pulic-service

spec:

  replicas: 1 #副本数量

  selector: #标签选择器,与上面的标签共同作用

    matchLabels: #选择包含标签app:nginx的资源

      app: mysql

  template: #这是选择或创建的Pod的模板

    metadata: #Pod的元数据

      labels: #Pod的标签,上面的selector即选择包含标签app:nginx的Pod

        app: mysql

    spec: #期望Pod实现的功能(即在pod中部署)

      containers: #生成container,与docker中的container是同一种

      - name: mysql

        image: mysql:5.7 #使用镜像mysql: 创建container,该container默认3306端口可访问

        ports:

        - containerPort: 3306  # 开启本容器的3306端口可访问

        env:

        - name: MYSQL_ROOT_PASSWORD

          value: VMware1!

        volumeMounts: #挂载持久存储卷

        - name: mysql-data  #挂载设备的名字,与volumes[*].name 需要对应

          mountPath: /var/lib/mysql  #挂载到容器的某个路径下

        - name: mysql-dev-conf

          mountPath: /etc/mysql

      volumes:

      - name: mysql-data  #和上面保持一致 这是本地的文件路径,上面是容器内部的路径

        persistentVolumeClaim:

          claimName: mysql-pvc-data

      - name: mysql-dev-conf

        persistentVolumeClaim:

          claimName: mysql-pvc-conf

3.Mysql-service.yaml

apiVersion: v1

kind: Service

metadata:

  labels:

  app: mysql

  name: mysql

  namespace: pulic-service

spec:

  ports:

  - port: 3306 #写nginx本身端口

    name: mysql

    protocol: TCP

    targetPort: 3306 # 容器nginx对外开放的端口 上面的dm已经指定了

    nodePort: 31090 #外网访问的端口

  selector:

    app: mysql    #选择包含标签app:nginx的资源

  type: NodePort

2.nacos-yaml

---

apiVersion: v1

kind: Service

metadata:

  name: nacos-headless

  namespace: pulic-service

  labels:

    app: nacos

  annotations:

    service.alpha.kubernetes.io/tolerate-unready-endpoints: "true"

spec:

  ports:

    - port: 8848

      name: server

      targetPort: 8848

    - port: 9848

      name: client-rpc

      targetPort: 9848

    - port: 9849

      name: raft-rpc

      targetPort: 9849

    ## 兼容1.4.x版本的选举端口

    - port: 7848

      name: old-raft-rpc

      targetPort: 7848

  clusterIP: None

  selector:

    app: nacos

---

apiVersion: v1

kind: ConfigMap

metadata:

  name: nacos-cm

  namespace: pulic-service

data:

  mysql.db.name: "nacos_config"

  mysql.port: "3306"

  mysql.user: "root"

  mysql.password: "VMware1!"

  MYSQL_SERVICE_HOST: "10.99.218.252"

  SPRING_DATASOURCE_PLATFORM: "mysql"

---

apiVersion: apps/v1

kind: StatefulSet

metadata:

  name: nacos

  namespace: pulic-service

spec:

  serviceName: nacos-headless

  replicas: 2

  template:

    metadata:

      labels:

        app: nacos

      annotations:

        pod.alpha.kubernetes.io/initialized: "true"

    spec:

      affinity:

        podAntiAffinity:

          requiredDuringSchedulingIgnoredDuringExecution:

            - labelSelector:

                matchExpressions:

                  - key: "app"

                    operator: In

                    values:

                      - nacos

              topologyKey: "kubernetes.io/hostname"

      initContainers:

        - name: peer-finder-plugin-install

          image: nacos/nacos-peer-finder-plugin:1.1

          imagePullPolicy: Always

          volumeMounts:

            - mountPath: /home/nacos/plugins/peer-finder

              name: data

              subPath: peer-finder

      containers:

        - name: nacos

          imagePullPolicy: Always

          image: nacos/nacos-server:latest

          resources:

            requests:

              memory: "2Gi"

              cpu: "500m"

          ports:

            - containerPort: 8848

              name: client-port

            - containerPort: 9848

              name: client-rpc

            - containerPort: 9849

              name: raft-rpc

            - containerPort: 7848

              name: old-raft-rpc

          env:

            - name: NACOS_REPLICAS

              value: "2"

            - name: SERVICE_NAME

              value: "nacos-headless"

            - name: DOMAIN_NAME

              value: "cluster.local"

            - name: POD_NAMESPACE

              valueFrom:

                fieldRef:

                  apiVersion: v1

                  fieldPath: metadata.namespace

            - name: MYSQL_SERVICE_DB_NAME

              valueFrom:

                configMapKeyRef:

                  name: nacos-cm

                  key: mysql.db.name

            - name: MYSQL_SERVICE_PORT

              valueFrom:

                configMapKeyRef:

                  name: nacos-cm

                  key: mysql.port

            - name: MYSQL_SERVICE_USER

              valueFrom:

                configMapKeyRef:

                  name: nacos-cm

                  key: mysql.user

            - name: MYSQL_SERVICE_PASSWORD

              valueFrom:

                configMapKeyRef:

                  name: nacos-cm

                  key: mysql.password

            - name: NACOS_SERVER_PORT

              value: "8848"

            - name: NACOS_APPLICATION_PORT

              value: "8848"

            - name: PREFER_HOST_MODE

              value: "hostname"

            - name: MYSQL_SERVICE_HOST

              valueFrom:

                configMapKeyRef:

                  name: nacos-cm

                  key: MYSQL_SERVICE_HOST

            - name: SPRING_DATASOURCE_PLATFORM

              valueFrom:

                configMapKeyRef:

                  name: nacos-cm

                  key: SPRING_DATASOURCE_PLATFORM

          volumeMounts:

            - name: data

              mountPath: /home/nacos/plugins/peer-finder

              subPath: peer-finder

            - name: data

              mountPath: /home/nacos/data

              subPath: data

            - name: data

              mountPath: /home/nacos/logs

              subPath: logs

  volumeClaimTemplates:

    - metadata:

        name: data

      spec:

        accessModes: [ "ReadWriteMany" ]

        storageClassName: "rook-cephfs"

        resources:

          requests:

            storage: 20Gi

  selector:

    matchLabels:

      app: nacos

3.nacos-ingress.yaml

apiVersion: networking.k8s.io/v1

kind: Ingress

metadata:

  name: nacos-headless

  namespace: pulic-service

spec:

  ingressClassName: nginx

  rules:

  - host: nacos-web.nacos-demo.com

    http:

      paths:

      - path: /nacos

        pathType: Prefix

        backend:

          service:

            name: nacos-headless

            port:

              name: server

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,390评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,821评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,632评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,170评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,033评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,098评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,511评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,204评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,479评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,572评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,341评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,213评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,576评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,893评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,171评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,486评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,676评论 2 335

推荐阅读更多精彩内容