Kubernetes(以下简称k8s)是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效(powerful),Kubernetes提供了应用部署,规划,更新,维护的一种机制。由于Kubernetes 1.19.0在2020年8月底刚更新,这边先对新版本的安装作一个详细的阐述。
• kubectl:客户端命令行工具,将接受的命令格式化后发送给kube-apiserver,
作为整个系统的操作入口。
• kube-apiserver:作为整个系统的控制入口,以REST API服务提供接口。
• kube-controller-manager:用来执行整个系统中的后台任务,包括节点状态状
况、Pod个数、Pods和Service的关联等。
• kube-scheduler: 负责节点资源管理,接受来自kube-apiserver创建Pods任务,
并分配到某个节点。
• etcd:负责节点间的服务发现和配置共享。
• kube-proxy: 运行在每个计算节点上,负责Pod网络代理。定时从etcd获取到
service信息来做相应的策略。
• kubelet:运行在每个计算节点上,作为agent,接受分配该节点的Pods任务及管理容器,周期性获取容器状态,反馈给kube-apiserver
机器配置:
三台虚拟机均为200G硬盘容量,4G内存,处理器数量2
工具:VMWare15
先准备好能ping通外网的3台虚拟机
--在master和node上执行
关闭防火墙,selinux,关闭swap, 配置yum
安装docker ,yum install docker -y ,启动docker并设置开机自动启动
为节省文章篇幅以下以master为例
以上为yum源的配置,分别为CentOS-Base.repo、epel.repo 和k8s.repo
3个节点同时安装docker并开机自启
同样需要3个节点配置加速器方便后期提供下载镜像的速度
在3台docker启动的情况下设置以上对iptables增强功能性启用的一些系统参数并使其生效
以上,准备工作就绪,现在开始安装k8s 1.19.0
同样在每个节点安装
yum install -y kubelet-1.19.0-0 kubeadm-1.19.0-0 kubectl-1.19.0-0 --disableexcludes=kubernetes
注:--disableexcludes=kubernetes意思是去除yum源中和安装这些包有冲突的包
安装完成后设置开机自启
#为什么重启后 kubectl没法正常执行?
1. 确保所有网卡都是静态配置的
2. 确保swap和selinux以及防火墙重启也是关闭的
3. 确保kubelet设置开机自启成功
先删除/var/lib/docker/下的镜像,然后重启docker
由于事先下载好了k8s的镜像,所以现在只需docker load -i 导入(3节点都需导入)
以上导入镜像完毕
在master主节点运行初始化:
kubeadm init --kubernetes-version=v1.19.0 --pod- network-cidr=10.244.0.0/16
到此初始化成功,但是需要运行上面红框中的命令,目的是设置kubeconfig认证(所谓kubeconfig认证并非是有一个kubeconfig文件)和把worker加入集群
主节点master运行以上三条
2个worker节点均运行这条命令成功
到此,k8s 1.19.0搭建成功
我们可以看到status是NotReady,那么怎样才能把集群启动起来呢?
Master和各个worker之间需要创建一条高速通道,这条通道可以通过flannel或者calico网络来实现,本次搭建使用calico网络。由于事先已经提前下载好calico镜像,所以三台机器同时导入镜像。
成功后再次查看集群状态
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。