1:k8s简介
k8s是一个容器集群管理系统,是一个开源平台,可以实现容器集群自动化部署、自动扩缩容、维护等功能,是由谷哥2014年创建并管理的。
2:k8s优点
快速部署应用
快速扩展应用
无缝对接新的应用功能
节省资源,优化硬件资源的使用
3:缺点
3.1:k8s架构非常适合有一定服务规模的组织,但它对其他人来说过于复杂。
3.2:有太多的发行版本,导致它的开源生态非常的混乱。
3.3:它的第三方组件太多了,很难做到统一管理。
3.4:它不会自动保证高可用性。
3.5:很难实现手动控制k8s。
3.6:它的监控和性能优化存在太多的挑战性。
4:k8s环境安装的先决条件
4.1:操作系统内核3.1及以上。
4.2:内存2G以上,二核或多核CPU,硬盘20G以上。
4.3:安装的一台或多台机器之间可通讯,能访问外网
4.4:禁止swap分区
5:学习k8s的目标
5.1:可以在所有节点上安装docker和kubeadm。
5.2:会部署kubernetes master。
5.3:会部署容器的网络插件。
5.4:会部署kubernetes节点,会将节点加入集群。
5.5:会部署可视化的web页面,方便查看kubernetes各种资源。
6:k8s相关的角色
6.1:master角色
管理多个node节点,做统一集群和任务的调度、管控等,包含的主要组件有
apiservice:整个集群的入口,所有node连接都是通过它连接。
controller-manager:完成一些控制器的管理。
scheduler:负责各节点的调度。
6.2:node角色
具体的容器,所有应用都是跑在node上,也就是我们的计算节点,包含的主要组件有
proxy:负责容器的网络。
kubelet:负责容器的管理。
docker:负责容器引擎和具体的实现。
6.3:数据库
k8s所有有状态的信息都会存在etcd数据库中,这个数据库也是以集群的方式存在。
7:环境搭建
这里我们准备三台虚拟机,一台master,二台node
机器角色 | ip | 主机名 |
master | 10.100.0.131 | k8smaster |
node | 10.100.0.196 | k8snode1 |
node | 10.100.0.245 | k8snode2 |
7.1:安装前的环境确认
a:三台机器都可以联网,uname -a查看内核是否大于等于3.1
b:关闭三台机器的防火墙
systemctl stop firewalld
systemctl disable firewalld
c:关闭selinux
sed -i 's/enforcing/disabled/' /etc/selinux/config
d:关闭swap
swapoff -a
vi /etc/fstab
注释这一行:/mnt/swap swap swap defaults 0 0
free -m查看swap是否全为0
e:配置三台机器的主机名,分别在三台机器上执行命令
10.100.0.131上执行:hostnamectl set-hostname k8smaster
10.100.0.196上执行:hostnamectl set-hostname k8snode1
10.100.0.245上执行:hostnamectl set-hostname k8snode2
f:在master的机器上添加hosts,在10.100.0.131上执行命令
cat >> /etc/hosts << EOF
10.100.0.131 k8smaster
10.100.0.196 k8snode1
10.100.0.245 k8snode2
EOF
g:将桥接的IPV4流量传递到iptables的链,三台机器都执行命令
cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
h:所有节点执行命令,生效
sysctl --system
i:同步每个服务器的时间和时区
yum install ntpdate -y
ntpdate time.windows.com
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
环境全部准备就绪,具体安装请看下节!
本文由微畅享原创,欢迎关注,带你一起长知识!