Nacos Docker Kubernetes ⽣态

news/2024/7/24 12:04:00 标签: kubernetes, docker, java

博主介绍:✌全网粉丝4W+,全栈开发工程师,从事多年软件开发,在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战、定制、远程,博主也曾写过优秀论文,查重率极低,在这方面有丰富的经验✌

博主作品:《Java项目案例》主要基于SpringBoot+MyBatis/MyBatis-plus+MySQL+Vue等前后端分离项目,可以在左边的分类专栏找到更多项目。《Uniapp项目案例》有几个有uniapp教程,企业实战开发。《微服务实战》专栏是本人的实战经验总结,《Spring家族及微服务系列》专注Spring、SpringMVC、SpringBoot、SpringCloud系列、Nacos等源码解读、热门面试题、架构设计等。除此之外还有不少文章等你来细细品味,更多惊喜等着你哦

🍅开源项目免费哦:点击这里克隆或者下载,即将发布Vue3版   🍅

🍅文末获取联系🍅精彩专栏推荐订阅👇🏻👇🏻 不然下次找不到哟

Java项目案例《100套》

https://blog.csdn.net/qq_57756904/category_12173599.html

 uniapp小程序《100套》

https://blog.csdn.net/qq_57756904/category_12199600.html

✨【微服务】Nacos为什么丢弃短连接(http)而选择拥抱长连接(gRPC)

目录

一、简介

二、Docker使用

1、单机启动

2、集群启动

docker%20compose%20%E7%BC%96%E6%8E%92%E6%96%87%E4%BB%B6%2C%20%E5%91%BD%E5%90%8D%E4%B8%BA%20nacos-embedded.yaml-toc" style="margin-left:80px;">2.1、创建⼀个 docker compose 编排文件, 命名为 nacos-embedded.yaml

2.2、下面我们再创建上面编排文件中引用到的环境变量文件 nacos-embedded.env

3、常⽤环境变量参数列表

三、Kubernetes 使用

1. 下载 nacos-k8s 工程

2. 进入 operator 目录, 直接使用 helm 方式安装 operator 

3. 查看集群部署例子

4. 创建 Nacos 集群,并验证

💖微服务实战

💖 Spring家族及微服务系列文章 


一、简介

nacos-docker nacos-k8s 是 Nacos 开发团队为支持用户容器化衍生的项目。其本质是为了帮助用户方便快捷的通过官方镜像在 Docker 或者 Kubernetes 进行部署。

二、Docker使用

注意:在写本文的当下, Nacos 官方 docker 镜像并不支持在 ARM 架构的机器上运行,比如 Macb
ook Pro M1(目前正在推进解决中)

1、单机启动

打开终端, 输入以下命令:
docker run --name nacos-quick -e MODE=standalone -p 8848:8848 -p 9848:9848
-d nacos/nacos-server:2.0.3
执行完命令, ⼀个单机版的 Nacos 就已经启动完成,其中 8848 是 Nacos 的应用端口, 9848 客户端和服务端通讯的 grpc 端口。
接下来我们可以通过在浏览器访问: http://localhost:8848 来进入 Nacos 控制台。

2、集群启动

除了单机的快速启动外, Nacos-Docker 还有关于集群演示的例子,下面将演示如何通过 docker-compose 编排进行 Nacos 在 Docker 的集群部署。
注意:本次演示中使用的数据库镜像进行 Nacos 数据库脚本初始化, 如果使用已有数据库镜像或者自定义数据库地址,请自己进行 数据库脚本 初始化。

docker%20compose%20%E7%BC%96%E6%8E%92%E6%96%87%E4%BB%B6%2C%20%E5%91%BD%E5%90%8D%E4%B8%BA%20nacos-embedded.yaml">2.1、创建⼀个 docker compose 编排文件, 命名为 nacos-embedded.yaml

version: "3" 
services:
  nacos1:
    hostname: nacos1
    container_name: nacos1
    image: nacos/nacos-server:latest
    volumes: 
      - ./cluster-logs/nacos1:/home/nacos/logs
    ports: 
      - "8848:8848"
      - "9848:9848"
      - "9555:9555" 
    env_file: 
      - ../env/nacos-embedded.env
    restart: always
  nacos2:
    hostname: nacos2
    image: nacos/nacos-server:latest
    container_name: nacos2
    volumes: 
      - ./cluster-logs/nacos2:/home/nacos/logs
    ports: 
      - "8849:8848"
      - "9849:9848" 
    env_file:
      - ../env/nacos-embedded.env
    restart: always
 nacos3:
   hostname: nacos3
   image: nacos/nacos-server:latest
   container_name: nacos3
   volumes: 
     - ./cluster-logs/nacos3:/home/nacos/logs
   ports: 
     - "8850:8848"
     - "9850:9848" 
   env_file: 
     - ../env/nacos-embedded.env
   restart: always
上述文件是⼀个标准的 DockerCompose 的容器编排文件, 我们定义了三个 Nacos 容器服务, 其中指定每个容器的名称, 以及服务的主机地址 (host),为每⼀个 Nacos 容器日志文件夹进行持久化, 并且指定他们的重启策略, 以及指定在容器中可以引用的环境变量文件 (nacos-embedded.env)。

