• k8s+springcloud+nacos部署配置


    1 k8s 部署nacos-2.1.2配置k8s-nacos-statefulSet.yaml文件

    1. apiVersion: v1
    2. kind: Service
    3. metadata:
    4. name: nacos-headless
    5. namespace: rz-dt
    6. labels:
    7. app: nacos
    8. annotations:
    9. service.alpha.kubernetes.io/tolerate-unready-endpoints: "true"
    10. spec:
    11. # 3个端口打开,否则外网应用连接不上k8s里面的nacos
    12. ports:
    13. - protocol: TCP
    14. port: 8848
    15. name: server
    16. targetPort: 8848
    17. - protocol: TCP
    18. port: 9848
    19. name: client-rpc
    20. targetPort: 9848
    21. - protocol: TCP
    22. port: 9849
    23. name: server-rpc
    24. targetPort: 9849
    25. clusterIP: None
    26. selector:
    27. app: nacos
    28. ---
    29. apiVersion: apps/v1
    30. kind: StatefulSet
    31. metadata:
    32. name: nacos
    33. namespace: rz-dt
    34. spec:
    35. serviceName: nacos-headless
    36. replicas: 3
    37. template:
    38. metadata:
    39. labels:
    40. app: nacos
    41. annotations:
    42. pod.alpha.kubernetes.io/initialized: "true"
    43. spec:
    44. affinity:
    45. podAntiAffinity:
    46. requiredDuringSchedulingIgnoredDuringExecution:
    47. - labelSelector:
    48. matchExpressions:
    49. - key: "app"
    50. operator: In
    51. values:
    52. - nacos-headless
    53. topologyKey: "kubernetes.io/hostname"
    54. nodeSelector:
    55. rz_dt_nacos_node: rz-dt-nacos
    56. containers:
    57. - name: k8snacos
    58. imagePullPolicy: Always
    59. #v2.1.2可以重启nacos服务自动注册 2.0.3 不会自动注册服务 对应库nacos_config
    60. image: nacos/nacos-server:v2.1.2
    61. resources:
    62. limits:
    63. cpu: 900m
    64. memory: 2Gi
    65. requests:
    66. cpu: 10m
    67. memory: 50Mi
    68. ports:
    69. - containerPort: 8848
    70. name: client-port
    71. - containerPort: 9848
    72. name: client-grpc
    73. - containerPort: 9849
    74. name: server-grpc
    75. #环境变量配置
    76. env:
    77. - name: NACOS_REPLICAS
    78. value: "3"
    79. - name: MYSQL_SERVICE_HOST
    80. valueFrom:
    81. configMapKeyRef:
    82. name: nacos-cm
    83. key: mysql.host
    84. - name: MYSQL_SERVICE_DB_NAME
    85. valueFrom:
    86. configMapKeyRef:
    87. name: nacos-cm
    88. key: mysql.db.name
    89. - name: MYSQL_SERVICE_PORT
    90. valueFrom:
    91. configMapKeyRef:
    92. name: nacos-cm
    93. key: mysql.port
    94. - name: MYSQL_SERVICE_USER
    95. valueFrom:
    96. configMapKeyRef:
    97. name: nacos-cm
    98. key: mysql.user
    99. - name: MYSQL_SERVICE_PASSWORD
    100. valueFrom:
    101. configMapKeyRef:
    102. name: nacos-cm
    103. key: mysql.password
    104. - name: MODE
    105. value: "cluster"
    106. - name: NACOS_SERVER_PORT
    107. value: "8848"
    108. - name: NACOS_APPLICATION_PORT
    109. value: "9848"
    110. - name: NACOS_APPLICATION_PORT
    111. value: "9849"
    112. - name: PREFER_HOST_MODE
    113. value: "hostname"
    114. - name: NACOS_SERVERS
    115. value: "nacos-0.nacos-headless.rz-dt.svc.cluster.local:8848 nacos-1.nacos-headless.rz-dt.svc.cluster.local:8848 nacos-2.nacos-headless.rz-dt.svc.cluster.local:8848"
    116. selector:
    117. matchLabels:
    118. app: nacos
    119. ---
    120. apiVersion: v1
    121. kind: Service
    122. metadata:
    123. name: nacos-service
    124. namespace: rz-dt
    125. annotations:
    126. nginx.ingress.kubernetes.io/affinity: "true"
    127. nginx.ingress.kubernetes.io/session-cookie-name: backend
    128. nginx.ingress.kubernetes.io/load-balancer-method: drr
    129. spec:
    130. selector:
    131. app: nacos
    132. # 3个端口打开,否则外网应用连接不上k8s里面的nacos
    133. ports:
    134. - name: nacos-headless
    135. protocol: TCP
    136. port: 8848
    137. targetPort: 8848
    138. nodePort: 30048
    139. - name: nacos-rpc
    140. protocol: TCP
    141. port: 9848
    142. targetPort: 9848
    143. nodePort: 31048
    144. - name: nacos-grpc
    145. protocol: TCP
    146. port: 9849
    147. targetPort: 9849
    148. nodePort: 31049
    149. type: NodePort
    150. ---
    151. apiVersion: extensions/v1beta1
    152. kind: Ingress
    153. metadata:
    154. name: nacos-web
    155. namespace: rz-dt
    156. spec:
    157. rules:
    158. - host: nacos.real.com.cn
    159. http:
    160. paths:
    161. - path: /nacos
    162. backend:
    163. serviceName: nacos-service
    164. servicePort: 8848
    165. ---
    166. apiVersion: v1
    167. kind: ConfigMap
    168. metadata:
    169. name: nacos-cm
    170. namespace: rz-dt
    171. data:
    172. mysql.host: "rm-uf6c2o6h7hg.mysql.rds.aliyuncs.com"
    173. mysql.db.name: "nacos_config"
    174. mysql.port: "3306"
    175. mysql.user: "real"
    176. mysql.password: "1234"

    2 k8s 一键部署脚本 test.sh

    1. echo "开始制作镜像..."
    2. image_name=k8s-nacos-statefulSet
    3. echo "k8s一键部署"
    4. export IMG_NAME=${image_name}
    5. envsubst < ${image_name}.yaml | kubectl --kubeconfig ~/.kube-rz/config apply -f -

    3 springcloud 微服务中配置nacos地址properties

    1. server.port=8090
    2. logging.level.org.springframework.cloud.sleuth=info
    3. spring.application.name=k8s-springboot-demo
    4. #spring.profiles.active=dev
    5. spring.sleuth.enabled=true
    6. spring.sleuth.reactor.instrumentation-type=decorate_on_each
    7. #spring.config.activate.on-profile=dev
    8. #spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
    9. #spring.cloud.nacos.config.server-addr=127.0.0.1:8848
    10. #spring.cloud.nacos.config.file-extension=yml
    11. #spring.cloud.nacos.config.shared-configs[0]=realize-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
    12. #spring.cloud.sentinel.eager=true
    13. #spring.cloud.sentinel.transport.dashboard=127.0.0.1:8718
    14. #spring.cloud.sentinel.datasource.ds1.nacos.server-addr=127.0.0.1:8848
    15. #spring.cloud.sentinel.datasource.ds1.nacos.dataId=sentinel-application-gateway
    16. #spring.cloud.sentinel.datasource.ds1.nacos.groupId=DEFAULT_GROUP
    17. #spring.cloud.sentinel.datasource.ds1.nacos.data-type=json
    18. #spring.cloud.sentinel.datasource.ds1.nacos.rule-type=flow
    19. #spring.config.activate.on-profile=server
    20. # nacos访问地址 服务名.命名空间:服务端口号
    21. spring.cloud.nacos.discovery.server-addr=nacos-service.rz-dt:8848
    22. #spring.cloud.nacos.discovery.server-addr=nacos-0.nacos-headless.rz-dt.svc.cluster.local:8848,nacos-1.nacos-headless.rz-dt.svc.cluster.local:8848,nacos-2.nacos-headless.rz-dt.svc.cluster.local:8848
    23. spring.cloud.nacos.discovery.metadata.preserved.heart.beat.interval=1000
    24. spring.cloud.nacos.discovery.metadata.preserved.heart.beat.timeout=3000
    25. spring.cloud.nacos.discovery.metadata.preserved.ip.delete.timeout=3000
    26. # nacos访问地址 服务名.命名空间:服务端口号
    27. spring.cloud.nacos.config.server-addr=nacos-service.rz-dt:8848
    28. #spring.cloud.nacos.config.server-addr=nacos-0.nacos-headless.rz-dt.svc.cluster.local:8848,nacos-1.nacos-headless.rz-dt.svc.cluster.local:8848,nacos-2.nacos-headless.rz-dt.svc.cluster.local:8848
    29. spring.cloud.nacos.config.file-extension=yml
    30. spring.cloud.nacos.config.shared-configs[0]=realize-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
    31. spring.cloud.sentinel.eager=true
    32. spring.cloud.sentinel.transport.dashboard=127.0.0.1:8718
    33. spring.cloud.sentinel.datasource.ds1.nacos.server-addr=nacos-service.rz-dt:8848
    34. #spring.cloud.sentinel.datasource.ds1.nacos.server-addr=nacos-0.nacos-headless.rz-dt.svc.cluster.local:8848,nacos-1.nacos-headless.rz-dt.svc.cluster.local:8848,nacos-2.nacos-headless.rz-dt.svc.cluster.local:8848
    35. spring.cloud.sentinel.datasource.ds1.nacos.dataId=sentinel-application-gateway
    36. spring.cloud.sentinel.datasource.ds1.nacos.groupId=DEFAULT_GROUP
    37. spring.cloud.sentinel.datasource.ds1.nacos.data-type=json
    38. spring.cloud.sentinel.datasource.ds1.nacos.rule-type=flow

    springcloud 微服务中配置nacos地址yaml

    1. logging:
    2. level:
    3. org:
    4. springframework:
    5. cloud:
    6. sleuth: info
    7. server:
    8. port: 8090
    9. spring:
    10. application:
    11. name: k8s-springboot-demo
    12. cloud:
    13. nacos:
    14. config:
    15. file-extension: yml
    16. # nacos访问地址 服务名.命名空间:服务端口号
    17. #spring.cloud.nacos.discovery.server-addr=nacos-0.nacos-headless.rz-dt.svc.cluster.local:8848,nacos-1.nacos-headless.rz-dt.svc.cluster.local:8848,nacos-2.nacos-headless.rz-dt.svc.cluster.local:8848
    18. server-addr: nacos-service.rz-dt:8848
    19. shared-configs:
    20. - realize-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
    21. discovery:
    22. metadata:
    23. preserved:
    24. heart:
    25. beat:
    26. interval: 1000
    27. timeout: 3000
    28. ip:
    29. delete:
    30. timeout: 3000
    31. server-addr: nacos-service.rz-dt:8848
    32. sentinel:
    33. datasource:
    34. ds1:
    35. nacos:
    36. data-type: json
    37. dataId: sentinel-application-gateway
    38. groupId: DEFAULT_GROUP
    39. rule-type: flow
    40. server-addr: nacos-service.rz-dt:8848
    41. eager: true
    42. transport:
    43. dashboard: 127.0.0.1:8718
    44. sleuth:
    45. enabled: true
    46. reactor:
    47. instrumentation-type: decorate_on_each

     

    4 k8s 里面nacos截图

  • 相关阅读:
    Visual Studio Code配置c/c++环境
    如何封装Vue组件并上传到npm
    (附源码)springboot优课在线教学系统 毕业设计 081251
    java基于springboot的校园德育活动预约和评分管理系统
    Echarts-实现3D柱状图显示,并单个柱子变色
    猿创征文|Python快速刷题网站——牛客网 数据分析篇(十二)
    强化学习在无人车领域的应用与展望
    【C++初阶】C++入门(上)
    JUC-同步
    im2col代码解析
  • 原文地址:https://blog.csdn.net/xiaogg3678/article/details/139649262