Browsed by
作者: CoolShell

kubeadm init 后master一直处于notready状态

kubeadm init 后master一直处于notready状态

閱讀本文約花費: 3 (分鐘)kubeadm安装Kubernetes,集群状态检测时,master一直处于notready状态 找问题,先查看pods状态 发现coredns一直处于pending状态,再进一步看kuberctl.services日志 看到是网络的问题,应该是fu 解决办法,换个链接 查看node状态,发现还是notready。查看日志 发现报错plugin flannel does not support config version ,修改配置文件 修改后,运行 再查看集群状态,发现master正常了,处于ready状态;但是node1节点还是处于notready状态 解决办法:去到node1,查看kubectl日志,发现还是报错no valid networks found in /etc/cni/net.d将node1中也加上cni的版本号,重新启动,即可看到集群状态变为正常 参考资料:kubeadm安装Kubernetes 1.14最佳https://www.kubernetes.org.cn/5462.htmlkubernetes安装过程中错误(kube-dns 状态一直是Pending,master节点是NotReady)https://blog.csdn.net/u013355826/article/details/82786649How to fi…

Read More Read More

面向 Kubernetes 设计误区

面向 Kubernetes 设计误区

閱讀本文約花費: 23 (分鐘)K8s 设计模式 Kubernetes 是一个具有普遍意义的容器编排工具,它提供了一套基于容器构建分布式系统的基础依赖,其意义等同于 Linux 在操作系统中的地位,可以认为是分布式的操作系统。 自定义资源 K8s 提供了 Pod、Service、Volume 等一系列基础资源定义,为了更好提供扩展性,CRD 功能是在 1.7 版本被引入。用户可以根据自己的需求添加自定义的 Kubernetes 对象资源(CRD)。值得注意的是,这里用户自己添加的 Kubernetes 对象资源都是 native 的都是一等公民,和 Kubernetes 中自带的、原生的那些 Pod、Deployment 是同样的对象资源。在 Kubernetes 的 API Server 看来,它们都是存在于 etcd 中的一等资源。同时,自定义资源和原生内置的资源一样,都可以用 kubectl  来去创建、查看,也享有 RBAC、安全功能。用户可以开发自定义控制器来感知或者操作自定义资源的变化。 Operator 在自定义资源基础上,如何实现自定义资源创建或更新时的逻辑行为,K8s Operator 提供了相应的开发框架。Operator 通过扩展 Kubernetes 定义 Custom Controller,list/watch 对应的自定义资源,在对应资源发生变…

Read More Read More

Kubernetes的三种外部访问方式:NodePort、LoadBalancer 和 Ingress

Kubernetes的三种外部访问方式:NodePort、LoadBalancer 和 Ingress

閱讀本文約花費: 7 (分鐘)【编者的话】本文分析了 NodePort,LoadBalancer 和 Ingress 这三种访问服务方式的使用方式和使用场景,指出了各自的优缺点,帮助用户基于自己的场景做出更好的决策。 最近有些同学问我 NodePort,LoadBalancer 和 Ingress 之间的区别。它们都是将集群外部流量导入到集群内的方式,只是实现方式不同。让我们看一下它们分别是如何工作的,以及你该如何选择它们。 注意:这里说的每一点都基于Google Kubernetes Engine。如果你用 minikube 或其它工具,以预置型模式(om prem)运行在其它云上,对应的操作可能有点区别。我不会太深入技术细节,如果你有兴趣了解更多,官方文档是一个非常棒的资源。 ClusterIP ClusterIP 服务是 Kubernetes 的默认服务。它给你一个集群内的服务,集群内的其它应用都可以访问该服务。集群外部无法访问它。 ClusterIP 服务的 YAML 文件类似如下: apiVersion: v1 kind: Service metadata:   name: my-internal-service selector:     app: my-app spec…

Read More Read More

声明式编程和命令式编程有什么区别?

声明式编程和命令式编程有什么区别?

