欢迎访问昆山宝鼎软件有限公司网站! 设为首页 | 网站地图 | XML | RSS订阅 | 宝鼎邮箱 | 后台管理


新闻资讯

MENU

软件开发知识
原文出处: Rainstorm

结业设计题目是写一个基于微处事的高可用应用系统。微处事的陈设利用 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 个组件之间的干系

本机搭建三  <a href=苏州软件定制开拓 节点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 网络模子简介

本机搭建三  <a href=苏州软件定制开拓 节点k8s集群" class="aligncenter size-large wp-image-30493" title="k8s-net-model" src="/uploads/allimg/c181120/1542AM29545P-21R7.png" />

  • 图片来历:一次Flannel和Docker网络不通定位问题
  • 为了省事,我直接引用了别人画的模子图。对付本次搭建的集群模子简朴描写如下:

    本机搭建三  <a href=苏州软件定制开拓 节点k8s集群" class="aligncenter size-full wp-image-30492" title="Snipaste_2018-11-19_12-43-34" src="/uploads/allimg/c181120/1542AM2956320-33M0.png" />

    1. cni0 和 flannel.1 都是 VNI,由 flannel 组件建设,集群搭建完成后可以通过 ifconfig 举办查察。
    2. flannel 组件 在每台呆板上运行了一个 flanneld,它是用来转发流量,办理主机间通信的问题。
    3. enp0s8 是 virtualBox 的 Host-Only 适配器。

    设置流程

    利用 virtualBox 建设三台虚拟机

    virtualBox 安装较量简朴,不再先容,GUI 东西用起来也很利便,这部门只先容我认为需要提示的部门。

    1. 内存推荐 2048M, CPU 推荐 2个
    2. 默认只有一个 NAT 适配器,添加一个 Host-Only Adapter。NAT 适配器是虚拟机用来会见互联网的,Host-Only 适配器是用来虚拟机之间通信的。
    3. 以 Normal Start 方法启动虚拟机安装完系统今后,因为是 server 版镜像,所以没有图形界面,昆山软件开发,直接利用用户名暗码登录即可。
    4. 修改设置,enp0s8 利用静态 IP。设置请参考 SSH between Mac OS X host and Virtual Box guest。留意设置时将个中的网络接口名改成你本身的 Host-Only Adapter 对应的接口。
    5. 一台虚拟机建设完成今后可以利用 clone 要领复制出两台节点出来,留意 clone 时为新呆板的网卡从头初始化 MAC 地点。
    6. 三台虚拟机的静态 IP 都设置好今后就可以利用 ssh 在当田主机的终端上操纵三台虚机了。虚机利用 Headless Start 模式启动

    安装 Docker

  • 三台都装