0%

题意

给出一个包含大小写字母的字符串。求出由这些字母构成的最长的回文串的长度是多少。

数据是大小写敏感的,也就是说,"Aa" 并不会被认为是一个回文串。

注意事项

假设字符串的长度不会超过 1010

阅读全文 »

Helm是kubernetes的官方包管理工具。根据官网上的描述Helm is the best way to find, share, and use software built for Kubernetes.可以看出helm在kubernetes社区中的定位。

这篇文章并不是helm的入门文章,而是着重于如何在本地开发chart。希望进行helm入门的同学可以参考官方文档。

阅读全文 »

Helm是kubernetes的官方包管理工具。根据官网上的描述Helm is the best way to find, share, and use software built for Kubernetes.可以看出helm在kubernetes社区中的定位。

这篇文章并不是helm的入门文章,而是着重于helm中的chart之间如何传递value。希望进行helm入门的同学可以参考官方文档。

阅读全文 »

Kubernetes 处理网络的方式和Docker不同,主要需要解决四种问题:

  1. 高度耦合的Container之间的网络通信:这个由Pod和localhost通信解决了;
  2. Pod和Pod之间的网络通信,这个是本篇的主要内容;
  3. Pod和Service之间的通信,这个是由Service解决的;
  4. 外部Service和内部Service之间的通信,这个也是由Service解决的。
阅读全文 »

在我之前的kubernetes中的Service中,我们可以看到如何使用Service来让我们的应用可以被集群外所访问到。但是在实际使用中,仍然存在一些问题。对于我们经常用的NodePort和LoadBalancer这两个type,LoadBalancer需要底层的infra支持,并且哪怕支持了我们也不能轻易用,因为LoadBalancer资源是有限的,而且最重要的是贵,贵,贵。而对于NodePort来说,我们需要经常更新我们的proxy设置,并且追踪哪些Port被使用了,所以也是很麻烦的。

万能的程序猿总是有解决方案,ingress应运而生。

阅读全文 »

为什么要有这俩玩意儿?

我们在kubernetes上部署应用的时候,经常会需要传一些配置给我们的应用,比如数据库地址啊,用户名密码啊之类的。我们要做到这个,有好多种方案,比如:

  • 我们可以直接在打包镜像的时候写在应用配置文件里面,但是这种方式的坏处显而易见而且非常明显。
  • 我们可以在配置文件里面通过env环境变量传入,但是这样的话我们要修改env就必须去修改yaml文件,而且需要重启所有的container才行。
  • 我们可以在应用启动的时候去数据库或者某个特定的地方拿,没问题!但是第一,实现起来麻烦;第二,如果配置的地方变了怎么办?

当然还有别的方案,但是各种方案都有各自的问题。

而且,还有一个问题就是,如果说我的一个配置,是要多个应用一起使用的,以上除了第三种方案,都没办法进行配置的共享,就是说我如果要改配置的话,那得一个一个手动改。假如我们有100个应用,就得改100份配置,以此类推……

kubernetes对这个问题提供了一个很好的解决方案,就是用ConfigMapSecret

阅读全文 »

我们都知道,容器是一个短暂的不稳定的存在(随时可能挂掉),挂掉之后里面的所有数据都没了,但是我们会有很多数据是需要一直存下来(持久化)的,那怎么办呢?思路很简单,把容器里面的数据存到一个可以持久化的地方(比如s3上)。

阅读全文 »

Service 是kubernetes中一个很重要的,也是很有用的概念,我们可以通过service来将pod进行分组,并提供外网的访问endpoint。在这个过程中还有比如kube-proxy提供了对service的访问。

阅读全文 »

Kubernetes中有很多积木(Building Blocks),比如object model,pod,rs,deployment,namespace之类,这些都是kubernetes中很重要的东西。

阅读全文 »

在这篇文章里,会主要记录一下kubernetes安装相关的信息。

阅读全文 »