閱讀本文約花費: 4 (分鐘)声明式编程和命令式编程有什么区别? (What is the difference between declarative programing language and imperative programming language? ) 作者:Jinfeng Hu链接:https://www.zhihu.com/question/22285830/answer/469177185来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 我不知道为什么这样一组概念会被提炼出来,因为通常这是一个只有在设计语言的时候才会考虑的问题。 计算机系统是分层的,也就是下层做一些支持的工作,暴露接口给上层用。注意:语言的本质是一种接口。 计算机的最下层是CPU指令,其本质就是用“变量定义+顺序执行+分支判断+循环”所表达的逻辑过程。计算机应用的最上层是实现人类社会的某种功能。所以所有计算机编码的过程,就是用逻辑表达现实的过程。层与层之间定义的借口,越接近现实的表达就叫越“声明式”(declarative),越接近计算机的执行过程就叫越“命令式”(imperative)。注意这不是绝对的概念,而是相对的概念。 当接口越是在表达“要什么”,就是越声明式;越是在表达“要怎样”,就是越命令式。SQL就是在表达要什么(数据),而不是表达怎么弄出我要的数…

Read More Read More

从年会看声明式编程(Declarative Programming)

从年会看声明式编程(Declarative Programming)

閱讀本文約花費: 9 (分鐘)React的设计贯彻了声明式编程(Declarative Programming)的思想,今天就说一说什么是所谓的声明式编程。 和声明式编程相对应的是命令式编程(Imperative Programming),大部分语言的hello world都是从命令式编程开始的。 什么是声明式编程?可以从一个现实中的例子来说明,这个例子就是年会。 举个年会的栗子? 作为我国科技公司的一个特色,每年春节前后都要举行年会,忙活了一年怎么都要热闹热闹,搞点娱乐活动,而且一定要有员工参与的娱乐活动,也就是要员工表演节目,表演节目就需要恰当的道具,所以,采购道具是年会准备中的重要一环。 每个公司准备年会节目道具的流程可能都会不一样,这里说一下我司Hulu的方法,技术公司的流程是非常技术化的,可谓声明式编程的楷模。 在Hulu,每个组都要在年会出节目,HR和各组节目负责人协调道具的采购,这个过程是这样: HR告知每一个节目负责人:“你们节目需要什么道具?告诉我,我会去买。” 然后,每个节目负责人会和自己的组员商量节目内容,最后给HR一个道具列表,之后就等着HR通知去领道具就行了。 结束了!这就是声明式编程的思想。 你可能会问:就这么简单? 回答:就这么简单,所有的采购、运输、协调,都由HR来做了。 没有对比就没有伤害,如果是用命令式编程的思想来处理,我们看看是怎样一个过程: …

Read More Read More

LDAP 中 CN, OU, DC 的含义

LDAP 中 CN, OU, DC 的含义

閱讀本文約花費: 5 (分鐘)很多人虽然会使用dsadd等命令添加用户,但是dsadd的命令说明里面并没有涉及到dc,cn,ou的含义,很多人都不明白,这里是微软的技术支持人员的回信,希望对大家有帮助。CN, OU, DC 都是 LDAP 连接服务器的端字符串中的区别名称(DN, distinguished name)LDAP连接服务器的连接字串格式为:ldap://servername/DN其中DN有三个属性,分别是CN,OU,DCLDAP是一种通讯协议,如同HTTP是一种协议一样的!在 LDAP 目录中, DC (Domain Component) CN (Common Name) OU (Organizational Unit) LDAP 目录类似于文件系统目录。 下列目录:DC=redmond,DC=wa,DC=microsoft,DC=com如果我们类比文件系统的话,可被看作如下文件路径:Com\Microsoft\Wa\Redmond 例如:CN=test,OU=developer,DC=domainname,DC=com在上面的代码中 cn=test 可能代表一个用户名,ou=developer 代表一个 active directory 中的组织单位。这句话的含义可能就是说明 test 这个对象处在domainname.com 域的 developer 组织单元中。…

Read More Read More

详谈高级程序员、架构师、技术总监、CTO从薪资到技能的区别

详谈高级程序员、架构师、技术总监、CTO从薪资到技能的区别

