6 张志翔

格兰仕 - 高级软件架构师

我要认证

从事Java开发、嵌入式C、基础设施运维等工作,有丰富的微服务项目实战经验,参与云平台基础设施建设、部署实施及项目管理等。

等级
TA的排名 1k+

Java 根据生日获取年龄(周岁)

Java 根据生日获取年龄(周岁)。/** * @author zhnagzhixiang on 2020/8/4*/public class SysResourceServiceImpl { // 根据年月日计算年龄,birthTimeString:"1994-11-14" public static int getAgeFromBirthTime(String birthTimeString) { // 先截取到字符串中的年、月、日 int.

2020-10-27 12:37:16

Service Mesh对比:Istio与Linkerd

根据CNCF的最新年度调查,很多组织对Service Mesh表现出很高的兴趣,并且有一部分已经在生产环境中使用它们。你可能不知道Linkerd是市场上第一个Service Mesh,但是Istio使Service Mesh更受欢迎。这两个项目都是最前沿的项目,而且竞争非常激烈,因此很难选择一个项目。在本篇文章中,我们将和你一起了解Istio和Linkerd架构,组件,并比较它们的产品以帮助你做出明智的决定。Service Mesh简介在过去的几年中,微服务架构已成为软件设计中流行的样式。在这种

2020-10-24 10:10:35

Istio 微服务和服务网格的区别

当组织将应用程序分解为多个较小的服务组件时,即称为微服务。与传统的单体应用方式相比,微服务架构将每个微服务视为独立的实体/模块,从根本上有助于简化其代码和相关基础架构的维护。应用程序的每个微服务还可以使用不同的技术编写,还可以独立地部署,优化和管理。尽管从理论上讲,微服务架构特别有利于复杂的大型应用程序的构建,但是,它也被广泛用于小型应用程序的构建(例如,简单的购物车),还能够满足进一步扩展的需求。微服务架构的好处可以通过不同的技术栈来开发和部署应用程序中的各个微服务。 每个微服务都可以独立优

2020-10-24 10:06:37

Istio 快速入门部署

本文为 istio 快速入门部署,一般用于演示环境。一、准备工作k8s集群要支持istio自动注入,需要检查api server的启动参数,确保admission control部分按顺序启用MutatingAdmissionWebhook与ValidatingAdmissionWebhook; 通过kube-apiserver -h | grep enable-admission-plugins查看已启用的admission control Which plugins are...

2020-10-24 10:01:01

什么是云原生?

云原生从字面意思上来看可以分成云和原生两个部分。云是和本地相对的,传统的应用必须跑在本地服务器上,现在流行的应用都跑在云端,云包含了IaaS,、PaaS和SaaS。原生就是土生土长的意思,我们在开始设计应用的时候就考虑到应用将来是运行云环境里面的,要充分利用云资源的优点,比如️云服务的弹性和分布式优势。那具体要怎么利用呢,请参考下图:图片发自简书App微服务微服务解决的是我们软件开发中一直追求的低耦合+高内聚,记得有一次我们系统的接口出了问题,结果影响了用户的前台操作,于是黎叔拍案

2020-10-10 19:24:08

Kubernetes 命令缩写

kubectl api-resourcesNAME SHORTNAMES APIGROUP NAMESPACED KINDbindings true Bindingcomponentstatuses ...

2020-09-01 11:26:40

Kubernetes实战(三十)-HTTP 7层路由机制(Ingress)

Kubernetes Ingress 资源对象,用于将不同URL的访问请求转发到后端不同的Service,以实现HTTP层的业务路由机制。Kubernetes使用一个Ingress策略定义和一个具体的Ingress Controller,Ingress Controller 基于 Ingress 规则将客户请求直接转发到 Service 对应的后端 Endpoint 上,两者结合并实现了一个完整的Ingress负载均衡器。注:Ingress 路由机制会跳过 kube-proxy 的转发功能,kube-p

2020-08-31 17:07:45

Kubernetes实战(二十九)-集群资源管理(CPU & Memory)

Kubernetes 是一个容器集群管理平台,Kubernetes需要统计整体平台的资源使用情况,合理地将资源分配给容器使用,并且要保证容器生命周期内有足够的资源来保证其运行,这些资源可以被分成两种不同的情形:期望情形(规格)和当前情形(状态)。资源需求和资源容量可被认为是规格(期望情形),资源使用可被认为是状态(当前情形)。Kubernetes 调度器可以利用这两种情形来推断节点容量,资源需求等。我们可以用术语“限额”和“请求”来描述资源的规格:请求:一个容器请求的资源数量。如果一个容器超过了它的

2020-08-31 16:38:18

Kubernetes实战(二十八)-环境共享与隔离(Namespace)

Kubernetes使用命名空间的概念帮助解决集群中在管理对象时的复杂性问题。命名空间允许将对象分组到一起,便于将它们作为一个单元进行筛选和控制。无论是应用自定义的访问控制策略,还是为了测试环境而分离所有组件,命名空间都是一个按照组来处理对象。Namespace即命名空间,主要有两个方面的作用:资源隔离:可为不同的团队/用户(或项目)提供虚拟的集群空间,共享同一个Kubernetes集群的资源。比如可以为团队A创建一个Namespace ns-a,团队A的项目都部署运行在 ns-a 中,团队B创建另

2020-08-31 16:19:49

Kubernetes实战(二十七)-集群访问外部服务(Endpoints)

Kubernetes 访问内网集群外独立的服务,由于不在相同的网段(容器内的网段是独立的)所以不能够互相访问通信,这种情况下我们可以创建 Kubernetes 的 Endpoints 资源,将外部服务映射为集群的内部服务进行访问通信。在实际的生产环境使用中,通过分布式存储来实现的磁盘在 Mysql 这种IO密集性应用中,性能问题会显得非常突出。所以在实际应用中,一般不会把 Mysql 这种应用直接放入 Kubernetes 中管理,而是使用专用的服务器来独立部署,而像 Web 这种无状态应用依然会运行在

2020-08-31 15:50:01

Kubernetes实战(二十六)-高可用负载均衡与外部服务(Service)

Kubernetes可以方便的为容器应用提供了一个持续运行且方便扩展的环境,但是,应用最终是要被用户或其他应用访问、调用的。要访问应用pod,就会有以下两个问题: pod是有生命周期的。它会根据集群的期望状态不断的在创建、删除、更新,所以pod的ip也在不断变化,如何访问到不断变化的pod? 通常一个应用不会单只有一个pod,而是由多个相同功能的pod共同提供服务的。那么对这个应用的访问,如何在多个pod中负载均衡? service主要就是用来解决这两个问题的。简单来说,它是一个抽象的a

2020-08-31 15:19:43

Kubernetes实战(二十五)-Flannel 网络部署(不推荐,不支持 Etcd3)

Flannel 是 cereos 开源的 CNI 网络插件,下图 Flannel 官网提供的一个数据包经过封包、传输以及拆包的示意图,从这个图片中可以看出两台机器的docker0分别处于不同的段:10.1.20.1/24 和 10.1.15.1/24 ,如果从Web App Frontend1 pod(10.1.15.2)去连接另一台主机上的Backend Service2 pod(10.1.20.3),网络包从宿主机192.168.0.100发往192.168.0.200,内层容器的数据包被封装到宿主机的

2020-08-30 19:45:52

Kubernetes实战(二十四)-kubernetes二进制文件方式部署集群(安全)(下)

本文是基于前文的基础上进行的后续工作,如果不了解前文则不建议直接浏览本文的内容,相关传送门如下:kubernetes二进制文件方式部署集群(上)(非安全)kubernetes二进制文件方式部署集群(下)(非安全)Node节点是Kubernetes集群中的工作负载节点.每个node都会被master分配一些工作负载,每个node节点都运行以下关键服务进程,kubelet 负责 pod 容器的创建、启停等任务,同时与master节点密切协作,实现集群管理的基本功能,kube-proxy 则是 kub

2020-08-28 23:59:08

Kubernetes实战(二十三)-kubernetes二进制文件方式部署集群(安全)(上)

本文是基于前文的基础上进行的后续工作,如果不了解前文则不建议直接浏览本文的内容,相关传送门如下:kubernetes二进制文件方式部署集群(上)(非安全)kubernetes二进制文件方式部署集群(下)(非安全)在一个安全的内网环境中,Kubernetes 的各个组件与 Master 之间可以通过 kube-apiserver 的非安全端口 http://<kube-apiserver-ip>:8080 进行访问。但如果 API Server 需要对外提供服务,或者集群中的某些.

2020-08-28 22:37:15

Windows 安装 nodejs 和 npm

1、从nodejs官网下载 安装文件,我安装的版本是 node-v10.15.0-x64.msi ,双击进行安装。2、安装完成后可以查看相关目录,这里会有一个node_modules目录和node执行文件。这里就需要进行配置环境变量,环境配置主要配置的是npm安装的全局模块所在的路径,以及缓存cache的路径,之所以要配置,是因为以后在执行类似:npm install express [-g] (后面的可选参数-g,g代表global全局安装的意思)的安装语句时,会将安装的...

2020-08-24 14:28:31

Kubernetes实战(二十二)-Etcd 集群部署(安全)

kuberntes 系统使用 etcd 存储所有数据,本文档介绍部署一个三节点高可用 etcd 集群的步骤。1、准备etcd软件包并分发etcd文件[root@master ~]# cd /usr/local/src[root@master src]#wget https://github.com/coreos/etcd/releases/download/v3.2.18/etcd-v3.2.18-linux-amd64.tar.gz[root@master src]# tar zxf etc

2020-08-23 16:09:52

Kubernetes实战(二十一)-CA证书制作

Kubernetes 系统的各组件需要使用 TLS 证书对通信进行加密,本文档使用 CloudFlare 的 PKI 工具集 cfssl 来生成 Certificate Authority (CA) 和其它证书。1、CFSSL安装[root@k8s-master ~]# cd /usr/local/src[root@k8s-master src]# wget https://pkg.cfssl.org/R1.2/cfssl_linux-amd64[root@k8s-master src]# .

2020-08-23 15:51:55

Kubernetes实战(二十)-kubernetes二进制文件方式部署集群(非安全)(下)

上文我们讲解了Master 节点上的 etcd、kube-apiserver、kube-controller-manager、kube-scheduler、docker服务的部署,本文我们来介绍 Node 上的 kubelet、kube-proxy 服务部署。一、准备工作在工作 Node 上需要预先安装好 Docker 并且正常启动,二进制 Kubernetes 集群的 docker 是v19.03.12 版本,相关文章已经为各位客官准备好了(版本注意选择 v19.03.12),传送门如下:...

2020-08-23 14:33:08

Kubernetes实战(十九)-kubernetes二进制文件方式部署集群 (非安全)(上)

Kubernetes 二进制部署方式是生产环境的主流搭建方式,已在生产环境验证,kubeadm也可以搭建生产环境,不过kubeadm应该还没有被大规模在生产环境验证,所以不推荐在生产环境使用 kubeadm 方式搭建 Kubernetes集群,二进制搭建方式由于内容量大,扩展性强,我会将二进制集群部署分为多个文章进行讲解。本篇文章主要讲解 Master 节点上的 etcd、kube-apiserver、kube-controller-manager、kube-scheduler、docker服务的部署.

2020-08-21 20:14:30

Linux nohup命令不再默认输出日志文件

Linux使用nohup命令启动程序后,会打印大量的日志,很快运维同事收到磁盘已满的报警短信通知。1、只记录异常日志 $ nohup python -u Job.py >/dev/null 2>error.log 2>&1 &2、不记录任何日志 $ nohup python -u Job.py >/dev/null 2>&1 &注:/dev/null 属于字符特殊文件,属于空设备,它是一个特殊的设备文件,会丢弃..

2020-08-21 17:20:08

查看更多

CSDN身份
  • 博客专家
勋章 我的勋章
  • 领英
    领英
    绑定领英第三方账户获取
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 脉脉勋章
    脉脉勋章
    绑定脉脉第三方账户获得
  • 签到王者
    签到王者
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 技术圈认证(专家版)
    技术圈认证(专家版)
    博客专家完成年度认证,即可获得
  • 推荐红人
    推荐红人
    发布高质量Blink获得高赞和评论,进入推荐栏目即可获得
  • 新人勋章
    新人勋章
    用户发布第一条blink获赞超过3个即可获得
  • 阅读者勋章Lv2
    阅读者勋章Lv2
    授予在CSDN APP累计阅读博文达到7天的你,是你的坚持与努力,使你超越了昨天的自己。
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 学习力
    学习力
    《原力计划【第二季】》第一期主题勋章 ,第一期活动已经结束啦,小伙伴们可以去参加第二期打卡挑战活动获取更多勋章哦。
  • 原力新人
    原力新人
    在《原力计划【第二季】》打卡挑战活动中,成功参与本活动并发布一篇原创文章的博主,即可获得此勋章。
  • 1024勋章
    1024勋章
    #1024程序员节#连续参与两年活动升级勋章,当日发布原创博客即可获得
  • 分享宗师
    分享宗师
    成功上传21个资源即可获取