- 一、k8s简介
- 1、概述
- 2、特点
- 3、组件
- 4、优点
- 二、k8s环境部署
- 1、确认harbor仓库
- 2、添加节点解析,部署docker引擎
- 3、安装部署软件kubeadm
- 4、安装部署flannel网络组件
- 三、排错和注意
- 1、报错
- 2、注意
kubernetes,简称K8s,是用8代替8个字符“ubernete”而成的缩写。是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效(powerful),Kubernetes提供了应用部署,规划,更新,维护的一种机制。
Kubernetes是Google开源的一个容器编排引擎,它支持自动化部署、大规模可伸缩、应用容器化管理。在生产环境中部署一个应用程序时,通常要部署该应用的多个实例以便对应用请求进行负载均衡。
在Kubernetes中,我们可以创建多个容器,每个容器里面运行一个应用实例,然后通过内置的负载均衡策略,实现对这一组应用实例的管理、发现、访问,而这些细节都不需要运维人员去进行复杂的手工配置和处理。
Kubernetes对计算资源进行了更高层次的抽象,通过将容器进行细致的组合,
将最终的应用服务交给用户。
可移植: 支持公有云,私有云,混合云,多重云
可扩展: 模块化,插件化,可挂载,可组合
自动化: 自动部署,自动重启,自动复制,自动伸缩/扩展
- Master组件
Master组件提供集群的管理控制中心。
Master组件可以在集群中任何节点上运行。但是为了简单起见,通常在一台VM/机器上启动所有Master组件,并且不会在此VM/机器上运行用户容器。
- Node节点组件
节点组件运行在Node,提供Kubernetes运行时环境,以及维护Pod。
4、优点- 隐藏资源管理和错误处理,用户仅需要关注应用的开发。
- 服务高可用、高可靠。
- 可将负载运行在由成千上万的机器联合而成的集群中。
主机需求
1、确认harbor仓库四台主机:
一台101为仓库主机
剩余三台分别为一台Master节点102和普通主机103和104
101 ip 172.25.76.11 docker主机
102 ip 172.25.76.12 Master节点主机
103 ip 172.25.76.13 普通节点主机1
104 ip 172.25.76.14 普通节点主机2
在仓库主机101
cd harbor/ docker-compose ps 若为空则使用该目录下的安装脚本文件安装 ./install --help 添加第三个参数,防止安装加载过多占用内存过大 docker-compose start docker-compose ps 再次查看仓库内容 出现后浏览器访问仓库主机,进入harbor仓库并登陆
在102,103,104同时进行
vim /etc/hosts添加解析 --- 172.25.76.11 reg.westos.org 172.25.76.12 172.25.76.13 172.25.76.14 ---
仓库主机
cd /etc/yum.repos.d ls scp docker.repo 102:/etc/yum.repos.d/ scp docker.repo 103:/etc/yum.repos.d/ scp docker.repo 104:/etc/yum.repos.d/ cd /etc/docker ls scp -r certs.d/ 102:/etc/docker/ scp -r certs.d/ 103:/etc/docker/ scp -r certs.d/ 104:/etc/docker/
102,103,104主机
yum install -y docker-ce
systemctl enable --now docker
docker info
查看是否有问题
sysctl --system
刷新内核
cd /etc/docker
vim daemon.json
---
{
"registry-mirrors":["https://reg.westos.org"],
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver": "overlay2"
}
systemctl restart docker
不报错则文件无语法错误
docker info
查看cgroup driver(systemd),mirrors(reg.westos.org)
注意:使用私有仓库,仓库中必须提前有镜像
---
仓库主机
docker tag busyboxplus:latest reg.westos.org/library/busyboxplus:latest docker push reg.westos.org/library/busyboxplus:latest 解析必须正确,否则会报错
102,103,104主机
docker pull busyboxplus 禁用swap分区 swapoff -a vim /etc/pstab注释掉最后一行 安装部署软件 cd /etc/yum.repos.d/ vim k8s.repo --- [kubernetes] name=Kubernetes baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/ enabled=1 gpgcheck=0 ---- 联外网安装 yum install -y kubeadm kubelet kubectl systemctl enable --now kubelet kubeadm config print init-defaults 查看默认配置信息,images repository rpm -q kubeadm 查看最新安装版本
在harbor浏览器图形界面创建k8s项目,设置公开
在master节点主机102
默认从k8s.gcr.io上下载组件镜像,需要翻墙才可以,所以需要修改镜像仓库:
列出所需镜像 kubeadm config images list --image-repository registry.aliyuncs.com/google_containers 拉取镜像 kubeadm config images pull --image-repository registry.aliyuncs.com/google_containers 初始化集群 kubeadm init --pod-network-cidr=10.244.0.0/16 --image-repository registry.aliyuncs.com/google_containers
拉取镜像到k8s项目
安装flannel网络组件 wget https://raw.githubusercontent.com/coreos/flannel/master/documentat ion/kube-flannel.yml kubectl apply -f kube-flannel.yml 配置kubectl命令补齐功能: echo "source <(kubectl completion bash)" >> ~/.bashrc source .bashrc docker pull quay.io/coreos/flannel:v0.14.0 docker tag quay.io/coreos/flannel:v0.14.0 reg.westos.org/k8s/flannel:v0.14.0 docker push reg.westos.org/k8s/flannel:v0.14.0
在103和104主机
粘贴在master节点主机初始化得出的提示
部署成功
Master查看状态: kubectl get cs kubectl get node kubectl get pod -n kube-system三、排错和注意 1、报错
查看docker信息报错
docker info WARNING: IPv4 forwarding is disabled
vim /usr/lib/sysctl.d/00-system.conf 在文件里面添加如下代码: net.ipv4.ip_forward=1 重启docker、network服务: systemctl restart network systemctl restart docker
拉取镜像报错
解析有问题
私有仓库中无内容导致无法拉取
初始化报错
学会看报错老哥们,内存不够,咱就扩容
这儿有个坑,在开始配置的时候也应该配好,我是个five我没听到,over
别人的错
文件里粘贴有缺失,需要在编辑模式粘贴,我同桌傻子
内核没有刷新
主机
除仓库外的三台主机设置为双核cpu,若开始时未设置可先关闭主机在virt-manager中小灯泡设置,再次启动即刻生效
网络
在需要pull镜像时需要打开外网,通过实验发现一些镜像需要随缘拉取,速度跟网速挂钩。亲测我同学的网比我快很多,我就刷了两条朋友圈机好了哭哭
镜像拉取
从私有仓库拉取时需要在私有仓库中push了镜像才能拿来使用,否则你就pull了个der