閱讀本文約花費: 9 (分鐘) 我希望用一篇文章完全让大家正确的理解从程序员到架构师、技术经理、技术总监、CTO的完整区别以及进阶要领。只有客观去认识,才会更加合理的找到自己的擅长点,从而更好的发展自己。 上图是典型的薪资结构图,我们先从高级程序员谈起。 高级程序员 一般是至少三年以上的工作经验,有些地方是五年以上,很多小公司或者创业公司,高级程序员覆盖工作职责比较广,基本包含部分产品经理、项目经理的工作职责以外,最主要负责核心代码编程,基本技术难点都自己解决为主。 在公司大一点的都有非常明确的职责和级别定义,以阿里外代表,P5-P6代表高级软件工程师这个级别,基本能独立负责设计和编码阶段。 其实,在国外例如google、facebook等公司,很多牛人的title都是Senior Level engineer,这一点不像在中国。 在国内,一般一个高级程序员的准确定义: 负责核心复杂功能的实现方案设计、编码实现。详细描述:能独立设计一个业务模块的能力,并且独立设计数据库表以及UML画图,利用部分设计模式以及懂得算法和效率的高质量代码。 架构师 一般能做到架构师这个称谓,工作年限至少都在5年-8年以上,具体还看每个人的学习能力和领悟能力,也有时间短的,但大部分都是个例。 之所以有架构师这个称谓,主要还是公司发展以及大了的需要,需要专注于技术的人,你也可以理解为技术专家,攻克公司技术难…

Read More Read More

为什么CTO、技术总监、架构师都不写代码,还那么强?

为什么CTO、技术总监、架构师都不写代码,还那么强?

閱讀本文約花費: 11 (分鐘)来源:技术领导力 常常会被问到这样的问题:CTO、技术总监、架构师很少写具体代码,为什么还很牛逼的样子,拿这么高工资? 其实,这个问题本身就错了。就好比问:导演、制片人为什么不懂演戏,还能指导演员,好像比演员厉害似的?其实不难理解,导演、制片人的核心能力并不是演戏,又怎么能跟演员作比较呢? 回答前面的问题,逻辑也是一样的,拿CTO、技术总监、架构师,跟程序员比写代码的能力,本身就是个错误。因为,他们的核心能力是不一样的。 CTO、技术总监、架构师的核心能力是技术判断力。简单来讲,就是判断一个项目、一个系统架构、某个技术方向,是否符合企业当前现状,是否对企业的未来产生价值。 程序员的核心能力是写代码的能力。就是做具体的代码实现。 所以CTO/技术总监/架构师,跟程序员的核心能力,是完全不一样的能力,是没法作直接比较的。 通常我们说,CTO、技术总监、架构师们很牛逼,指的是他们的技术判断力牛逼,而不是他们写代码的能力牛逼。相反,他们写代码的能力可能还比不上一个资深程序员。 但是,他们所做的技术判断,给公司带来非常高的价值。比如,阿里云创始人王坚博士,在所有人反对的时候,他坚持云计算是未来,帮助阿里提前布局云计算,为阿里成长为万亿商业帝国,立下汗马功劳。这就是技术判断力,给企业带来的巨大价值。 大家之所以都很容易混淆这几个角色,以及它们的职责,其实很重要的…

Read More Read More

技术总监7年经验——论程序员的职业发展路线

技术总监7年经验——论程序员的职业发展路线

閱讀本文約花費: 10 (分鐘)作为程序员,在开发岗位上做了几年,特别是到了30岁,这个而立之年,我们会来到一个重要的人生岔路口。就是管理和技术两个选择,一边专业路线,一边是管理路线。 在互联网的头部企业,对管理和技术是平等对待的,所以晋升会存在管理和技两个通道的 既然有了选择,就会有人纠结,不知道是选择专业路线,还是选择技术团队的管理路线。 这个选择是程序员人生中第一个大的选择,也是第一个障碍,倒不是说这个障碍是到底要不要选择管理,而更多的是对做管理的迟疑,怀疑到底能不能做好管理,做了管理之后,技术是不是就荒废了。 这种状态犹豫不决、摇摆不定的状态保持时间长了,最终会导致技术和管理都没做好,这是得不偿失的。 为了解决这个问题,有必要分析程序员职业发展的路线到底有几条,分别需要具备怎样的能力,从而做到”手中有粮,心中不慌“ 01技术 技术类上,是有两个方向:架构师和技术专家 架构师他的侧重点是在“广”上,他主要负责技术的整体和架构,在业务上,需要有很深的理解,有丰富的经验,甚至能做到“走的桥比你吃的盐还多”。在技术上,能够广泛涉略,掌握的技术知识越多,内力就越加深厚。 我觉得架构师还需要三点必备能力,其一需要有极强的执行力,能够快速的给出合理的方案,推动技术落地。其二需要有极强的判断力,能够准确的找到复杂系统的疑难问题所在,就像武林高手,一眼就看出对方的破绽。最后还需要有极强的创新…

