2020年12月08日,OpenSSL官方发布安全公告,披露CVE-2020-1971
OpenSSL GENERAL_NAME_cmp 拒绝服务漏洞。当两个GENERAL_NAME都包含同一个EDIPARTYNAME时,由于GENERAL_NAME_cmp函数未能正确处理,从而导致空指针引用,并可能导致拒绝服务。
2020年12月08日,OpenSSL官方发布安全公告,披露CVE-2020-1971
OpenSSL GENERAL_NAME_cmp 拒绝服务漏洞。当两个GENERAL_NAME都包含同一个EDIPARTYNAME时,由于GENERAL_NAME_cmp函数未能正确处理,从而导致空指针引用,并可能导致拒绝服务。
在使用Kubernetes
的时候,因为有太多的资源、太多的版本、太多的组了,这些都非常容易产生混淆。如果我们通过 YAML 文件定义过 Deployment 这样的资源清单文件的话,那么你应该会看到apiVersion: apps/v1beta2
、apiVersion: apps/v1
等等这样的信息,那么我们到底应该使用哪一个呢?哪一个才是正确的呢?如何检查Kubernetes
集群支持哪些?其实我们使用kubectl
工具就可以来解决我们的这些疑惑。
当前我使用的Kubernetes
的版本是1.18.8
。
最近我在快速提交代码到Github远程仓库的时候,发现提交了一些非必须文件,如缓存文件,而且这些文件比较大,影响了CI工具拉取github仓库的状态(CI工具网速不够快),导致无法将最新的提交触发CI。
这里快速介绍一种快速的方法:
第一步:快速找到你要回滚的git commit id
;
git log
第二步:将本地变更回滚(切记使用–soft,这样会保存你工作区的变更,只是移除了暂存区的代码,不要使用–hard)
git reset --soft commit-id-xxxxxx
第三步:缓存你工作区的变更
git stash
第四步:
git push --force --no-verify
这时候github远程仓库,已经回滚到你reset的commitId了。切记如果这时候有别人最新的提交也是会回滚的。
第五步:
git stash pop
这样你又可以修改本地的修改,之后再次提交就好了。
现在安装 Kubernetes 集群已经变得越来越简单了,出现了很多方案,各种方案都有自己适合的使用场景。虽然我们可以很快速在云环境下面启动一个 Kubernetes 集群,但是对于开发人员通常更喜欢能够快速上手的东西,Kubernetes in Docker(Kind)这个工具就可以通过创建容器来作为 Kubernetes 的节点,我们只需要在机器上安装 Docker 就可以使用,它允许我们在很短的时间内就启动一个多节点的集群,而不依赖任何其他工具或云服务商。
前面的文章也讲过如何在本地使用Vagrant来快速搭建Kubernetes集群,但还是有点麻烦,而且需要自己去定制Vagrant Box,有一定的技术门槛。
[阅读全文]很多人在学习Kubernetes之前,都会苦恼如何搭建一个集群环境呢?你可以使用新版的Docker快速搭建一个单Master的集群,你也可以购买云厂商的集群服务;使用Docker安装集群非常的简单,但是只能是单master节点;购买云厂商的集群服务可以拥有所有的集群功能,而且任意购买云存储,外网LoadBalancer等,但是费用昂贵,因为k8s集群对机器的要求还是不低的。那有没有其他的选择呢?下面给大家介绍我是如何在本地快速搭建k8s集群的。
使用Vagrant定制Centos7 Box,里面包含了Linux参数优化,Docker,Kubectl,Kubeadm,Kubelet等。这样就可以通过这个Vagrant Box启动多个节点的k8s集群了。
最近花了点时间将所有的配置都脚本化,可以通过CLI的方式快速构建基础Box或者删除。
[阅读全文]花了2天的时间看完这本书:《凤凰项目(沙盘特别版)》,感触颇深。和所有讲DevOps相关的书不同,感觉就在读小说一样,而且非常的励志,讲述了一家陷入困境的传统制造业公司,怎么凭借凤凰项目(或者独角兽项目)起死回生的。IT运维在其中发挥了只管重要的作用。
最近这半年来,我大部分的工作也集中在开发运维上,在这个过程中,也接触到了很多DevOps相关的知识和实践,虽然书中很多东西比较旧,但是还是有很多只得借鉴的地方。 读这本书的时候,有很多地方产生了共鸣,一度让我回忆起了之前参与公司的TWI中的课程,关于敏捷和精益的部分,尤其是精益思想。
[阅读全文]现在的Web应用启用HTTPS
服务是真的非常有必要的。一些正规机构颁发的CA证书费用又特别高,就算有免费的工具颁发证书,通过人工的方式手动注入到K8S比较麻烦,而且还需要到期后进行人工续期,若管理的证书过多,还无法颁发泛域名的话,那就更加麻烦了。
这里介绍一下免费的午餐 - Let's Encrypt
,虽然只有90天的证书有效期,但是我们完全可以在证书失效之前,重新生成证书替换掉。在Kubernetes集群中就更方便了,我们可以通过 Kubernetes Ingress 和 Let’s Encrypt 实现外部服务的自动化 HTTPS。
Cert-Manager 是一个云原生证书管理开源项目,用于在 Kubernetes 集群中提供 HTTPS 证书并自动续期,支持 Let’s Encrypt / HashiCorp / Vault 这些免费证书的签发。
前面的文章里我们学习了 PV
和 PVC
的使用方法,但是前面的 PV 都是静态的,什么意思呢?就是我要使用的一个 PVC 的话就必须手动去创建一个 PV,我们也说过这种方式在很大程度上并不能满足我们的需求,比如我们有一个应用需要对存储的并发度要求比较高,而另外一个应用对读写速度又要求比较高,特别是对于 StatefulSet
类型的应用简单的来使用静态的 PV 就很不合适了,这种情况下我们就需要用到动态 PV,也就是我们今天要讲解的 StorageClass
。
Kubernetes提供了可靠的存储来保存应用的持久化数据,这样容器在重建后,依然可以使用之前的数据。但是显然存储资源和 CPU 资源以及内存资源有很大不同,为了屏蔽底层的技术实现细节,让用户更加方便的使用,Kubernetes
便引入了 PV
和 PVC
两个重要的资源对象来实现对存储的管理。
我们都知道HTTPS能够加密信息,以免敏感信息被第三方获取。所以很多银行网站或电子邮箱等等安全级别较高的服务都会采用HTTPS协议。
[阅读全文]之前使用二进制Hard-Way模式搭建了Kubernetes三节点集群,今天采用Kubeadm 来快速搭建Kubernetes V1.16.8集群。
[阅读全文]