主页

使用云厂商托管K8S时容器域名解析注意事项

云厂商托管 Kubernetes 服务的 Pod 域名解析注意事项 使用云厂家提供托管式Kubernetes,Pod的域名解析参数,通过界面创建Pod的话,可能厂商界面没有开放dnsConfig配置,采用了一些默认值,在使用时候,需要了解清楚厂商提供的默认配置,否则会存在问题。 典型的一个配置是 ndots ,如果你在Pod内访问的域名字符串,点 数量在 ndots 阈值范围内,则被认为是Kubernetes集群内部域名,会被追加 **..svc.cluster.local** 后缀,这样会导致每次解析域名时候有2次(IP4/IP6)无效解析,在大规模并发场景下存在性能瓶颈。 云厂商一般将Kubernetes的DNS服务(CoreDNS或SkyDNS)与厂商提供的外部DNS级联了,因...

阅读更多

在容器内获取Pod或Container属性

在容器内获取Pod或Container属性 容器内的应用程序有获取容器定义元数据的需求,如容器名称,容器IP地址,容器资源配额等,这些信息在容器调用系统K8S中都存在。在早期的K8S中是不暴露的应用使用的,随着客户诉求的增多,K8S开放了这些信息给应用程序。 通过环境变量将Pod信息呈现给容器

阅读更多

SDK与ServiceMesh微服务框架融合

现状与挑战 自从Netflix在AWS上实践PaaS平台的经验被推广后,同时借助开源出来的SpringCloud微服务框架,微服务领域一直是Java语言+Java SDK模式占统治地位。 经过这么些年的发展,微服务架构思想已经深入影响了各行各业架构师的架构选型,在技术架构选型的备选中,微服务通常是第一个考虑的。SDK模式的微服务架构已经被广泛应用于生产系统。

阅读更多

多款开源产品发起闭源行动

开源模式 到目前为止,开源模式是一种成功的商业模式,通过软件代码开源,免费做推广,然后收企业服务费用。 随着公有云的兴起,云厂家基于开源产品提供软硬件一体化服务(PaaS或SaaS),以软件服务方式带动硬件资源销售。

阅读更多

应用运维假想场景与辅助系统

运维人员假想的工作场景 维人员希望提前发现系统潜在问题,发现并定位潜在问题的步骤通常为: 判断系统可能会有问题需要运维提前介入处理 a. 运维系统没法自动决策判断是否有问题,需要运维人员根据经验判断 b. 运维人员希望有指标维度的监控面板:如cpu指标,列出当前所有节点的平均cpu,列出top 5 cpu,点进去可以查看所有节点cpu占用详情

阅读更多

K8S ELB Service 中创建 负载均衡 服务

场景 Service发布到负载均衡是最常用的功能,当前云服务商提供的负载均衡并未与K8S Service关联,但是当负载均衡对象不存在的时候,需要手动创建Service。 实现 阿里云 在K8S Service 通过注解定义负载均衡,负载均衡的生命周期与K8S Service 绑定。 annotations: service.beta.kubernetes.io/alicloud-loadbalancer-spec: slb.s2.small service.beta.kubernetes.io/alicloud-loadbalancer-address-type: internet service.beta.kubernetes.io/alicloud-load...

阅读更多

Kubernetes Pod 设置 Docker run 的 shm_size 参数

shm_size docker run 默认的共享内存大小 /dev/shm 为 64M,某些场景想增加此挂载目录的大小,在swarm或直接docker run的方式,通过 --shm_size=xxxM 方式可以设置共享内存大小。 但是通过 Kubernetes 创建的 Pod 无法指定 docker run 的参数,具体讨论可参考 issue-28272。 建议通过 mount 一个介质为 Memory 的 EmptyDir 方式变通解决此问题。

阅读更多