Read More Read More

程序员、技术主管和架构师

程序员、技术主管和架构师

閱讀本文約花費: 17 (分鐘)程序员、技术主管和架构师 最近在进一步思考程序员的成长,曾经写过一篇《如何快速的成为架构师》,里面写了我对程序员主要成长阶段的定义,但在程序员从初级走向资深的过程中,会面临两个支路,一个叫「技术主管」,另一个则是「架构师」。为什么这是两条支路?因为现在回过来看,这两条路从来都不是程序员的自然成长路径,下面我们先从「技术主管」开始吧。 技术主管 技术主管,有些公司可能又叫「技术经理」,英文一般是 Tech Leader 或简称 TL。在拉姆·查兰 (Ram Charan) 那本《领导梯队》中提到一个人的工作角色中至少有百分之五十以上的时间是花费在管理事务上,那么他的角色才算是一个经理(Manager)。所以技术主管(经理)类似产品经理属于以经理命名却是非经理的角色。 「技术主管」是开发团队中的某位程序员需要对一起创建系统的整个开发团队负责时所承担的角色。通常他既要对最终交付的软件系统负责,另外也会像一个程序员一样去开发实现系统。一个技术主管的 60% ~ 70% 的时间可能花在了开发任务分解分配、开发实践、代码审核和风险识别上,而余下的 30% ~ 40% 的时间则花在为了保障系统按时交付所需的各种计划、协作、沟通、管理上。和团队管理者不同的是,技术主管的大部分管理工作都是针对具体研发任务和技术事务的。 例如:在一个开发团队中经常会碰到因为技术方案和实…

Read More Read More

程序员、架构师、技术经理、技术总监和CTO都是干什么的?

程序员、架构师、技术经理、技术总监和CTO都是干什么的?

閱讀本文約花費: 11 (分鐘)程序员   程序员,英文名coder/programmer,大家常自嘲叫码农的阶段。这个角色职责是把需求或产品实现为用户可用的软件产品。   此职位为执行级别。另外因为经验较少,一般需要求助别人,或与别人一起完(ban)成(zhuan)一个任务。   此阶段大概要经历3年,程序员的职责如下:   1、负责公司运营系统的设计与开发工作   2、运营数据处理和分析 高级程序员   高级程序员学名工程师。到了这个level,英文名可改叫做engineer或developer。此时你的功力开始增强,这与你平时的积累努力是分不开的,祝贺你~   此时的你不仅可以完成任务,开始注重代码的质量,能够写出工业级的代码。   你的经验可胜任模块级的系统设计,承担完成较为复杂的技术,能有效的自我管理,有帮助别人快速解决问题(trouble shooting)的能力。   此阶段你需要经历到7、8年左右的体验,中间要经历一段深刻自我历练的过程。   有时给人致命一击其实是心里的小蟊贼。一般人在5年前后遇到一个门槛,碰到天花板+彷徨期,或者你打心眼里不在喜欢编程,可尝试转为其它角色,如产品经理,售前售后支持等岗位,也不失为好选择。   当我们熬过这段儿,就会“山随平野尽,江入大荒流“,渐入佳境矣。   高级程序员定义软件功能、做开发计划推进和管理。可以带几个个帮手把产品规划…

Read More Read More

百度不需要用户

百度不需要用户

