1. 准备阶段
nacos-server 镜像
yaml 文件
mysql 数据库
使用NodePort yaml
#deploy apiVersion: apps/v1 kind: Deployment #kind: StatefulSet metadata: name: nacos-server namespace: test spec: selector: matchLabels: app: nacos-server replicas: 1 template: metadata: labels: app: nacos-server spec: nodeSelector: kubernetes.io/hostname: k8s-node1#标签筛选,固定哪个节点上安装 emptyDir: {} containers: - name: nacos-server image: nacos-server:1.3.1 imagePullPolicy: Always env: //环境变量设置 - name: MODE value: "standalone" - name: MYSQL_SERVICE_HOST value: "127.0.0.1" //数据库地址 - name: MYSQL_SERVICE_DB_NAME value: "nacos-server" - name: MYSQL_SERVICE_USER value: "root" - name: MYSQL_SERVICE_PASSWORD value: "123456" - name: NACOS_AUTH_CACHE_ENABLE value: "true" ports: - containerPort: 8848 resources: limits: cpu: 0 memory: 0 requests: cpu: 0 memory: 0 --- #service apiVersion: v1 kind: Service metadata: name: nacos-server namespace: test spec: type: NodePort ports: - port: 80 protocol: TCP targetPort: 8848 nodePort: 30099 selector: app: nacos-server ---
参数解析 可通过环境变量注入: 表格引自https://www.cnblogs.com/allennote/articles/12459907.html
name | description | option |
---|---|---|
MODE | cluster模式/standalone模式 | cluster/standalone default cluster |
NACOS_SERVERS | nacos cluster地址 | eg. ip1,ip2,ip3 |
PREFER_HOST_MODE | 是否支持hostname | hostname/ip default ip |
NACOS_SERVER_PORT | nacos服务器端口 | default 8848 |
NACOS_SERVER_IP | 多网卡下的自定义nacos服务器IP | |
SPRING_DATASOURCE_PLATFORM | standalone 支持 mysql | mysql / empty default empty |
MYSQL_MASTER_SERVICE_HOST | mysql 主节点host | |
MYSQL_MASTER_SERVICE_PORT | mysql 主节点端口 | default : 3306 |
MYSQL_MASTER_SERVICE_DB_NAME | mysql 主节点数据库 | |
MYSQL_MASTER_SERVICE_USER | 数据库用户名 | |
MYSQL_MASTER_SERVICE_PASSWORD | 数据库密码 | |
MYSQL_SLAVE_SERVICE_HOST | mysql从节点host | |
MYSQL_SLAVE_SERVICE_PORT | mysql从节点端口 | default :3306 |
MYSQL_DATABASE_NUM | 数据库数量 | default :2 |
JVM_XMS | -Xms | default :2g |
JVM_XMX | -Xmx | default :2g |
JVM_XMN | -Xmn | default :1g |
JVM_MS | -XX:MetaspaceSize | default :128m |
JVM_MMS | -XX:MaxMetaspaceSize | default :320m |
NACOS_DEBUG | 开启远程调试 | y/n default :n |
TOMCAT_ACCESSLOG_ENABLED | server.tomcat.accesslog.enabled | default :false |
使用 ingress 方式设置 集群 (此集群为k8s模式集群 非nacos提供的标准集群模式 如需相互监听请参考nacos 官方部署模式)
#deploy apiVersion: apps/v1 kind: Deployment #kind: StatefulSet metadata: name: nacos-server namespace: test spec: selector: matchLabels: app: nacos-server replicas: 2 //部署多份nacos template: metadata: labels: app: nacos-server spec: emptyDir: {} containers: - name: nacos-server image: nacos-server:1.3.1 imagePullPolicy: Always env: - name: MODE value: "standalone" - name: MYSQL_SERVICE_HOST value: "10.90.16.129" - name: MYSQL_SERVICE_DB_NAME value: "nacos-server" - name: MYSQL_SERVICE_USER value: "root" - name: MYSQL_SERVICE_PASSWORD value: "123456" - name: NACOS_AUTH_CACHE_ENABLE value: "true" ports: - containerPort: 8848 resources: limits: cpu: 0 memory: 0 requests: cpu: 0 memory: 0 --- #service apiVersion: v1 kind: Service metadata: name: nacos-server namespace: test spec: ports: - port: 80 protocol: TCP targetPort: 8848 selector: app: nacos-server --- apiVersion: extensions/v1beta1 kind: Ingress metadata: name: nacos-server namespace: test spec: rules: - host: nacos.test.com http: paths: - path: / backend: serviceName: nacos-server servicePort: 80
2 yaml执行
yaml 文件名为 nacos-test.yaml
执行命令为
kubectl apply -f nacos-test.yaml
原文:https://www.cnblogs.com/7215217758991l/p/13503175.html