1.预备工作 unbuntu 16.04 or above docker for linux kubernetes for linux 集群环境 2.使用vs2017创建一个web api应用程序,并打包镜像到本地. 3.推送本地镜像到docker hub 4.编写k8s资源配置文件(yml) 备注:kubernetes使用的是“声明式模型”,即需要用户“描述”和“声明”其所希望实现的系统最终状态,kubernetes会努力帮你实现这个状态,模型的声明是通过编写yml文件来体现. hello-w…
1.预备工作 unbuntu 16.04 and above docker kubernetes 集群 2.使用vs2017创建一个web api应用程序,并打包镜像到本地. 3.推送本地镜像到docker hub 4.编写k8s资源配置文件(yml) hello-world-deployment.yml如下 hello-world-service.yml如下 为了提供外部访问,注意需要修改type: NodePort 5.在k8s集群的master机器上,创建k8s资源对象 6.通过dashb…
1.浅析k8s配置信息 Secret 以密文的形式存储数据,可以用来保存一些敏感信息,例如:OAuth tokens.私钥.密码.数据库连接.事件总线连接等. ConfigMap 以明文的形式存储数据,可以用来保存一些非敏感信息,例如:应用的配置信息. k8s为Secret和ConfigMap提供了4种创建方式(字面量.文件.环境文件.yaml),其实归类来看就是两种创建方式,字面量和文件. 1.1 如何注入到微服务应用程序呢 ? k8s已经为我们提供了两种方式,即通过存储卷(volume)和环…
1. 概述 老话说的好:任何成功都不是轻易得来的,是不断地坚持与面对的结果. 言归正传,之前我们聊了 SpringCloud 开发的微服务是如何部署在  Kubernetes(K8s)集群中的,今天我们来聊聊在 Kubernetes(K8s)集群中是如何监控这些微服务的. apache 的 Skywalking 就是一个不错的选择,SkyWalking 是一个可观察性分析平台和应用程序性能管理系统,可以对微服务进行链路追踪,可以对微服务的指标进行分析,可以快速定位运行慢的服务. Skywalki…
目录 1       大概思路... 1 2       Nginx集群之SSL证书的WebApi微服务... 1 3       HTTP与HTTPS(SSL协议)... 1 4       Openssl生成SSL证书... 2 5       编写.NET WebApi 3 6       部署WebApi到局域网内3台PC机... 5 7       Nginx集群配置搭建... 6 8       运行结果... 8 9       总结... 9 1       大概思路 l  Ng…
Spring Cloud 和Kubernetes都自称自己是部署和运行微服务的最好环境,但是它们在本质上和解决不同问题上是有很大差异的.在本文中,我们将看到每个平台如何帮助交付基于微服务的架构(MSA),它们擅长哪个领域,并且如何两全其美的使用从而在微服务之旅上获得成功. 背景 最近我读了 A. Lukyanchikov的一篇非常棒的文章(https://dzone.com/articles/microservice-architecture-with-spring-cloud-and-do),…
基础架构 主机名 角色 ip HDSS7-11.host.com k8s代理节点1,zk1 10.4.7.11 HDSS7-12.host.com k8s代理节点2,zk2 10.4.7.12 HDSS7-21.host.com k8s运算节点1,zk3 10.4.7.21 HDSS7-22.host.com k8s运算节点2,jenkins 10.4.7.22 HDSS7-200.host.com k8s运维节点(docker仓库) 10.4.7.200 部署zookeeper 安装jdk1.…
1.前言 在当下微服务架构盛行的时代,用户希望应用程序时时刻刻都是可用,为了满足不断变化的新业务,需要不断升级更新应用程序,有时可能需要频繁的发布版本.实现"零停机"."零感知"的持续集成(Continuous Integration)和持续交付/部署(Continuous Delivery)应用程序,一直都是软件升级换代不得不面对的一个难题和痛点,也是一种追求的理想方式,也是DevOps诞生的目的. 2.滚动发布 把一次完整的发布过程,合理地分成多个批次,每次发布…
写在前面 Ingress 英文翻译 进入;进入权;进食,更准确的讲就是入口,即外部流量进入k8s集群必经之口.这到大门到底有什么作用?我们如何使用Ingress?k8s又是如何进行服务发现的呢?先看一张图: 备注:此图来源我转载的一篇博客NodePort,LoadBalancer还是Ingress?我该如何选择 - kubernetes,特此说明. 原理 虽然k8s集群内部署的pod.server都有自己的IP,但是却无法提供外网访问,以前我们可以通过监听NodePort的方式暴露服务,但是这种…
转:https://www.cnblogs.com/justmine/p/8991379.html 写在前面 Ingress 英文翻译 进入;进入权;进食,更准确的讲就是入口,即外部流量进入k8s集群必经之口.这到大门到底有什么作用?我们如何使用Ingress?k8s又是如何进行服务发现的呢?先看一张图: 备注:此图来源我转载的一篇博客NodePort,LoadBalancer还是Ingress?我该如何选择 - kubernetes,特此说明. 原理 虽然k8s集群内部署的pod.server…
参考网址:https://blog.csdn.net/weixin_42084199/article/details/108643555 在此之前需要准备的是: vs2019,以往版本不支持dotnet core3.x版本: 安装.net core 开发环境,可以百度: 微服务整体框架: 1.consul(github):是一个服务管理,更多信息可以百度: 2.服务网关:用于访问所有微服务用的: 3:服务:可以将业务模块拆分成多个服务,如关于用户的业务放在一个服务里,订单业务放在一个服务里: 客…
Jetty 9.1的发布将Java WebSockets (JSR-356) 带入了非Java EE环境,从而开启了微服务时代.我们可以将Jetty的容器包含在java应用程序中(注意,不是Java代码运行在容器中,而是相反),这种微服务轻量概念开始得到提倡推广,为模块化开启新的探索方向. 该案例目标是要建设一个从客户端程序接受消息并广播到当前连接的所有其他客户端WebSocket服务器.假设有一个消息模型: package com.example.services; public class…
1.基础架构 主机名 角色 ip HDSS7-11.host.com K8S代理节点1,zk1 10.4.7.11 HDSS7-12.host.com K8S代理节点2,zk2 10.4.7.12 HDSS7-21.host.com K8S运算节点1,zk3 10.4.7.21 HDSS7-22.host.com K8S运算节点2,jenkins 10.4.7.22 HDSS7-200.host.com K8S运维节点(docker仓库) 10.4.7.200 Dubbo微服务概述  实验架构…
基础架构 主机名 角色 IP地址 mfyxw10.mfyxw.com K8S代理节点1,zk1 192.168.80.10 mfyxw20.mfyxw.com K8S代理节点2,zk2 192.168.80.20 mfyxw30.mfyxw.com K8S Node节点1,zk3 192.168.80.30 mfyxw40.mfyxw.com K8S Node节点2,jenkins 192.168.80.40 mfyxw50.mfyxw.com K8S运维节点(docker仓库) 192.168…
Jenkins官网:https://www.jenkins.io/zh/ Jenkins 2.190.3 镜像地址:docker pull jenkins/jenkins:2.190.3 1.下载Jenkins镜像 在运维主机(mfyxw50.mfyxw.com)上操作 [root@mfyxw50 ~]# docker pull jenkins/jenkins:2.190.3 2.对jenkins打标签并上传至私有仓库 在运维主机(mfyxw50.mfyxw.com)上操作 [root@mfyx…
构建dubbo-demo-consumer,可以使用和dubbo-demo-service的流水线来构建 1.登录jenkins构建dubbo-demo-consumer 2.填写构建dubbo-demo-consumer的信息 构建完成了dubbo-demo-consumer(消费者) 3.登录harbor仓库查看是否已经上传到app项目 4.解析域名demo.od.com 在DNS服务器(mfyxw10.mfyxw.com)上执行 [root@mfyxw10 ~]# cat > /var/n…
Oauth2 解决了cookie和session的问题 搭建认证服务器 把依赖都复制进来 因为搭建的是Oauth的服务器,所以还需要导入oauth2 开始写代码 首先创建启动类 增加配置文件 端口设置为9090 认证服务器的配置 继承的父类. 这个就是授权服务器的配置的适配器的类 @Configuration表示声明为一个配置类 @EnableAuthorizationServer表示当前应用作为认证授权的服务器来存在的 覆盖适配器的三个configure方法 1.客户端应用让认证服务器知道有哪…
1.下载Jenkins镜像打包上传harbor上 [root@hdss7- ~]# docker pull jenkins/jenkins:2.190. [root@hdss7- ~]# docker images |grep jenkins [root@hdss7- ~]# docker tag 22b8b9a84dbe harbor.fx.com/public/jenkins:v2.190.3 [root@hdss7- ~]# docker push harbor.fx.com/public…
使用ConfigMap管理应用配置 拆分环境 主机名 角色 IP地址 mfyxw10.mfyxw.com zk1.od.com(Test环境) 192.168.80.10 mfyxw20.mfyxw.com zk2.od.com(Prod环境) 192.168.80.20 mfyxw30.mfyxw.com 无,暂时停用此zookeepre 192.168.80.30 1.将原来运行的zookeeper停止并且将配置文件修改 分别在mfyxw10.mfyxw20.mfyxw30主机上执行 [ro…
dubbo-monitor官方源码地址:https://github.com/Jeromefromcn/dubbo-monitor 1.下载dubbo-monitor源码 在运维主机(mfyxw50.mfyxw.com)上执行 [root@mfyxw50 ~]# cd /opt/src/ [root@mfyxw50 src]# wget https://github.com/Jeromefromcn/dubbo-monitor/archive/master.zip 2.解压dubbo-monit…
构建dubbo-demo-consumer,可以使用和dubbo-demo-service的流水线来构建 1.登录jenkins构建dubbo-demo-consumer  2.填写构建dubbo-demo-consumer的信息 构建完成了dubbo-demo-consumer(消费者) 3.登录harbor仓库查看是否已经上传到app项目 4.DNS解析域名demo.fx.com [root@hdss7- ~]# vim /var/named/fx.com.zone $ORIGIN fx.c…
dubbo-monitor官方源码地址:https://github.com/Jeromefromcn/dubbo-monitor 1.下载dubbo-monitor源码并解压 [root@hdss7- src]# wget https://github.com/Jeromefromcn/dubbo-monitor/archive/master.zip [root@hdss7- src]# mkdir -p /data/dockerfile/dubbo-monitor [root@hdss7-…
1.登录到jenkins,新建一个项目 2.新建流水线 3.设置保留的天数及份数 4. 添加参数 # 参数 . name: git_repo type: string description: 项目在git版本仓库的地址,如 https://gitee.com/xxx/dubbo-demo-service.git . name: app_name type: string description: 项目名称,如 dubbo-demo-service . name: git_ver type: s…
1.下载jre镜像并推送到harbor [root@hdss7- ~]# docker pull registry.cn-hangzhou.aliyuncs.com/yfhub/jre8:8u112 [root@hdss7- ~]# docker tag registry.cn-hangzhou.aliyuncs.com/yfhub/jre8:8u112 harbor.fx.com/public/jre8:8u112 docker push harbor.fx.com/public/jre8:8…
maven官网:https://maven.apache.org/ maven二进制下载连接:https://archive.apache.org/dist/maven/maven-3/3.6.1/binaries/apache-maven-3.6.1-bin.tar.gz 1.下载maven二进制包并解压 [root@hdss7- src]# wget https://archive.apache.org/dist/maven/maven-3/3.6.1/binaries/apache-mav…
1.登录到jenkins,新建一个项目 2.新建流水线 3.设置保留的天数及份数 4.添加第一个参数:设置项目的名称 5.添加第二个参数:docker镜像名称 6.添加第三个参数:项目所在的git中央仓库地址 7.添加第四个参数:项目在git仓库的对应分支或版本号 8.添加第五个参数:添加镜像标签 9.添加第六个参数:编译项目的位置 10.添加第七个参数:项目编译完成后,产生jar/war包的位置 11.添加第八个参数:编译所要使用的命令 12.添加第九个参数:使用哪个底包 13.添加第十个参数…
1.下载jre镜像 在运维主机(mfyxw50.mfyxw.com)操作 [root@mfyxw50 ~]# docker pull registry.cn-hangzhou.aliyuncs.com/yfhub/jre8:8u112 2.把jre上传至私有仓库 在运维主机(mfyxw50.mfyxw.com)上操作 [root@mfyxw50 ~]# docker images | grep jre [root@mfyxw50 ~]# docker tag registry.cn-hangzh…
maven官网:https://maven.apache.org/ maven二进制下载连接:https://archive.apache.org/dist/maven/maven-3/3.6.1/binaries/apache-maven-3.6.1-bin.tar.gz 1.下载maven二进制包 在运维主机(mfyxw50.mfyxw.com)上操作 [root@mfyxw50 ~]# cd /opt/src/ [root@mfyxw50 src]# wget https://archiv…
Kubernetes简称? 答:k8s或kube. Kubernetes是什么? 答:由Google开发的一个强大的平台,可以在集群环境中管理容器化应用程序.本质上是一种特殊的数据库,里面存储的是能够组成kubernetes模型的各种资源,包括Pods.Deployments.Services.Config Maps.Secrets.Namespaces.Nodes.Service Accounts.Ingress.Jobs等等.可以参考:kubernetes实战之运行aspnetcore we…
随着微服务架构的流行,迈向云原生的趋势,容器化微服务就成为了持续集成最好的手段,镜像成为了持续交付最好的产物,容器成为了镜像运行最好的环境,kubernetes成了部署容器最好的生态系统和规范.实践出真知,自学习kubernetes以来,写了一系列文章,首先,为了发现知识盲点,查漏补缺,将知识点形成体系,决定将之前写的文章做一个汇总,方便查看:其次,希望打通微服务落地kubernetes的任督二脉,探索出一种工作模式,建立一条高度自动化的流水线,于是踏上了西天取经的道路,并梳理出了西游路线图,希…