閱讀本文約花費: 18 (分鐘)技术改变世界,移动互联改变百度。 最近(此文作于2020年10月),百度发布了截至 2020 年 9 月 30 日未经审计的第三季度财务报告。百度几十个移动应用,但在财报只展现了百度 App、百家号、智能小程序的定量数据,而这些数据基本是被其他巨头“吊打”。 作为王牌,百度 App 月活跃用户数为 5.44 亿。相比之下,阿里巴巴中国零售市场移动月活跃用户达 8.81 亿;腾讯微信及 WeChat 的月活跃帐户为 12.1 亿,QQ 的智能终端月活跃账户数为 6.17 亿;而拼多多 Q3 平均月活跃用户也达到了 6.434 亿。 “夯实移动基础、决胜 AI 时代”,李彦宏在去年发布的内部信中总结了百度的核心战略。目前来看,已经 20 周岁的百度,的确需要夯实移动基础。 要负责的是商家 “有事找度娘”,搜索毫无疑问是百度手里的一张王牌。百度解决了搜索效率问题的同时,也拥有了巨大的流量展示权。百度依靠自己的流量优势,采取竞价排名等方式向商家收费。 这是一个说得通的商业模式,谷歌搜索也是如此。只不过,这将百度需要负责的对象更多地变成了商家,而非用户。商家可以通过提高费用的方式,提出在什么时间段内展示什么内容、要有多少点击量等具体要求,通过打广告赚钱,而百度就要想办法满足商家的这一诉求。 在灰岩今融创始人冯敏看来,如果出于对用户负责,百度在与商家签订合同时应…

Read More Read More

Session不香吗,为什么还要Token?

Session不香吗,为什么还要Token?

閱讀本文約花費: 16 (分鐘)我发现网上很多文章对 token 的介绍有误,所以对 cookie,session,token 作了一下对比(文中 token 指 jwt token)相信大家看完肯定有收获! Cookie 1991 年 HTTP 0.9 诞生了,当时只是为了满足大家浏览 Web 文档的要求 ,所以只有 GET 请求,浏览完了就走了,两个连接之间是没有任何联系的,这也是 HTTP 为无状态的原因,因为它诞生之初就没有这个需求。 但随着交互式 Web 的兴起(所谓交互式就是你不光可以浏览,还可以登录,发评论,购物等用户操作的行为),单纯地浏览 Web 已经无法满足人们的要求。 比如随着网上购物的兴起,需要记录用户的购物车记录,就需要有一个机制记录每个连接的关系,这样我们就知道加入购物车的商品到底属于谁了,于是 Cookie 就诞生了。 Cookie,有时也用其复数形式 Cookies。类型为“小型文本文件”,是某些网站为了辨别用户身份,进行 Session 跟踪而储存在用户本地终端上的数据(通常经过加密),由用户客户端计算机暂时或永久保存的信息 。 工作机制如下: 以加入购物车为例,每次浏览器请求后 server 都会将本次商品 id 存储在 Cookie 中返回给客户端,客户端会将 Cookie 保存在本地,下一次再将上次保存在本地的 Cookie 传给 serve…

Read More Read More

带你了解负载均衡

带你了解负载均衡

