Deployment,通过指定副本数量等属性,根据配置的Pod模版,部署无状态的服务,能够提供强力的回滚,滚动更新等能力,这个也是最常用的一种;
Statefulset,有状态副本集,一般部署etcd,Elasticsearch等等这种有状态的服务,一般同时会挂载存储卷(也是Kubernetes中定义的一种对象);
DeamonSet,守护进程集,一般指定节点部署一些服务,比如CPU监控等。
CluserIP(默认), 通过iptables做NAT规则转换,将流量转到相应的Pod内,集群内部服务之间访问就是通过这种方式;
NodePort,暴露主机随机端口,kube-proxy组件将相应规则写入iptables表,访问主机端口将会被引流至相应的Pod,这种方式能够对集群外部暴露服务;
LoadBalancer,NodePort的变种,一般由具体的云服务商实现,比如阿里云,一旦Service创建后,会自动创建一个负载均衡,会自动做80:3xxxx端口的映射,流量通过负载均衡,会转到相应主机端口,最终根据iptables规则将流量转发到Pod内;
Ingress,作为7层http负载,作用相当于反向代理的Nginx的服务,流量通过一台负载均衡进来,可由Ingress配置域名或者路径,转发到相应Service。
资源调度,这一点上两者都都做到可以按集群资源调度分配,只是调度的粒度不同,Swarm是容器,而Kubernetes是Pod;
自动伸缩,Swarm本身不支持,但是依靠阿里云实现了该功能,而Kubernetes有水平自动拓展HPA,可以根据监控数据进行自动伸缩;
负载均衡,Kubernetes本身提供了多种方案,内部Service是通过iptables实现,外部7层负载均衡有Ingress层,阿里云也提供了LoadBalancer支持负载均衡,Swarm本身没有负载均衡层,不过阿里云也通过;
滚动更新,Swarm目前也支持了滚动更新,并且在阿里云上实现了蓝绿部署等,Kubernetes本身的deployment支持滚动升级;
容灾恢复,Swarm没有做到,在节点挂掉的情况下,服务无法快速恢复,Kubernetes是能够做到这一点,副本控制器能够维持副本数量,节点挂掉也会迅速从其他节点启动一定数量的副本,并且比较完善的监控也可以及时发现问题。
阿里云维护的高可用集群,免去了自维护的所面临的机房,网络诸多问题;
负载均衡的支持,不需要自己搭建配置Ingress组件,创建服务会自动生成负载均衡;
阿里云镜像仓库支持,可以直接从镜像创建Pod,且有创建模版,可以轻松的创建服务;
云盘等文件系统支持,非常方便的声明和挂载存储卷;
优秀的监控报警系统,从多个维度,对服务进行详细的监控,灵活配置报警。
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-l7-x86_64
enabled=1
gpgcheck=0
EOF
//;/etc/docker/daemon.json
{
"exec-opts": ["native.cgroupdriver=systemd"]
}
yum install -y ipvsadm
modprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- nf_conntrack_ipv4
Task63 | ReqTPS: 4522 | RespTPS: 4522 | RT: 12 | TotalSend: 3144614 | TotalPass: 3144558 | TotalFail: 0 | Thread: 60 | 2019-08-01 18:14:55
Task63 | ReqTPS: 4538 | RespTPS: 4536 | RT: 12 | TotalSend: 3140137 | TotalPass: 3140081 | TotalFail: 0 | Thread: 60 | 2019-08-01 18:14:54
Task63 | ReqTPS: 4583 | RespTPS: 4584 | RT: 12 | TotalSend: 3135644 | TotalPass: 3135590 | TotalFail: 0 | Thread: 60 | 2019-08-01 18:14:53
Task63 | ReqTPS: 4615 | RespTPS: 4616 | RT: 12 | TotalSend: 3131107 | TotalPass: 3131052 | TotalFail: 0 | Thread: 60 | 2019-08-01 18:14:52
Task63 | ReqTPS: 4525 | RespTPS: 4527 | RT: 12 | TotalSend: 3126538 | TotalPass: 3126482 | TotalFail: 0 | Thread: 60 | 2019-08-01 18:14:51
Task63 | ReqTPS: 4480 | RespTPS: 4480 | RT: 12 | TotalSend: 3122058 | TotalPass: 3122000 | TotalFail: 0 | Thread: 60 | 2019-08-01 18:14:50
Task63 | ReqTPS: 4537 | RespTPS: 4531 | RT: 12 | TotalSend: 3117623 | TotalPass: 3117565 | TotalFail: 0 | Thread: 60 | 2019-08-01 18:14:49
Task63 | ReqTPS: 4529 | RespTPS: 4530 | RT: 12 | TotalSend: 3113131 | TotalPass: 3113079 | TotalFail: 0 | Thread: 60 | 2019-08-01 18:14:48
Task63 | ReqTPS: 4521 | RespTPS: 4522 | RT: 12 | TotalSend: 3108647 | TotalPass: 3108594 | TotalFail: 0 | Thread: 60 | 2019-08-01 18:14:47
Task63 | ReqTPS: 4495 | RespTPS: 4496 | RT: 12 | TotalSend: 3104171 | TotalPass: 3104117 | TotalFail: 0 | Thread: 60 | 2019-08-01 18:14:46
Task63 | ReqTPS: 7391 | RespTPS: 7392 | RT: 7 | TotalSend: 3970815 | TotalPass: 3970763 | TotalFail: 0 | Thread: 60 | 2019-08-01 17:42:24
Task63 | ReqTPS: 7363 | RespTPS: 7366 | RT: 7 | TotalSend: 3963498 | TotalPass: 3963445 | TotalFail: 0 | Thread: 60 | 2019-08-01 17:42:23
Task63 | ReqTPS: 7231 | RespTPS: 7229 | RT: 7 | TotalSend: 3956209 | TotalPass: 3956153 | TotalFail: 0 | Thread: 60 | 2019-08-01 17:42:22
Task63 | ReqTPS: 7394 | RespTPS: 7392 | RT: 7 | TotalSend: 3949050 | TotalPass: 3948996 | TotalFail: 0 | Thread: 60 | 2019-08-01 17:42:21
Task63 | ReqTPS: 7227 | RespTPS: 7228 | RT: 7 | TotalSend: 3941730 | TotalPass: 3941678 | TotalFail: 0 | Thread: 60 | 2019-08-01 17:42:20
Task63 | ReqTPS: 7078 | RespTPS: 7080 | RT: 8 | TotalSend: 3934575 | TotalPass: 3934522 | TotalFail: 0 | Thread: 60 | 2019-08-01 17:42:19
Task63 | ReqTPS: 6932 | RespTPS: 6933 | RT: 8 | TotalSend: 3927568 | TotalPass: 3927513 | TotalFail: 0 | Thread: 60 | 2019-08-01 17:42:18
Task63 | ReqTPS: 6887 | RespTPS: 6882 | RT: 8 | TotalSend: 3920698 | TotalPass: 3920642 | TotalFail: 0 | Thread: 60 | 2019-08-01 17:42:17
Task63 | ReqTPS: 6837 | RespTPS: 6840 | RT: 8 | TotalSend: 3913880 | TotalPass: 3913829 | TotalFail: 0 | Thread: 60 | 2019-08-01 17:42:16
Task63 | ReqTPS: 6866 | RespTPS: 6864 | RT: 8 | TotalSend: 3907111 | TotalPass: 3907057 | TotalFail: 0 | Thread: 60 | 2019-08-01 17:42:15
Task63 | ReqTPS: 4569 | RespTPS: 4571 | RT: 8 | TotalSend: 1716607 | TotalPass: 1716573 | TotalFail: 0 | Thread: 40 | 2019-08-01 18:58:59
Task63 | ReqTPS: 4571 | RespTPS: 4568 | RT: 8 | TotalSend: 1712084 | TotalPass: 1712048 | TotalFail: 0 | Thread: 40 | 2019-08-01 18:58:58
Task63 | ReqTPS: 4517 | RespTPS: 4520 | RT: 8 | TotalSend: 1707559 | TotalPass: 1707526 | TotalFail: 0 | Thread: 40 | 2019-08-01 18:58:57
Task63 | ReqTPS: 4542 | RespTPS: 4541 | RT: 8 | TotalSend: 1703087 | TotalPass: 1703051 | TotalFail: 0 | Thread: 40 | 2019-08-01 18:58:56
Task63 | ReqTPS: 4473 | RespTPS: 4473 | RT: 8 | TotalSend: 1698590 | TotalPass: 1698555 | TotalFail: 0 | Thread: 40 | 2019-08-01 18:58:55
Task63 | ReqTPS: 4510 | RespTPS: 4514 | RT: 8 | TotalSend: 1694162 | TotalPass: 1694127 | TotalFail: 0 | Thread: 40 | 2019-08-01 18:58:54
Task63 | ReqTPS: 4539 | RespTPS: 4536 | RT: 8 | TotalSend: 1689697 | TotalPass: 1689658 | TotalFail: 0 | Thread: 40 | 2019-08-01 18:58:53
Task63 | ReqTPS: 4563 | RespTPS: 4561 | RT: 8 | TotalSend: 1685203 | TotalPass: 1685167 | TotalFail: 0 | Thread: 40 | 2019-08-01 18:58:52
Task63 | ReqTPS: 4573 | RespTPS: 4575 | RT: 8 | TotalSend: 1680686 | TotalPass: 1680652 | TotalFail: 0 | Thread: 40 | 2019-08-01 18:58:51
Task63 | ReqTPS: 4555 | RespTPS: 4555 | RT: 8 | TotalSend: 1676159 | TotalPass: 1676123 | TotalFail: 0 | Thread: 40 | 2019-08-01 18:58:50