2.2、下面我们再创建上面编排文件中引用到的环境变量文件 nacos-embedded.env

## 指定开启 Nacos 使用的网络模式
PREFER_HOST_MODE=hostname
## 开启嵌入式存储
EMBEDDED_STORAGE=embedded
## 集群节点列表
NACOS_SERVERS=nacos1:8848 nacos2:8848 nacos3:8848
上面的环境变量文件中定义的变量, 会在容器启动的时候通过系统环境变量的方式注入到容器内部, 通过application.properties 的方式读入 Nacos 应用内部. 官方 docker 镜像已经预定义了许多环境变量参数供用户使用, 具体可以在附录中看到。
通过上述两步的配置,我们就完成了 Nacos 集群模式的启动, 打开终端工具:
docker compose -f nacos-embedded.yaml up -d
启动完成后, 跟单机模式⼀样可以通过在浏览器访问: http://localhost:8848 来进入 Nacos 控制
台。

3、常⽤环境变量参数列表

下面的参数都是可以在 Nacos Docker 容器中进行配置的, 如果下面参数都不满足的情况下,可以对 appliction.properties 文件进行挂载来完成参数的配置, 文件在容器的文件位置:/home/nacos/conf/applicaion.properties.

 

 

 

三、Kubernetes 使用

 

Nacos-k8s 项目包含了三种类型的部署方式, 原生部署、Helm 部署、以及利用 Operator 开发的
Nacos-Operator 部署, 本文演示如何通过 Operator 方式把 Nacos 集群在 Kubernetes 部署起
来。
Operator 相较于前两种方式的优势:

 

  • 通过 operator 快速构建 nacos 集群,指定简单的 cr.yaml 文件,既可以实现各种类型的 nacos 集群(数据库选型、standalone/cluster 模式等)
  •  增加⼀定的运维能力,在 status 中增加对 nacos 集群状态的检查、自动化运维等(后续扩展更多功能)
  • 支持 Helm 部署

1. 下载 nacos-k8s 工程

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

2. 进入 operator 目录, 直接使用 helm 方式安装 operator 

helm install nacos-operator ./chart/nacos-operator

3. 查看集群部署例子

cat config/samples/nacos_cluster.yaml


apiVersion: nacos.io/v1alpha1
kind: Nacos
metadata:
  name: nacos
spec:
  type: cluster
  image: nacos/nacos-server:2.0.3
  replicas: 3

4. 创建 Nacos 集群,并验证

kubectl get po -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
nacos-0 1/1 Running 0 111s 10.168.247.39 slave-100 <none> <none> nacos-1 1/1 Running 0 109s 10.168.152.186 master-212 <none> <none>
nacos-2 1/1 Running 0 108s 10.168.207.209 slave-214 <none> <none> kubectl get nacos
NAME REPLICAS READY TYPE DBTYPE VERSION CREATETIME
nacos 3 Running cluster 2.0.3 2021-03-14T09:33:09Z
kubectl get nacos nacos -o yaml -w
... 
status:
conditions: 
  - instance: 10.168.247.39
    nodeName: slave-100
    podName: nacos-0
    status: "true"
    type: leader
  - instance: 10.168.152.186
    nodeName: master-212
    podName: nacos-1
    status: "true"
    type: Followers
  - instance: 10.168.207.209
    nodeName: slave-214
    podName: nacos-2
    status: "true"
    type: Followers
  event: 
  - code: -1
    firstAppearTime: "2021-03-05T08:35:03Z"
    lastTransitionTime: "2021-03-05T08:35:06Z"
    message: The number of ready pods is too small[]
    status: false
  - code: 200
    firstAppearTime: "2021-03-05T08:36:09Z"
    lastTransitionTime: "2021-03-05T08:36:48Z" status: true
  phase: Running
  version: 2.0.3

开源项目即将发布Vue3版本

💖微服务实战

✨【微服务】SpringCloud的OpenFeign与Ribbon配置

✨集Oauth2+Jwt实现单点登录

✨Spring Cloud Alibaba微服务第29章之Rancher

✨Spring Cloud Alibaba微服务第27章之Jenkins

✨Spring Cloud Alibaba微服务第24章之Docker部署

✨Spring Cloud Alibaba微服务第23章之Oauth2授权码模式

✨Spring Cloud Alibaba微服务第22章之Oauth2

✨Spring Cloud Alibaba微服务第21章之分布式事务

✨Spring Cloud Alibaba微服务第18章之消息服务

✨Spring Cloud Alibaba微服务第16章之服务容错

✨Spring Cloud Alibaba微服务第14章之分库分表

✨Spring Cloud Alibaba微服务第11章之MyBatis-plus

✨Spring Cloud Alibaba微服务第8章之OpenFeign

✨Spring Cloud Alibaba微服务第7章之负载均衡Ribbon

✨SpringCloud Alibaba微服务第6章之Gateway

✨SpringCloud Alibaba微服务第4章之Nacos

✨SpringCloud Alibaba微服务开篇