閱讀本文約花費: 7 (分鐘)相信很多小伙伴的公司都是服务治理,自动化运维了吧,那么我们很多东西都变成我们自己去设置了,比如自己创建一个域名,绑定他的代理机器,它的web负载均衡这些东西。所以今天跟大家一起来看看负载均衡。 你怎么看负载均衡 负载均衡是高可用网络基础架构的关键组件,通常用于将工作负载分布到多个服务器来提高网站、应用、数据库或其他服务的性能和可靠性。 相信很多小伙伴,一听到负载均衡四个字,第一个想到就是我们所说的Nginx吧,因为这个是离我们开发比较近的一个组件了。 第二个呢?就是我们Springcloud的组件中自带了负载均衡(ribbon),这个也是离我们开发比较近的 第三个?就是其实我们k8s里面的服务也是能做负载均衡的,目前主流容器使用方式 第四个就是我们DNS之后的一个负载均衡了SLB(这个之前运费负责的多点) 为啥要负载均衡呢? 大家看下面的图,当我们访问一个网站的时候,如果突然的流量增加,就会导致我们的服务不可用(单点故障) image.png 一个没有负载均衡的 web 架构类似下面这样: image.png 所以为了解决单点问题我们需要负载均衡(也是我们高可用,高性能,高并发的基石) 有负载均衡的架构 image.png web架构 image.png 聊聊SLB image.png 相信很多公司都有用到吧。 负载均衡的组成 负载均衡实例 (Inst…

Read More Read More

金庸:这一届侠客不行

金庸:这一届侠客不行

閱讀本文約花費: 9 (分鐘)文/六神磊磊、曾棘一金庸在1965年写了一本书,名字叫《侠客行》。看名字,你觉得可能这是要讲行侠仗义、一剑走江湖的故事。可结果看来看去,看到的都是——这一届侠客非常不行。《侠客行》的开头就是李白的一首同名古体诗,写得很漂亮,名字就叫《侠客行》。 未必细看,感受一下:赵客缦胡缨,吴钩霜雪明。银鞍照白马,飒沓如流星。十步杀一人,千里不留行。事了拂衣去,深藏身与名。闲过信陵饮,脱剑膝前横。将炙啖朱亥,持觞劝侯嬴。三杯吐然诺,五岳倒为轻。眼花耳热后,意气素霓生。救赵挥金槌,邯郸先震惊。千秋二壮士,烜赫大梁城。纵死侠骨香,不惭世上英。 谁能书阁下,白首太玄经。这首诗的主要内容,大致就是狠狠地吹了几个战国时的远古侠客的故事。这几个侠客有的是看门的,有的是杀猪的,却在关键时刻出手,帮助魏国公子信陵君出兵救赵,打败了秦军,流芳百世。这首诗被放在小说的开头,金庸等于是借着李白的作品,先树立了一个高高在上的侠客的标杆。你以为金庸这是以古喻今,可结果却是借古讽今。老爷子仿佛是满脸惆怅、神情复杂地指着眼下江湖上这帮人,说:怎么古代的侠客那么行,而你们现在却一点都不行?二且看李白在诗里追慕的侠客是什么样的呢?首先第一点就是要说话算数,信守诺言,所谓“三杯吐然诺,五岳倒为轻”。可小说里上来就出来了一个绝世高手谢烟客,各种说话不认,一门心思赖账。谢烟客这人都干了什么事儿呢?他面向江…

Read More Read More

假如易立竞吐槽程序员。。。

假如易立竞吐槽程序员。。。

閱讀本文約花費: 4 (分鐘)该文可能杀伤力较强,请谨慎服用。 你的发际线那么高,你的技术水平有那么高吗? 你没事就刷数据结构和算法,是真的喜欢,还是面试会考呢? 如果面试不考算法,你还会学吗? 就好像学了B树,但是每天的增删改查能不能用到B树你心里应该也有逼数吧。 你当初入行,是真的喜欢代码,还是觉得这行收入高呢? 现在入行了,收入真的高吗? 听说你喜欢开源项目,你有自己的开源项目吗? 还是说喜欢开源项目是为了方便抄开源项目的代码呢? 当用的第三方包有问题,你会看源码解决还是直接换个轮子用呢? 你当然不会看源码解决,因为你看不懂。 就算看得懂,老板会给你时间看吗? 产品第二天得上线不是吗? 说到产品,你们技术觉得一个产品经理的需求好不好实现,真的和提这个需求的产品经理颜值没有关系吗? 另外,这个需求真的实现不了吗?还是网上没有现成的代码让你抄呢? 离开百度、谷歌、stackoverflow,你还能完整实现一个需求的代码吗? 你用的IDE是正版的吗?还是从某宝某鱼上买的序列号呢? 你们程序员,是不是也只能接到使用盗版软件的律师函警告呢? 你写公众号吗?就是那种定位技术分享,但是除了技术啥都分享的公众号。 你写公众号,真的是为了总结自己的技术吗? 有专门记笔记的软件你知道吗? 你知道现在相同类型公众号的数量远远大于你的粉丝量吗? 文章推送出去,不发朋友圈,不分享到群里还会有人看吗? …

Read More Read More

Scroll Up