服务

kubernetes服务是为一组功能相同的pod提供单一不变的接入点资源。当一个服务存在时,它的IP和端口不会改变。客户端通过IP地址和端口号建立连接。连接会被路由到提供该服务的任意一个pod。

通过这种方式,客户端不需要知道提供服务pod的ip和端口信息,这样这些pod可以在集群中随时被创建和删除。

假如有前端web服务器和后端数据库服务器,有很多pod提供前端服务,而中有一个pod提供后台数据库服务。需要解决两个问题才能发挥系统作用

  • 外部客户无须关心服务器数量而连接到前端Pod上。

  • 前端的pod需要连接后端的数据库。由于数据库运行在pod上,他可能会在集群中随时重启而移动,导致IP地址随时变动。当后端数据库被移动时,不必为前端pod重新配置。

阅读全文 »

了解Secret

为了存储与分发此类信息,Kubemetes提供了一种称为Secret的单独资源对象。Secret结构与ConfigMap类似,均是键/值对的映射。Secret的使用方法也与ConfigMap相同,可以

将Secret条目作为环境变量传递给容器

将Secret条目暴露为卷中的文件

Kubernetes通过仅仅将Secret分发到需要访问Secret的pod所在的机器节点来保障其安全性。另外,Secret只会存储在节点的内存中,永不写入物理存储,这样从节点上删除Secret时就不需要擦除磁盘了。

对于主节点本身(尤其是etcd),Secret通常以非加密形式存储,这就需要保障主节点的安全从而确保存储在Secret中的敏感数据的安全性。这种保障不仅仅是对etcd存储的安全性保障,同样包括防止未授权用户对API服务器的访问,这是因为任何人都能通过创建pod并将Secret挂载来获得此类敏感数据。

从Secret与ConfigMap中做出正确选择是势在必行的,选择依据相对简单:

·采用ConfigMap存储非敏感的文本配置数据。 采用Secret存储天生敏感的数据,通过键来引用,如果一个配置文件同时包含敏感与非敏感数据,该文件应该被存储在Secret中。

默认令牌Secret

对任意一个pod使用命令kubectl describe pod,输出往往包含如下信息:

1
2
3
default-token-6nw87:
Type: Secret (a volume populated by a Secret)
SecretName: default-token-6nw87
阅读全文 »

为何要更换CDN源

waline默认指定CDN为unpkg,虽然使用外部CDN,在一定程度上减少自身服务器的负担和带宽消耗,但CDN请求有时并不稳定,以导致网页加载时间过长甚至异常。如unpkg获取表情的库有时会无法访问,导致表情无法正常加载。故可以将从外部获取的CDN源下载至本地,统一使用站内的 Web 资源文件,以此来解决外部源不稳定的问题。

阅读全文 »

kube-proxy

和Service相关的任何事情都有每个节点上运行的kube-proxy进程处理。开始的时候,kube-proxy确实是一个proxy,等待连接,对每个进来的连接,连接到一个pod。这称为userspace(用户空间)代理模式。后来,性能更好的iptables代理模式取代了它。iptables代理模式目前是默认的模式。

每个Service有其自己稳定的IP地址和端口。客户端(通常为pod)通过连接该IP和端口使用服务。IP地址是虚拟的,没有被分配给任何网络接口,当数据包离开节点时也不会列为数据包的源或目的IP地址。Service的一个关键细节是,它们包含一个IP、端口对(或者针对多端口Service有多个IP、端口对),所以服务IP本身并不代表任何东西。这就是为什么你不能够ping它们。

阅读全文 »
0%