提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
前言
本篇日记将记录不同部署kubernetes的production 环境,如果是学习环境的部署可以参照k8-install-learning environments。部署完毕后,进行压力以及安全测试,逐步迭代熟悉production cluster的部署考量。
1、hard way
本方法将不借用部署工具,在服务器端或者主机端部署相关的binary 文件和nodes。通过本轮部署,加深kubernetes架构的理解,总体流程参照kubernete the hard way,本篇日记记录的k8 cluster,同样部署2个master node,2个worker node,1个loadbalancer node。
需要工具:
- vagrant
- virtuaxl box
Memory and CPU: - 8G(memory)
安装组件如下:
- kube api-server
- etcd
- kubelet
- controll manager
- kubeproxy
- kubectl
1.1 pull virtual machine
由于virtual box 不同版本上对于host-only network中规定范围的不同,因此修改原github中master node 与 work node 的ip范围(Cannot create a private networck from Vagrant in VirtualBox after updating it)。
git clone https://github.com/mmumshad/kubernetes-the-hard-way.git
cd kubernetes-the-hard-way\vagrant
#修改node的ip范围,原来的范围为192.168.5.*
#IP_NW = "192.168.5."
新的ip范围
IP_NW = "192.168.56."
vagrant up
ssh进入不同worker 与master node下不同worker 和master的IP。
vagrant ssh worker-1
##进入worker-1 后,系统给出了ip
##IP address for enp0s8: 192.168.56.21
## 依次获取ips
依次获取ips,如下图vagrant 在virtubox里面部署的虚拟机的Ip以及对应的主机端口等信息。
vm | vm name | role | ip | port |
---|---|---|---|---|
master-1 | kubernetes-ha-master-1 | Master | 192.168.56.11 | 2711 |
master-2 | kubernetes-ha-master-2 | Master | 192.168.56.12 | 2712 |
work-1 | kubernetes-ha-work-1 | Worker | 192.168.56.21 | 2721 |
work-2 | kubernetes-ha-work-2 | Worker | 192.168.56.22 | 2722 |
Loadbalancer | kubernetes-ha-work-3 | Loadbalancer | 192.168.56.30 | 2730 |
通过上述命令,vagrant 部署了5个vm,并在每个虚拟机完成了以下的设置:
- Deploys 5 VMs - 2 Master, 2 Worker and 1 Loadbalancer with the name 'kubernetes-ha-* '(见上表)
- Set’s IP addresses in the range 192.168.56.*(见上表)
- Add’s a DNS entry to each of the nodes to access internet(8.8.8.8)
# to see details about the uplink DNS servers
vagrant@worker-2:/etc$ systemd-resolve --status
# 输出
Global
DNS Servers: 8.8.8.8
DNSSEC NTA: 10.in-addr.arpa
- Install’s Docker on Worker nodes
#change to sudo
vagrant@worker-2:/etc$ sudo -i
root@worker-2:~# docker --version
Docker version 20.10.17, build 100c701
- Runs the below command on all nodes to allow for network forwarding in IP Tables.
难道就是port forwarding,比如访问localhost:2730的请求,会forward to loadbalancer 这个node 。
sysctl net.bridge.bridge-nf-call-iptables=1
- 确定这几台vm可以相互ping 通。
#例如:
root@worker-2:~# ping 192.168.56.11
PING 192.168.56.11 (192.168.56.11) 56(84