欢迎来到飞鸟慕鱼博客,开始您的技术之旅!
当前位置: 首页知识笔记正文

k8s 部署nacos,k8s部署kibana

终极管理员 知识笔记 112阅读

nacos2.2.0集群部署。nacos-headless内部集群端口服务nacos-service为了方便ingress转发提供给用户web界面操作requiredDuringSchedulingIgnoredDuringExecution强制反亲和禁止同一个节点部署nacos实列。

1、数据库导入nacos的sql

# 创建数据库create database nacos_config character set utf8mb4 collate utf8mb4_general_ci;# 创建用户create user nacos_config% identified with mysql_native_password by nacos_config_dbYangdouya;# 授权grant all privileges on nacos_config.* to nacos_config%;

sql脚本mysql-schema.sql
注意不同版本nacos的数据表字段有差异可以在安装前从git中按照版本获取nacos sql脚本获取地址

/* * Copyright 1999-2018 Alibaba Group Holding Ltd. * * Licensed under the Apache License, Version 2.0 (the License); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * *       * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an AS IS BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. *//******************************************//*   数据库全名  nacos_config   *//*   表名称  config_info   *//******************************************/CREATE TABLE config_info (  id bigint(20) NOT NULL AUTO_INCREMENT COMMENT id,  data_id varchar(255) NOT NULL COMMENT data_id,  group_id varchar(128) DEFAULT NULL,  content longtext NOT NULL COMMENT content,  md5 varchar(32) DEFAULT NULL COMMENT md5,  gmt_create datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 创建时间,  gmt_modified datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 修改时间,  src_user text COMMENT source user,  src_ip varchar(50) DEFAULT NULL COMMENT source ip,  app_name varchar(128) DEFAULT NULL,  tenant_id varchar(128) DEFAULT  COMMENT 租户字段,  c_desc varchar(256) DEFAULT NULL,  c_use varchar(64) DEFAULT NULL,  effect varchar(64) DEFAULT NULL,  type varchar(64) DEFAULT NULL,  c_schema text,  encrypted_data_key text NOT NULL COMMENT 秘钥,  PRIMARY KEY (id),  UNIQUE KEY uk_configinfo_datagrouptenant (data_id,group_id,tenant_id)) ENGINEInnoDB DEFAULT CHARSETutf8 COLLATEutf8_bin COMMENTconfig_info;/******************************************//*   数据库全名  nacos_config   *//*   表名称  config_info_aggr   *//******************************************/CREATE TABLE config_info_aggr (  id bigint(20) NOT NULL AUTO_INCREMENT COMMENT id,  data_id varchar(255) NOT NULL COMMENT data_id,  group_id varchar(128) NOT NULL COMMENT group_id,  datum_id varchar(255) NOT NULL COMMENT datum_id,  content longtext NOT NULL COMMENT 内容,  gmt_modified datetime NOT NULL COMMENT 修改时间,  app_name varchar(128) DEFAULT NULL,  tenant_id varchar(128) DEFAULT  COMMENT 租户字段,  PRIMARY KEY (id),  UNIQUE KEY uk_configinfoaggr_datagrouptenantdatum (data_id,group_id,tenant_id,datum_id)) ENGINEInnoDB DEFAULT CHARSETutf8 COLLATEutf8_bin COMMENT增加租户字段;/******************************************//*   数据库全名  nacos_config   *//*   表名称  config_info_beta   *//******************************************/CREATE TABLE config_info_beta (  id bigint(20) NOT NULL AUTO_INCREMENT COMMENT id,  data_id varchar(255) NOT NULL COMMENT data_id,  group_id varchar(128) NOT NULL COMMENT group_id,  app_name varchar(128) DEFAULT NULL COMMENT app_name,  content longtext NOT NULL COMMENT content,  beta_ips varchar(1024) DEFAULT NULL COMMENT betaIps,  md5 varchar(32) DEFAULT NULL COMMENT md5,  gmt_create datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 创建时间,  gmt_modified datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 修改时间,  src_user text COMMENT source user,  src_ip varchar(50) DEFAULT NULL COMMENT source ip,  tenant_id varchar(128) DEFAULT  COMMENT 租户字段,  encrypted_data_key text NOT NULL COMMENT 秘钥,  PRIMARY KEY (id),  UNIQUE KEY uk_configinfobeta_datagrouptenant (data_id,group_id,tenant_id)) ENGINEInnoDB DEFAULT CHARSETutf8 COLLATEutf8_bin COMMENTconfig_info_beta;/******************************************//*   数据库全名  nacos_config   *//*   表名称  config_info_tag   *//******************************************/CREATE TABLE config_info_tag (  id bigint(20) NOT NULL AUTO_INCREMENT COMMENT id,  data_id varchar(255) NOT NULL COMMENT data_id,  group_id varchar(128) NOT NULL COMMENT group_id,  tenant_id varchar(128) DEFAULT  COMMENT tenant_id,  tag_id varchar(128) NOT NULL COMMENT tag_id,  app_name varchar(128) DEFAULT NULL COMMENT app_name,  content longtext NOT NULL COMMENT content,  md5 varchar(32) DEFAULT NULL COMMENT md5,  gmt_create datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 创建时间,  gmt_modified datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 修改时间,  src_user text COMMENT source user,  src_ip varchar(50) DEFAULT NULL COMMENT source ip,  PRIMARY KEY (id),  UNIQUE KEY uk_configinfotag_datagrouptenanttag (data_id,group_id,tenant_id,tag_id)) ENGINEInnoDB DEFAULT CHARSETutf8 COLLATEutf8_bin COMMENTconfig_info_tag;/******************************************//*   数据库全名  nacos_config   *//*   表名称  config_tags_relation   *//******************************************/CREATE TABLE config_tags_relation (  id bigint(20) NOT NULL COMMENT id,  tag_name varchar(128) NOT NULL COMMENT tag_name,  tag_type varchar(64) DEFAULT NULL COMMENT tag_type,  data_id varchar(255) NOT NULL COMMENT data_id,  group_id varchar(128) NOT NULL COMMENT group_id,  tenant_id varchar(128) DEFAULT  COMMENT tenant_id,  nid bigint(20) NOT NULL AUTO_INCREMENT,  PRIMARY KEY (nid),  UNIQUE KEY uk_configtagrelation_configidtag (id,tag_name,tag_type),  KEY idx_tenant_id (tenant_id)) ENGINEInnoDB DEFAULT CHARSETutf8 COLLATEutf8_bin COMMENTconfig_tag_relation;/******************************************//*   数据库全名  nacos_config   *//*   表名称  group_capacity   *//******************************************/CREATE TABLE group_capacity (  id bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT 主键ID,  group_id varchar(128) NOT NULL DEFAULT  COMMENT Group ID空字符表示整个集群,  quota int(10) unsigned NOT NULL DEFAULT 0 COMMENT 配额0表示使用默认值,  usage int(10) unsigned NOT NULL DEFAULT 0 COMMENT 使用量,  max_size int(10) unsigned NOT NULL DEFAULT 0 COMMENT 单个配置大小上限单位为字节0表示使用默认值,  max_aggr_count int(10) unsigned NOT NULL DEFAULT 0 COMMENT 聚合子配置最大个数0表示使用默认值,  max_aggr_size int(10) unsigned NOT NULL DEFAULT 0 COMMENT 单个聚合数据的子配置大小上限单位为字节0表示使用默认值,  max_history_count int(10) unsigned NOT NULL DEFAULT 0 COMMENT 最大变更历史数量,  gmt_create datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 创建时间,  gmt_modified datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 修改时间,  PRIMARY KEY (id),  UNIQUE KEY uk_group_id (group_id)) ENGINEInnoDB DEFAULT CHARSETutf8 COLLATEutf8_bin COMMENT集群、各Group容量信息表;/******************************************//*   数据库全名  nacos_config   *//*   表名称  his_config_info   *//******************************************/CREATE TABLE his_config_info (  id bigint(20) unsigned NOT NULL,  nid bigint(20) unsigned NOT NULL AUTO_INCREMENT,  data_id varchar(255) NOT NULL,  group_id varchar(128) NOT NULL,  app_name varchar(128) DEFAULT NULL COMMENT app_name,  content longtext NOT NULL,  md5 varchar(32) DEFAULT NULL,  gmt_create datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,  gmt_modified datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,  src_user text,  src_ip varchar(50) DEFAULT NULL,  op_type char(10) DEFAULT NULL,  tenant_id varchar(128) DEFAULT  COMMENT 租户字段,  encrypted_data_key text NOT NULL COMMENT 秘钥,  PRIMARY KEY (nid),  KEY idx_gmt_create (gmt_create),  KEY idx_gmt_modified (gmt_modified),  KEY idx_did (data_id)) ENGINEInnoDB DEFAULT CHARSETutf8 COLLATEutf8_bin COMMENT多租户改造;/******************************************//*   数据库全名  nacos_config   *//*   表名称  tenant_capacity   *//******************************************/CREATE TABLE tenant_capacity (  id bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT 主键ID,  tenant_id varchar(128) NOT NULL DEFAULT  COMMENT Tenant ID,  quota int(10) unsigned NOT NULL DEFAULT 0 COMMENT 配额0表示使用默认值,  usage int(10) unsigned NOT NULL DEFAULT 0 COMMENT 使用量,  max_size int(10) unsigned NOT NULL DEFAULT 0 COMMENT 单个配置大小上限单位为字节0表示使用默认值,  max_aggr_count int(10) unsigned NOT NULL DEFAULT 0 COMMENT 聚合子配置最大个数,  max_aggr_size int(10) unsigned NOT NULL DEFAULT 0 COMMENT 单个聚合数据的子配置大小上限单位为字节0表示使用默认值,  max_history_count int(10) unsigned NOT NULL DEFAULT 0 COMMENT 最大变更历史数量,  gmt_create datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 创建时间,  gmt_modified datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 修改时间,  PRIMARY KEY (id),  UNIQUE KEY uk_tenant_id (tenant_id)) ENGINEInnoDB DEFAULT CHARSETutf8 COLLATEutf8_bin COMMENT租户容量信息表;CREATE TABLE tenant_info (  id bigint(20) NOT NULL AUTO_INCREMENT COMMENT id,  kp varchar(128) NOT NULL COMMENT kp,  tenant_id varchar(128) default  COMMENT tenant_id,  tenant_name varchar(128) default  COMMENT tenant_name,  tenant_desc varchar(256) DEFAULT NULL COMMENT tenant_desc,  create_source varchar(32) DEFAULT NULL COMMENT create_source,  gmt_create bigint(20) NOT NULL COMMENT 创建时间,  gmt_modified bigint(20) NOT NULL COMMENT 修改时间,  PRIMARY KEY (id),  UNIQUE KEY uk_tenant_info_kptenantid (kp,tenant_id),  KEY idx_tenant_id (tenant_id)) ENGINEInnoDB DEFAULT CHARSETutf8 COLLATEutf8_bin COMMENTtenant_info;CREATE TABLE users (username varchar(50) NOT NULL PRIMARY KEY,password varchar(500) NOT NULL,enabled boolean NOT NULL);CREATE TABLE roles (username varchar(50) NOT NULL,role varchar(50) NOT NULL,UNIQUE INDEX idx_user_role (username ASC, role ASC) USING BTREE);CREATE TABLE permissions (    role varchar(50) NOT NULL,    resource varchar(255) NOT NULL,    action varchar(8) NOT NULL,    UNIQUE INDEX uk_role_permission (role,resource,action) USING BTREE);INSERT INTO users (username, password, enabled) VALUES (nacos, $2a$10$EuWPZHzz32dJN7jexM34MOeYirDdFAZm2kuWj7VEOJhhZkDrxfvUu, TRUE);INSERT INTO roles (username, role) VALUES (nacos, ROLE_ADMIN);

