结业设计题目是写一个基于微处事的高可用应用系统。微处事的陈设利用 docker + k8s,所以前提是要有一个 k8s 集群。搭建进程中碰着了一些坑,昆山软件开发,把整个流程 记录下来一是回首搭建进程,二是但愿能尽大概的辅佐厥后的 k8s beginners 少走些弯路。
本文的偏重点在实际操纵,k8s 组件根基观念相关的信息请参考 k8s 官方文档 或 Kubernetes 指南 – by feiskyer
假如对付本文有什么发起、意见及疑问,接待提 issue,或直接发邮件交换(邮箱很容易能找到,不再提供)。
情况依赖
本文假设读者会利用 Linux 呼吁行。
k8s 的镜像源在墙外,所以需要读者把握科学上网的技术。这个部门不属于本文的描写范畴,我利用的方案是 Shadowsocks + Privoxy,有需要可以跟我交换。
- Docker : 1.13.1 - kube* : 1.10 - flannel : 0.10.0 - virtualBox: 5.2.8 - OS : ubuntu-16.04.4-server-amd64.iso
virtualBox 的版本不太重要,Docker 和 kube* 的版本最好利用 k8s 推荐的版本,不然大概会有问题,推荐的 Docker 版本可以在版本的 release
文档中查察。OS 的版本差异,后头的一些设置的要了解略有差异。
搭建方针
主机名 | 主机 IP | flannel.1 | OS | 集群脚色 |
---|---|---|---|---|
master | 192.168.99.200 | 10.244.0.0 | Ubuntu 16.04 | master |
node1 | 192.168.99.201 | 10.244.1.0 | Ubuntu 16.04 | node |
node2 | 192.168.99.202 | 10.244.2.0 | Ubuntu 16.04 | node |
flannel.1 是 每台呆板上的一个 VNI,通过 ifconfig
呼吁可以查察该接口的信息。
从任意一台呆板 ping 别的两台呆板 flanel.1 的 IP 能通就算集群搭建乐成。
# from master $ ping 10.244.1.0 PING 10.244.1.0 (10.244.1.0) 56(84) bytes of data. 64 bytes from 10.244.1.0: icmp_seq=1 ttl=64 time=0.659 ms 64 bytes from 10.244.1.0: icmp_seq=2 ttl=64 time=0.478 ms 64 bytes from 10.244.1.0: icmp_seq=3 ttl=64 time=0.613 ms ^C --- 10.244.1.0 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 1999ms rtt min/avg/max/mdev = 0.478/0.583/0.659/0.079 ms $ ping 10.244.2.0 PING 10.244.2.0 (10.244.2.0) 56(84) bytes of data. 64 bytes from 10.244.2.0: icmp_seq=1 ttl=64 time=0.459 ms 64 bytes from 10.244.2.0: icmp_seq=2 ttl=64 time=0.504 ms 64 bytes from 10.244.2.0: icmp_seq=3 ttl=64 time=0.553 ms ^C --- 10.244.2.0 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2058ms rtt min/avg/max/mdev = 0.459/0.505/0.553/0.042 ms
k8s 个组件之间的干系
苏州软件定制开拓 节点k8s集群" class="aligncenter size-large wp-image-30494" title="k8s-arch" src="/uploads/allimg/c181120/1542AM294640-12456.png" />
其实这个没须要多说,Kubernetes Components 或 Kubernetes 焦点组件 – by feiskyer 讲的已经很是好了,这里提到只是强调一下这部门的重要性。
k8s Pod 网络模子简介
苏州软件定制开拓 节点k8s集群" class="aligncenter size-large wp-image-30493" title="k8s-net-model" src="/uploads/allimg/c181120/1542AM29545P-21R7.png" />
为了省事,我直接引用了别人画的模子图。对付本次搭建的集群模子简朴描写如下:
苏州软件定制开拓 节点k8s集群" class="aligncenter size-full wp-image-30492" title="Snipaste_2018-11-19_12-43-34" src="/uploads/allimg/c181120/1542AM2956320-33M0.png" />
cni0
和 flannel.1
都是 VNI,由 flannel 组件建设,集群搭建完成后可以通过 ifconfig
举办查察。flanneld
,它是用来转发流量,办理主机间通信的问题。enp0s8
是 virtualBox 的 Host-Only 适配器。设置流程
利用 virtualBox 建设三台虚拟机
virtualBox 安装较量简朴,不再先容,GUI 东西用起来也很利便,这部门只先容我认为需要提示的部门。
enp0s8
利用静态 IP。设置请参考 SSH between Mac OS X host and Virtual Box guest。留意设置时将个中的网络接口名改成你本身的 Host-Only Adapter 对应的接口。安装 Docker