💖 Spring家族及微服务系列文章 

✨【Spring】一文带你吃透IOC容器技术

✨【微服务】SpringCloud中OpenFeign请求处理及负载均衡流程

✨【微服务】SpringCloud中Ribbon的WeightedResponseTimeRule策略

✨【微服务】SpringCloud中Ribbon的轮询(RoundRobinRule)与重试(RetryRule)策略

✨【微服务】SpringCloud中Ribbon集成Eureka实现负载均衡

✨【微服务】SpringCloud轮询拉取注册表及服务发现源码解析

✨【微服务】SpringCloud微服务续约源码解析

✨【微服务】SpringCloud微服务注册源码解析

✨【微服务】Nacos2.x服务发现?RPC调用?重试机制?

✨【微服务】Nacos通知客户端服务变更以及重试机制

✨【微服务】Nacos服务发现源码分析

✨【微服务】SpringBoot监听器机制以及在Nacos中的应用

✨【微服务】Nacos服务端完成微服务注册以及健康检查流程

✨【微服务】Nacos客户端微服务注册原理流程

✨【微服务】SpringCloud中使用Ribbon实现负载均衡的原理

✨【微服务】SpringBoot启动流程注册FeignClient

✨【微服务】SpringBoot启动流程初始化OpenFeign的入口

✨Spring Bean的生命周期

✨Spring事务原理

✨SpringBoot自动装配原理机制及过程

✨SpringBoot获取处理器流程

✨SpringBoot中处理器映射关系注册流程

✨Spring5.x中Bean初始化流程

✨Spring中Bean定义的注册流程

✨Spring的处理器映射器与适配器的架构设计

✨SpringMVC执行流程图解及源码


http://www.niftyadmin.cn/n/245410.html

相关文章

2023零基础快速跟上人工智能第一梯队

写在前面&#xff1a;有关人工智能学什么&#xff0c;怎么学&#xff0c;什么路线等一系列问题。我决定整理一套可行的规划路线&#xff0c;希望帮助准备入门的朋友们少走些弯路。 下面我会推荐一个比较快速可行的学习模板&#xff0c;并附上我认为比较好的学习资料。 新手不建…

apkanalyzer-classpath.jar 中没有.class 文件

apkanalyzer-classpath.jar 中没有.class 文件&#xff0c;apkanalyzer-classpath.jar 包目录下&#xff0c;只有 MANIFEST.MF 文件&#xff0c;如下截图&#xff1a; 而 apkanalyzer.jar 下&#xff0c;有很多 class 文件&#xff0c;其中&#xff0c;BinaryXmlParser.class 就…

20230420-上海广策信息技术笔试记录

1.小括号的有效性判断 LC的简单题&#xff0c;不知道为什么一直有3道用例错&#xff0c;枯了。 bool isValid(string s) {stack<int> st;for(int i 0; i < s.size(); i){// prevent cases like ))if(st.empty()){st.push(s[i]);}else if(s[i] { || s[i] [ || s[i…

【Linux】system V 消息队列 | system V 信号量(简单赘述)

文章目录 1 . system V 消息队列(了解)接口查看消息队列 2.system V 信号量 (了解)1.进程互斥等概念的理解2.认识信号量3. 接口 这两部分主要是了解即可&#xff0c;为后面学习做铺垫 1 . system V 消息队列(了解) 为了让两个进程间通信 创建一个队列queue 进程A可以通过消息队…

AutoGTP - 如何搭建本地的AI人工智能助手

简介 与其看着别人拿着其他人的作品到处吹牛逼,不如切身体验下,内心有数但是不乱说话,稳的一批才能做好老狗,如何识别一篇文章是不是 AI 创作的,那么就在文章中通过情感描述词进行书写,这样就不会被认为是人工智能批量生产的文章了,如果人工智能可以通过一个人过往的笔…

Direct3D 12——计算着色器——计算着色器概念

计算着色器虽然是一种可编程的着色器&#xff0c;但Direct3D并没有将它直接归为渲染流水线中的一部分。虽然如此&#xff0c;但位于流水线之外的计算着色器却可以读写GPU资源。从本质上来说&#xff0c;计算着 色器能够使我们访问GPU来实现数据并行算法&#xff0c;而不必渲染出…

MySQL高级第十四篇:锁机制分类详解(表锁,行锁,页锁,悲观锁和乐观锁)

MySQL高级第十四篇&#xff1a;锁机制分类详解&#xff08;表锁&#xff0c;行锁&#xff0c;页锁&#xff0c;悲观锁和乐观锁&#xff09; 一、概述二、MySQL并发事物访问相同记录的几种情况&#xff1f;1. 读--读情况2. 写--写情况3. 读--写情况&#xff08;写--读情况&#…

【数据结构】树及二叉树的概念

&#x1f61b;作者&#xff1a;日出等日落 &#x1f4d8; 专栏&#xff1a;数据结构 一次失败&#xff0c;只是证明我们成功的决心还够坚强。 ——博 维 目录 &#x1f384;树概念及结构: ✔树的概念: ✔树的相关概念 :​编辑 ✔树的…