2、部署nacos集群
vi nacos-deployment.yaml

## nacos-headless  集群内部服务apiVersion: v1kind: Servicemetadata:  name: nacos-headless  labels:    app: nacos-headless spec:  ports:    - port: 8848      name: server      targetPort: 8848    - port: 9848      name: client-rpc      targetPort: 9848    - port: 9849      name: raft-rpc      targetPort: 9849    - port: 7848      name: old-raft-rpc      targetPort: 7848  selector:    app: nacos---apiVersion: v1kind: ConfigMapmetadata:  name: nacos-cmdata:  mysql.host: 1.50.152.10  mysql.db.name: nacos_config  mysql.port: 3306  mysql.user: nacos_config  mysql.password: nacos_config_dbYangdouya---# 执行部署apiVersion: apps/v1kind: StatefulSetmetadata:  name: nacosspec:  serviceName: nacos-headless  replicas: 3  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      containers:        - name: k8snacos          imagePullPolicy: Always          image: nacos/nacos-server:v2.2.0          resources:            requests:              memory: 1Gi              cpu: 500m          ports:            - containerPort: 8848              name: client            - containerPort: 9848              name: client-rpc            - containerPort: 9849              name: raft-rpc            - containerPort: 7848              name: old-raft-rpc          env:            - name: NACOS_REPLICAS              value: 3            - name: MYSQL_SERVICE_HOST              valueFrom:                configMapKeyRef:                  name: nacos-cm                  key: mysql.host            - 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: MODE              value: cluster            - name: NACOS_SERVER_PORT              value: 8848            - name: PREFER_HOST_MODE              value: hostname            - name: SPRING_DATASOURCE_PLATFORM              value: mysql            - name: NACOS_SERVERS              value: nacos-0.nacos-headless.default.svc.cluster.local:8848 nacos-1.nacos-headless.default.svc.cluster.local:8848 nacos-2.nacos-headless.default.svc.cluster.local:8848  selector:    matchLabels:      app: nacos      ---#  部署普通Serviceingress-nginx使用apiVersion: v1kind: Servicemetadata:  name: nacos-service  namespace: default  annotations:    nginx.ingress.kubernetes.io/affinity: true    nginx.ingress.kubernetes.io/session-cookie-name: backend    nginx.ingress.kubernetes.io/load-balancer-method: drrspec:  selector:    app: nacos  ports:    - name: web      port: 80      targetPort: 8848--- # 配置ingressapiVersion: networking.k8s.io/v1kind: Ingressmetadata:  name: ingress-nacos-http  annotations:    kubernetes.io/ingress.class: nginxspec:  rules:  - host: nacos-web.yunzaixian.top # 访问域名    http:      paths:      - path: /        pathType: Prefix    # 前缀匹配        backend:          service:            name: nacos-service            port:              number: 80

注意事项
1、nacos集群搭建保证高可用禁止部署在同一个节点需要配置强制反亲和requiredDuringSchedulingIgnoredDuringExecution
2、集群内部服务地址配置使用StatefulSet方式部署将实列编排为xx-0xx-1, xx-2, xx-n在配置集群地址上按照 xx-n:acos-headless.default.svc.cluster.local:8848 配置集权dns服务
name: NACOS_SERVERS
value: “nacos-0.nacos-headless.default.svc.cluster.local:8848 nacos-1.nacos-headless.default.svc.cluster.local:8848 nacos-2.nacos-headless.default.svc.cluster.local:8848”

外部访问ingress-nginx部署安装提供外部访问

部署脚本nacos-deployment.yaml直接下载

完成

标签:
声明:无特别说明,转载请标明本文来源!