1、k8s部署Nacos

nacos对k8s有插件的支持
这里参考nacos在github仓库部署实例

  1. git clone https://github.com/nacos-group/nacos-k8s.git

1、部署nfs

此处略

2、部署mysql数据库

nacos支持 5.7和8.0版本mysql数据库
此处我使用云服务器单独部署的mysql8.0…略
数据库初始化语句位置 https://github.com/alibaba/nacos/blob/master/distribution/conf/nacos-mysql.sql

  1. /*
  2. * Copyright 1999-2018 Alibaba Group Holding Ltd.
  3. *
  4. * Licensed under the Apache License, Version 2.0 (the "License");
  5. * you may not use this file except in compliance with the License.
  6. * You may obtain a copy of the License at
  7. *
  8. * http://www.apache.org/licenses/LICENSE-2.0
  9. *
  10. * Unless required by applicable law or agreed to in writing, software
  11. * distributed under the License is distributed on an "AS IS" BASIS,
  12. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13. * See the License for the specific language governing permissions and
  14. * limitations under the License.
  15. */
  16. /******************************************/
  17. /* 数据库全名 = nacos_config */
  18. /* 表名称 = config_info */
  19. /******************************************/
  20. CREATE TABLE `config_info` (
  21. `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
  22. `data_id` varchar(255) NOT NULL COMMENT 'data_id',
  23. `group_id` varchar(255) DEFAULT NULL,
  24. `content` longtext NOT NULL COMMENT 'content',
  25. `md5` varchar(32) DEFAULT NULL COMMENT 'md5',
  26. `gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  27. `gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
  28. `src_user` text COMMENT 'source user',
  29. `src_ip` varchar(50) DEFAULT NULL COMMENT 'source ip',
  30. `app_name` varchar(128) DEFAULT NULL,
  31. `tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段',
  32. `c_desc` varchar(256) DEFAULT NULL,
  33. `c_use` varchar(64) DEFAULT NULL,
  34. `effect` varchar(64) DEFAULT NULL,
  35. `type` varchar(64) DEFAULT NULL,
  36. `c_schema` text,
  37. `encrypted_data_key` text NOT NULL COMMENT '秘钥',
  38. PRIMARY KEY (`id`),
  39. UNIQUE KEY `uk_configinfo_datagrouptenant` (`data_id`,`group_id`,`tenant_id`)
  40. ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='config_info';
  41. /******************************************/
  42. /* 数据库全名 = nacos_config */
  43. /* 表名称 = config_info_aggr */
  44. /******************************************/
  45. CREATE TABLE `config_info_aggr` (
  46. `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
  47. `data_id` varchar(255) NOT NULL COMMENT 'data_id',
  48. `group_id` varchar(255) NOT NULL COMMENT 'group_id',
  49. `datum_id` varchar(255) NOT NULL COMMENT 'datum_id',
  50. `content` longtext NOT NULL COMMENT '内容',
  51. `gmt_modified` datetime NOT NULL COMMENT '修改时间',
  52. `app_name` varchar(128) DEFAULT NULL,
  53. `tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段',
  54. PRIMARY KEY (`id`),
  55. UNIQUE KEY `uk_configinfoaggr_datagrouptenantdatum` (`data_id`,`group_id`,`tenant_id`,`datum_id`)
  56. ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='增加租户字段';
  57. /******************************************/
  58. /* 数据库全名 = nacos_config */
  59. /* 表名称 = config_info_beta */
  60. /******************************************/
  61. CREATE TABLE `config_info_beta` (
  62. `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
  63. `data_id` varchar(255) NOT NULL COMMENT 'data_id',
  64. `group_id` varchar(128) NOT NULL COMMENT 'group_id',
  65. `app_name` varchar(128) DEFAULT NULL COMMENT 'app_name',
  66. `content` longtext NOT NULL COMMENT 'content',
  67. `beta_ips` varchar(1024) DEFAULT NULL COMMENT 'betaIps',
  68. `md5` varchar(32) DEFAULT NULL COMMENT 'md5',
  69. `gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  70. `gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
  71. `src_user` text COMMENT 'source user',
  72. `src_ip` varchar(50) DEFAULT NULL COMMENT 'source ip',
  73. `tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段',
  74. `encrypted_data_key` text NOT NULL COMMENT '秘钥',
  75. PRIMARY KEY (`id`),
  76. UNIQUE KEY `uk_configinfobeta_datagrouptenant` (`data_id`,`group_id`,`tenant_id`)
  77. ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='config_info_beta';
  78. /******************************************/
  79. /* 数据库全名 = nacos_config */
  80. /* 表名称 = config_info_tag */
  81. /******************************************/
  82. CREATE TABLE `config_info_tag` (
  83. `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
  84. `data_id` varchar(255) NOT NULL COMMENT 'data_id',
  85. `group_id` varchar(128) NOT NULL COMMENT 'group_id',
  86. `tenant_id` varchar(128) DEFAULT '' COMMENT 'tenant_id',
  87. `tag_id` varchar(128) NOT NULL COMMENT 'tag_id',
  88. `app_name` varchar(128) DEFAULT NULL COMMENT 'app_name',
  89. `content` longtext NOT NULL COMMENT 'content',
  90. `md5` varchar(32) DEFAULT NULL COMMENT 'md5',
  91. `gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  92. `gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
  93. `src_user` text COMMENT 'source user',
  94. `src_ip` varchar(50) DEFAULT NULL COMMENT 'source ip',
  95. PRIMARY KEY (`id`),
  96. UNIQUE KEY `uk_configinfotag_datagrouptenanttag` (`data_id`,`group_id`,`tenant_id`,`tag_id`)
  97. ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='config_info_tag';
  98. /******************************************/
  99. /* 数据库全名 = nacos_config */
  100. /* 表名称 = config_tags_relation */
  101. /******************************************/
  102. CREATE TABLE `config_tags_relation` (
  103. `id` bigint(20) NOT NULL COMMENT 'id',
  104. `tag_name` varchar(128) NOT NULL COMMENT 'tag_name',
  105. `tag_type` varchar(64) DEFAULT NULL COMMENT 'tag_type',
  106. `data_id` varchar(255) NOT NULL COMMENT 'data_id',
  107. `group_id` varchar(128) NOT NULL COMMENT 'group_id',
  108. `tenant_id` varchar(128) DEFAULT '' COMMENT 'tenant_id',
  109. `nid` bigint(20) NOT NULL AUTO_INCREMENT,
  110. PRIMARY KEY (`nid`),
  111. UNIQUE KEY `uk_configtagrelation_configidtag` (`id`,`tag_name`,`tag_type`),
  112. KEY `idx_tenant_id` (`tenant_id`)
  113. ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='config_tag_relation';
  114. /******************************************/
  115. /* 数据库全名 = nacos_config */
  116. /* 表名称 = group_capacity */
  117. /******************************************/
  118. CREATE TABLE `group_capacity` (
  119. `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  120. `group_id` varchar(128) NOT NULL DEFAULT '' COMMENT 'Group ID,空字符表示整个集群',
  121. `quota` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '配额,0表示使用默认值',
  122. `usage` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '使用量',
  123. `max_size` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '单个配置大小上限,单位为字节,0表示使用默认值',
  124. `max_aggr_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '聚合子配置最大个数,,0表示使用默认值',
  125. `max_aggr_size` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '单个聚合数据的子配置大小上限,单位为字节,0表示使用默认值',
  126. `max_history_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '最大变更历史数量',
  127. `gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  128. `gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
  129. PRIMARY KEY (`id`),
  130. UNIQUE KEY `uk_group_id` (`group_id`)
  131. ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='集群、各Group容量信息表';
  132. /******************************************/
  133. /* 数据库全名 = nacos_config */
  134. /* 表名称 = his_config_info */
  135. /******************************************/
  136. CREATE TABLE `his_config_info` (
  137. `id` bigint(20) unsigned NOT NULL,
  138. `nid` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  139. `data_id` varchar(255) NOT NULL,
  140. `group_id` varchar(128) NOT NULL,
  141. `app_name` varchar(128) DEFAULT NULL COMMENT 'app_name',
  142. `content` longtext NOT NULL,
  143. `md5` varchar(32) DEFAULT NULL,
  144. `gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  145. `gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  146. `src_user` text,
  147. `src_ip` varchar(50) DEFAULT NULL,
  148. `op_type` char(10) DEFAULT NULL,
  149. `tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段',
  150. `encrypted_data_key` text NOT NULL COMMENT '秘钥',
  151. PRIMARY KEY (`nid`),
  152. KEY `idx_gmt_create` (`gmt_create`),
  153. KEY `idx_gmt_modified` (`gmt_modified`),
  154. KEY `idx_did` (`data_id`)
  155. ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='多租户改造';
  156. /******************************************/
  157. /* 数据库全名 = nacos_config */
  158. /* 表名称 = tenant_capacity */
  159. /******************************************/
  160. CREATE TABLE `tenant_capacity` (
  161. `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  162. `tenant_id` varchar(128) NOT NULL DEFAULT '' COMMENT 'Tenant ID',
  163. `quota` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '配额,0表示使用默认值',
  164. `usage` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '使用量',
  165. `max_size` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '单个配置大小上限,单位为字节,0表示使用默认值',
  166. `max_aggr_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '聚合子配置最大个数',
  167. `max_aggr_size` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '单个聚合数据的子配置大小上限,单位为字节,0表示使用默认值',
  168. `max_history_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '最大变更历史数量',
  169. `gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  170. `gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
  171. PRIMARY KEY (`id`),
  172. UNIQUE KEY `uk_tenant_id` (`tenant_id`)
  173. ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='租户容量信息表';
  174. CREATE TABLE `tenant_info` (
  175. `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
  176. `kp` varchar(128) NOT NULL COMMENT 'kp',
  177. `tenant_id` varchar(128) default '' COMMENT 'tenant_id',
  178. `tenant_name` varchar(128) default '' COMMENT 'tenant_name',
  179. `tenant_desc` varchar(256) DEFAULT NULL COMMENT 'tenant_desc',
  180. `create_source` varchar(32) DEFAULT NULL COMMENT 'create_source',
  181. `gmt_create` bigint(20) NOT NULL COMMENT '创建时间',
  182. `gmt_modified` bigint(20) NOT NULL COMMENT '修改时间',
  183. PRIMARY KEY (`id`),
  184. UNIQUE KEY `uk_tenant_info_kptenantid` (`kp`,`tenant_id`),
  185. KEY `idx_tenant_id` (`tenant_id`)
  186. ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='tenant_info';
  187. CREATE TABLE `users` (
  188. `username` varchar(50) NOT NULL PRIMARY KEY,
  189. `password` varchar(500) NOT NULL,
  190. `enabled` boolean NOT NULL
  191. );
  192. CREATE TABLE `roles` (
  193. `username` varchar(50) NOT NULL,
  194. `role` varchar(50) NOT NULL,
  195. UNIQUE INDEX `idx_user_role` (`username` ASC, `role` ASC) USING BTREE
  196. );
  197. CREATE TABLE `permissions` (
  198. `role` varchar(50) NOT NULL,
  199. `resource` varchar(255) NOT NULL,
  200. `action` varchar(8) NOT NULL,
  201. UNIQUE INDEX `uk_role_permission` (`role`,`resource`,`action`) USING BTREE
  202. );
  203. INSERT INTO users (username, password, enabled) VALUES ('nacos', '$2a$10$EuWPZHzz32dJN7jexM34MOeYirDdFAZm2kuWj7VEOJhhZkDrxfvUu', TRUE);
  204. INSERT INTO roles (username, role) VALUES ('nacos', 'ROLE_ADMIN');

3、K8S部署nacos

  1. ---
  2. apiVersion: v1
  3. kind: Service
  4. metadata:
  5. name: nacos-headless
  6. labels:
  7. app: nacos
  8. annotations:
  9. service.alpha.kubernetes.io/tolerate-unready-endpoints: "true"
  10. spec:
  11. ports:
  12. - port: 8848
  13. name: server
  14. targetPort: 8848
  15. - port: 9848
  16. name: client-rpc
  17. targetPort: 9848
  18. - port: 9849
  19. name: raft-rpc
  20. targetPort: 9849
  21. ## 兼容1.4.x版本的选举端口
  22. - port: 7848
  23. name: old-raft-rpc
  24. targetPort: 7848
  25. clusterIP: None
  26. selector:
  27. app: nacos
  28. ---
  29. apiVersion: v1
  30. kind: ConfigMap
  31. metadata:
  32. name: nacos-cm
  33. data:
  34. mysql.db.name: "pig_config"
  35. mysql.port: "3306"
  36. mysql.user: "root"
  37. mysql.password: "root"
  38. mysql.host: "local"
  39. ---
  40. apiVersion: apps/v1
  41. kind: StatefulSet
  42. metadata:
  43. name: nacos
  44. spec:
  45. serviceName: nacos-headless
  46. replicas: 3
  47. template:
  48. metadata:
  49. labels:
  50. app: nacos
  51. annotations:
  52. pod.alpha.kubernetes.io/initialized: "true"
  53. spec:
  54. affinity:
  55. podAntiAffinity:
  56. requiredDuringSchedulingIgnoredDuringExecution:
  57. - labelSelector:
  58. matchExpressions:
  59. - key: "app"
  60. operator: In
  61. values:
  62. - nacos
  63. topologyKey: "kubernetes.io/hostname"
  64. serviceAccountName: nfs-client-provisioner
  65. initContainers:
  66. - name: peer-finder-plugin-install
  67. image: nacos/nacos-peer-finder-plugin:1.1
  68. imagePullPolicy: Always
  69. volumeMounts:
  70. - mountPath: /home/nacos/plugins/peer-finder
  71. name: data
  72. subPath: peer-finder
  73. containers:
  74. - name: nacos
  75. imagePullPolicy: Always
  76. image: nacos/nacos-server:latest
  77. resources:
  78. requests:
  79. memory: "2Gi"
  80. cpu: "500m"
  81. ports:
  82. - containerPort: 8848
  83. name: client-port
  84. - containerPort: 9848
  85. name: client-rpc
  86. - containerPort: 9849
  87. name: raft-rpc
  88. - containerPort: 7848
  89. name: old-raft-rpc
  90. env:
  91. - name: NACOS_REPLICAS
  92. value: "3"
  93. - name: SERVICE_NAME
  94. value: "nacos-headless"
  95. - name: DOMAIN_NAME
  96. value: "cluster.local"
  97. - name: POD_NAMESPACE
  98. valueFrom:
  99. fieldRef:
  100. apiVersion: v1
  101. fieldPath: metadata.namespace
  102. - name: MYSQL_SERVICE_DB_NAME
  103. valueFrom:
  104. configMapKeyRef:
  105. name: nacos-cm
  106. key: mysql.db.name
  107. - name: MYSQL_SERVICE_HOST
  108. valueFrom:
  109. configMapKeyRef:
  110. key: mysql.host
  111. name: nacos-cm
  112. - name: MYSQL_SERVICE_PORT
  113. valueFrom:
  114. configMapKeyRef:
  115. name: nacos-cm
  116. key: mysql.port
  117. - name: MYSQL_SERVICE_USER
  118. valueFrom:
  119. configMapKeyRef:
  120. name: nacos-cm
  121. key: mysql.user
  122. - name: MYSQL_SERVICE_PASSWORD
  123. valueFrom:
  124. configMapKeyRef:
  125. name: nacos-cm
  126. key: mysql.password
  127. - name: NACOS_SERVER_PORT
  128. value: "8848"
  129. - name: NACOS_APPLICATION_PORT
  130. value: "8848"
  131. - name: PREFER_HOST_MODE
  132. value: "hostname"
  133. volumeMounts:
  134. - name: data
  135. mountPath: /home/nacos/plugins/peer-finder
  136. subPath: peer-finder
  137. - name: data
  138. mountPath: /home/nacos/data
  139. subPath: data
  140. - name: data
  141. mountPath: /home/nacos/logs
  142. subPath: logs
  143. volumeClaimTemplates:
  144. - metadata:
  145. name: data
  146. annotations:
  147. volume.beta.kubernetes.io/storage-class: "managed-nfs-storage"
  148. spec:
  149. accessModes: [ "ReadWriteMany" ]
  150. resources:
  151. requests:
  152. storage: 20Gi
  153. selector:
  154. matchLabels:
  155. app: nacos
  1. #此处修改成自己的真实的mysql数据库
  2. #此处可以把ConfigMap 改成 secret 更加安全
  3. apiVersion: v1
  4. kind: ConfigMap
  5. metadata:
  6. name: nacos-cm
  7. data:
  8. mysql.db.name: "pig_config"
  9. mysql.port: "3306"
  10. mysql.user: "root"
  11. mysql.password: "root"
  12. mysql.host: "local"

4、验证

  • 验证Nacos节点启动成功 ```shell kubectl get pod -l app=nacos

NAME READY STATUS RESTARTS AGE nacos-0 1/1 Running 0 19h nacos-1 1/1 Running 0 19h nacos-2 1/1 Running 0 19h

  1. 访问后台管理ui 界面
  2. nacos 部署方式中支持部署ingress,浏览器访问 [http://nacos-web.nacos-demo.com/nacos/index.html](http://nacos-web.nacos-demo.com/nacos/index.html) ,默认用户名密码nacos\nacos进行管理后台的访问
  3. 注:访问ingress 需要对 nacos-web.nacos-demo.com 进行dns解析,解析ip slave 节点ip,您的集群需要提前安装ingress controller
  4. 官方md部署文档<br />[README-CN.md](https://www.yuque.com/attachments/yuque/0/2022/md/12766423/1662348861572-aebfc7a4-bf57-493e-b2b3-a37b939ab7bc.md?_lake_card=%7B%22src%22%3A%22https%3A%2F%2Fwww.yuque.com%2Fattachments%2Fyuque%2F0%2F2022%2Fmd%2F12766423%2F1662348861572-aebfc7a4-bf57-493e-b2b3-a37b939ab7bc.md%22%2C%22name%22%3A%22README-CN.md%22%2C%22size%22%3A8742%2C%22type%22%3A%22%22%2C%22ext%22%3A%22md%22%2C%22source%22%3A%22%22%2C%22status%22%3A%22done%22%2C%22mode%22%3A%22title%22%2C%22download%22%3Atrue%2C%22taskId%22%3A%22uac861f8a-02d5-4d6b-a20b-2bb6889131d%22%2C%22taskType%22%3A%22upload%22%2C%22__spacing%22%3A%22both%22%2C%22id%22%3A%22uad21e962%22%2C%22margin%22%3A%7B%22top%22%3Atrue%2C%22bottom%22%3Atrue%7D%2C%22card%22%3A%22file%22%7D)
  5. <a name="x3gM3"></a>
  6. # 2、k8s部署skywalking
  7. ```yaml
  8. ---
  9. apiVersion: apps/v1
  10. kind: Deployment
  11. metadata:
  12. labels:
  13. app: oap
  14. release: skywalking
  15. name: oap
  16. namespace: skywalking-prod
  17. spec:
  18. progressDeadlineSeconds: 600
  19. replicas: 1
  20. revisionHistoryLimit: 10
  21. selector:
  22. matchLabels:
  23. app: oap
  24. release: skywalking
  25. strategy:
  26. rollingUpdate:
  27. maxSurge: 25%
  28. maxUnavailable: 25%
  29. type: RollingUpdate
  30. template:
  31. metadata:
  32. labels:
  33. app: oap
  34. release: skywalking
  35. spec:
  36. containers:
  37. - env:
  38. - name: JAVA_OPTS
  39. value: '-Xms512m -Xmx6144m'
  40. - name: SW_STORAGE
  41. value: elasticsearch7
  42. - name: SW_STORAGE_ES_CLUSTER_NODES
  43. value: '101.35.44.173:9200'
  44. - name: SW_NAMESPACE
  45. value: elasticsearch
  46. - name: SW_ES_USER
  47. value: elastic
  48. - name: SW_ES_PASSWORD
  49. value: w12345
  50. - name: SW_TRACE_SAMPLE_RATE
  51. value: '1000'
  52. - name: SW_STORAGE_ES_INDEX_REPLICAS_NUMBER
  53. value: '0'
  54. - name: SW_CORE_RECORD_DATA_TTL
  55. value: '2'
  56. - name: SW_CORE_METRICS_DATA_TTL
  57. value: '2'
  58. - name: SW_STORAGE_ES_INDEX_SHARDS_NUMBER
  59. value: '1'
  60. image: 'apache/skywalking-oap-server:8.7.0-es7'
  61. imagePullPolicy: IfNotPresent
  62. name: oap
  63. ports:
  64. - containerPort: 11800
  65. name: grpc
  66. protocol: TCP
  67. - containerPort: 12800
  68. name: rest
  69. protocol: TCP
  70. resources:
  71. limits:
  72. cpu: 1200m
  73. memory: 1Gi
  74. requests:
  75. cpu: 500m
  76. memory: 512Mi
  77. terminationMessagePath: /dev/termination-log
  78. terminationMessagePolicy: File
  79. restartPolicy: Always
  80. schedulerName: default-scheduler
  81. terminationGracePeriodSeconds: 30
  82. ---
  83. apiVersion: v1
  84. kind: Service
  85. metadata:
  86. labels:
  87. app: oap
  88. release: skywalking
  89. name: oap
  90. namespace: skywalking-prod
  91. spec:
  92. ports:
  93. - name: rest
  94. port: 12800
  95. protocol: TCP
  96. targetPort: 12800
  97. - name: grpc
  98. port: 11800
  99. protocol: TCP
  100. targetPort: 11800
  101. selector:
  102. app: oap
  103. release: skywalking
  104. type: ClusterIP
  1. ---
  2. apiVersion: apps/v1
  3. kind: Deployment
  4. metadata:
  5. labels:
  6. app: ui
  7. name: ui-deployment
  8. namespace: skywalking-prod
  9. spec:
  10. progressDeadlineSeconds: 600
  11. replicas: 1
  12. revisionHistoryLimit: 10
  13. selector:
  14. matchLabels:
  15. app: ui
  16. strategy:
  17. rollingUpdate:
  18. maxSurge: 25%
  19. maxUnavailable: 25%
  20. type: RollingUpdate
  21. template:
  22. metadata:
  23. labels:
  24. app: ui
  25. spec:
  26. containers:
  27. - env:
  28. - name: SW_OAP_ADDRESS
  29. value: 'http://oap:12800'
  30. image: 'apache/skywalking-ui:8.7.0'
  31. imagePullPolicy: IfNotPresent
  32. name: skywalking-ui
  33. ports:
  34. - containerPort: 8080
  35. name: page
  36. protocol: TCP
  37. resources:
  38. limits:
  39. cpu: 500m
  40. memory: 512Mi
  41. requests:
  42. cpu: 200m
  43. memory: 128Mi
  44. terminationMessagePath: /dev/termination-log
  45. terminationMessagePolicy: File
  46. restartPolicy: Always
  47. schedulerName: default-scheduler
  48. terminationGracePeriodSeconds: 30
  49. ---
  50. apiVersion: v1
  51. kind: Service
  52. metadata:
  53. labels:
  54. service: ui
  55. name: ui
  56. namespace: skywalking-prod
  57. spec:
  58. ports:
  59. - name: page
  60. port: 8080
  61. protocol: TCP
  62. targetPort: 8080
  63. selector:
  64. app: ui
  65. type: ClusterIP
  66. ---
  67. apiVersion: networking.k8s.io/v1
  68. kind: Ingress
  69. metadata:
  70. name: lshady-ingress
  71. namespace: skywalking-prod
  72. spec:
  73. rules:
  74. - host: skywalking.lshady.com
  75. http:
  76. paths:
  77. - path: /
  78. pathType: Prefix
  79. backend: ## 指定需要响应的后端服务
  80. service:
  81. name: ui ## kubernetes集群的svc名称
  82. port:
  83. number: 8080 ## service的端口号