Roy学Kubernetes(16):应用程序连接Service

本章我们将讨论kubernetes中连接到serivce容器的方法,首先我们来看它和docker容器网络工作模式的对比:

  • Docker默认使用主机私有网络通信,因此同一主机的容器之间可以互通。为了实现不同主机之间的容器访问,必须通过绑定本机端口来将请求转发或代理到其他节点容器。这就意味着容器必须协调好它们使用的端口,或者必须动态分配使用主机端口。当项目有多个开发人员时,协调端口及网络安全方面需要消耗更多的时间和人力成本。

阅读全文

linux磁盘IO查看命令iotop

linux服务器如果磁盘性能不佳,或者进程操作IO量超过磁盘负荷,都会导致磁盘IO响应缓慢,甚至出现宕机的情况。很多人会说,我有iostat命令啊。但是如果需要找到哪个进程对磁盘IO操作压力最大,iostat是不能帮我们直接呈现的,这时候,另一个利器iotop就派上用场了。

iotop命令

阅读全文

linux磁盘IO测试工具hdparm

磁盘IO性能

服务器磁盘IO是最可能影响服务器性能发挥的指标之一,在很多情况下,服务器负载异常都可能与磁盘IO性能不足有关。所以很多时候我们需要做磁盘测试,hdparm就是一个很好的磁盘测试工具。

命令语法

1
hdparm [-CfghiIqtTvyYZ][-a <快取分区>][-A <0或1>][-c <I/O模式>][-d <0或1>][-k <0或1>][-K <0或1>][-m <分区数>][-n <0或1>][-p <PIO模式>][-P <分区数>][-r <0或1>][-S <时间>][-u <0或1>][-W <0或1>][-X <传输模式>][设备]

阅读全文

yum通过squid代理连接外网

平时大家在部署环境或项目时,肯定有碰到类似的网络环境:私有网络中,有一台机器(一般是跳板机或代理机)可访问外网,其它机器无外网访问权限。这时除这台以外的其他机器,yum无法正常安装软件。解决方案是:在有外网权限的机器上配置squid代理到公网,然后为内网其他机器配置yum代理,使用公网的yum源(例如mirrors.aliyun.com)安装软件包。

阅读全文

使用Docker swarm mode创建多节点容器集群

1.初始化创建swarm

1
docker swarm init --advertise-addr <MANAGER-IP>

阅读全文

Roy学Kubernetes(15):Pod和Servicer的DNS

Kubernetes为集群内的Pod和Service提供了DNS服务,它会自动配置kubelet以告知各个容器使用DNS服务的IP来解析集群内的DNS名称。集群中定义的每个Service服务(包括DNS服务器本身)都会分配一个DNS名称。 默认情况下,客户端Pod的DNS搜索列表将包含Pod自己的namespace和集群的默认域(默认是cluster.local)。所以同namespace内的Servie和Pod的DNS记录查询,可以省略namespace和默认域。

阅读全文

Roy学Kubernetes(14):控制器之CronJob

CronJob是基于时间的任务,和linux系统中的计划任务crontab同理。一个CronJob对象就像一行crontab(cron表)文件。 它以给定的时间表定期运行指定的任务,语法与crontab格式相同。(在Kubernetes1.4版本名为ScheduledJob,从1.5版本开始改成CronJob)

阅读全文

Roy学Kubernetes(13):控制器之Jobs

Job创建一个或多个Pod并确保指定数量的Pod成功执行并终止。 当pod成功完成后,Job会跟踪任务完成情况。 达到指定数量的成功完成时,任务(即Job)完成。您还可以使用Job并行运行多个Pod。

一个简单的例子是创建一个Job任务对象,以便可靠地运行一个Pod来完成。 如果第一个Pod失败或被删除(例如由于节点硬件故障或节点重启),Job对象将启动一个新的Pod。

阅读全文

EFK收集nginx日志并展示来源IP地图

格式化nginx日志

首先,为了方便收集nginx日志,先格式化nginx日志为json,打开nginx.conf配置文件,在http{}中添加如下日志格式化参数

阅读全文

Roy学Kubernetes(12):控制器之DaemonSet

DaemonSet确保全部(或部分,取决于你对DaemonSet限制要求)节点上运行一个Pod的副本。当有节点加入集群时,也会自动为此节点新增一个Pod 。 当有节点从集群移除时,这些Pod也会被回收。删除DaemonSet将会删除它创建的所有Pod。

常用场景:

    阅读全文