【项目实战15】k8s(1)—k8s的部署(图文详解安装,集群部署过程)

2023-05-16

kubernetes的部署

  • 一、前言
    • 一、简介
    • 二、k8s特点
  • 二、安装
    • 一、安装地址
    • 二、配置环境
    • 三、安装过程
  • 三、初始化集群

一、前言

一、简介

为方便docker的管理,Kubernetes对计算资源进行了更高层次的抽象,通过将容器进行细致的组合。
(1)Kubernetes的好处:
(2)隐藏资源管理和错误处理,用户仅需要关注应用的开发。
服务高可用、高可靠。
(3)可将负载运行在由成千上万的机器联合而成的集群中。

二、k8s特点

在这里插入图片描述

Kubernetes主要由以下几个核心组件组成:
(1)etcd:保存了整个集群的状态
(2)apiserver:提供了资源操作的唯一入口,并提供认证、授权、访问控制、API注册和发现等机制
(3)controller manager:负责维护集群的状态,比如故障检测、自动扩展、滚动更新等
(4)scheduler:负责资源的调度,按照预定的调度策略将Pod调度到相应的机器上
(5)kubelet:负责维护容器的生命周期,同时也负责Volume(CVI)和网络(CNI)的管理
(6)Container runtime:负责镜像管理以及Pod和容器的真正运行(CRI)
(7) kube-proxy:负责为Service提供cluster内部的服务发现和负载均衡

除了核心组件,还有一些推荐的Add-ons:
(1)kube-dns:负责为整个集群提供DNS服务
(2)Ingress Controller:为服务提供外网入口
(3)Heapster:提供资源监控
(4)Dashboard:提供GUI
(5)Federation:提供跨可用区的集群
(6)Fluentd-elasticsearch:提供集群日志采集、存储与查询

二、安装

一、安装地址

1)、官方地址
https://kubernetes.io/zh/docs/home/
进入主界面
在这里插入图片描述
先设置安装安装工具kubeadm,跟着步骤走就行
在这里插入图片描述
1)、阿里云地址
以上的步骤比较麻烦,可以直接使用阿里云的镜像服务进行安装。
在这里插入图片描述

二、配置环境

1、需要4台虚拟机,server1~server4,
server1:172.25.42.1 部署harbor仓库,安装docker
server2:172.25.42.2 安装docker,将作为k8s的管理端(要求cpu大于等于2,内存大于等于2048)
server3:172.25.42.3 安装docker,将作为k8s的node节点
server4:172.25.42.4 安装docker,将作为k8s的node节点
2、关闭节点的selinux和iptables防火墙
3、所有节点部署docker引擎,配置网桥

三、安装过程

server1-4
1、部署docker

yum install -y docker-ce docker-ce-cli 
vim /etc/sysctl.d/k8s.conf 
net.bridge.bridge-nf-call-ip6tables = 1 
net.bridge.bridge-nf-call-iptables = 1 
sysctl --system

2、如果前期部署了docker,清理,纯化环境
server2-4
对k8s的虚拟机的images、volumes、service、container、network、stack、swarm进行清理,作为仓库的server1保留之前的images等文件

docker service ls 
docker service rm service 
cd /etc/systemd/system/docker.service.d/ 
rm -f 10-machine.conf 
docker network prune                          清理网络 
docker volume prune                           清理数据卷 
docker image prune                            清理镜像 
docker container prune                        清理容器 
docker swarm leave                            有swarm节点的也需要离开和删除节点
systemctl daemon-reload 
systemctl restart docker

如果全部删除后,无法重启docker。如果报错信息显示是无法找到socket文件,可以如下修改/usr/lib/systemd/system/docker.service文件,使其找到socket文件。
在这里插入图片描述

3、禁用server2~server4主机的swap分区
注意etc/fstab里要注释,防止开机自启

swapoff -a
vim /etc/fstab

#/dev/mapper/rhel-swap   swap                    swap    defaults        0 0

4、修改部署k8s虚拟机的仓库和管理驱动
server2~server4
将Docker使用的Cgroup Driver改为systemd,因为systemd是Kubernetes自带的cgroup管理器

vim /etc/docker/daemon.json

{
  "registry-mirrors": ["https://reg.westos.org"],
  "exec-opts": ["native.cgroupdriver=systemd"]
}

systemctl daemon-reload
systemctl restart docker

可以查看到cggroup管理变为了systemd
在这里插入图片描述

5、增设k8s的yum源
server2-4

[root@server2 yum.repos.d]# vim k8s.repo 

//
[kubernets]
name=Kubernets
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=0
//

在这里插入图片描述
5、安装
server2-4
安装k8s的组件,设置开机自启动

yum install -y kubelet kubeadm kubectl
systemctl enable --now kubelet.service

在这里插入图片描述
6、建立k8s的仓库,方便后期镜像管理
在这里插入图片描述
7、查看配置的信息
虚拟机联网后查看k8s需要的镜像文件,因为k8s也是通过镜像的方式进行部署。这里我们上传所需要的镜像到harbor仓库,然后进行部署

kubeadm config print init-defaults	                                                                                        图1、查看当前的配置信息如下
kubeadm config images list --image-repository registry.aliyuncs.com/google_containers                                       图2、列出阿里云提供的镜像

图1、查看到当前的配置信息如下
在这里插入图片描述

在这里插入图片描述
对于阿里云的镜像此时有两种下载方式
方法一

kubeadm config images pull --image-repository registry.aliyuncs.com/google_containers        从阿里云拉取镜像

在这里插入图片描述
可以在docker镜像里面查看刚刚从阿里云下载的镜像文件
在这里插入图片描述
更改标签,登陆harbor账户,上传镜像

docker images |grep registry|awk '{print $1":"$2}'|awk  -F  / '{system("docker tag "$0" reg.westos.org/k8s/"$3"")}'                    图1、更改标签
docker login reg.westos.org                                                                                                            图2、登陆harbor账户
docker images | grep ^reg.westos.org | awk '{system("docker push "$1":"$2"")}'                                                         图3、上传镜像到仓库

图1、更改标签
在这里插入图片描述
图2、登陆harbor
在这里插入图片描述
图3、上传镜像到仓库
在这里插入图片描述

方法二
获取k8s的安装包,上传包到harbor仓库。提前把所需镜像放到server1的harbor仓库里,当server2-4需要这些文件时从仓库拉取。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
仓库里面看到上传的7个文件
在这里插入图片描述
8、修改flannel网络组件的标签,并上传到reg.westos.org/library
在这里插入图片描述

三、初始化集群

1、发送证书到其他服务器
server1

scp -r /etc/docker/certs.d/ server2:/etc/docker/certs.d/  
scp -r /etc/docker/certs.d/ server3:/etc/docker/certs.d/  
scp -r /etc/docker/certs.d/ server4:/etc/docker/certs.d/  

2、初始化
server2
k8s集群的管理主机

kubeadm init --pod-network-cidr=10.244.0.0/16 --image-repository reg.westos.org/k8s

在这里插入图片描述
在这里插入图片描述
3、配置环境变量,跟随提示进行操作
server2
这里我们是root用户,所以选择按照提示配置环境变量,并写入.bash_profile中

export KUBECONFIG=/etc/kubernetes/admin.conf
vim .bash_profile

//
export KUBECONFIG=/etc/kubernetes/admin.conf

在这里插入图片描述

4、设置补齐功能
server2

[root@server2 ~] echo "source <(kubectl completion bash)" >> ~/.bashrc            %配置kubectl命令补齐功能,成功后,命令行输入kubectl 然后tab可以补出命令
[root@server2 ~] source ~/.bashrc

5、安装flannel网络组件
server2
查看目前的系统配置,发现flanner插件没有启用,需要安装flanner插件

[root@server2 network-scripts] kubectl get pod -n kube-system 

在这里插入图片描述
从网上获取yml文件,查看flanner的yml配置文件里面的镜像文件地址。

[root@server2 ~] yum install wget
[root@server2 ~] wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml                                           获取插件
[root@server2 ~] vim kube-flannel.yml                                                                                                                  查看flanner插件

查看到一共需要3个镜像,但有两个是相同的镜像,因此我们在docker仓库用阿里云拉取这两个镜像
在这里插入图片描述
在docker仓库拉取刚刚yml文件里面需要的镜像文件(用阿里云加速)

[root@server1 certs.d] docker pull rancher/mirrored-flannelcni-flannel-cni-plugin:v1.0.1
[root@server1 certs.d] docker pull rancher/mirrored-flannelcni-flannel:v0.17.0

建立对应的仓库地址
在这里插入图片描述
在这里插入图片描述
给刚才下载的镜像打标签,上传flanner镜像到yml文件里面的设置的rancher库

[root@server1 docker] docker tag  rancher/mirrored-flannelcni-flannel:v0.17.0 reg.westos.org/rancher/mirrored-flannelcni-flannel:v0.17.0
[root@server1 docker] docker tag rancher/mirrored-flannelcni-flannel-cni-plugin:v1.0.1 reg.westos.org/rancher/mirrored-flannelcni-flannel-cni-plugin:v1.0.1
[root@server1 docker] docker push reg.westos.org/rancher/mirrored-flannelcni-flannel-cni-plugin:v1.0.1 
[root@server1 docker] docker push reg.westos.org/rancher/mirrored-flannelcni-flannel:v0.17.0

可以在harbor仓库的rancher库里面查看到镜像文件
在这里插入图片描述

6、启动组件,查看全部服务
server2
在这里插入图片描述
7、其他主机加入集群
server3、4
server3、4加入到server2部署好的k8s集群中,使用的命令就是初始化后提示的信息
在这里插入图片描述
8、查看
在server2处,查看server3、server4确实已经加入集群。
在这里插入图片描述
在server3、server4可以查看到集群的插件已经部署完毕。
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【项目实战15】k8s(1)—k8s的部署(图文详解安装,集群部署过程) 的相关文章

随机推荐

  • picgo+github 图床的使用

    picgo 43 github图床的使用 PicGo这款工具 xff0c 可以轻易的将图片转换为链接 1 准备工作 下载picgo xff1a 在github新建一个仓库 xff0c 用来存放图片 2 然后进入github设置 xff1a
  • Zookeeper入门之分布式集群的搭建(二)

    Zookeeper入门之分布式集群的搭建 xff08 一 xff09 Hadoop3 2 2完全分布式集群环境搭建 xff08 二 xff09 Zookeeper入门之分布式集群的搭建 xff08 三 xff09 HBase分布式集群的搭建
  • HBase分布式集群的搭建(三)

    HBase分布式集群的搭建 xff08 一 xff09 Hadoop3 2 2完全分布式集群环境搭建 xff08 二 xff09 Zookeeper入门之分布式集群的搭建 xff08 三 xff09 HBase分布式集群的搭建 安装 准备工
  • springboot集成swagger3.0

    Swagger3 0 最新版使用 Swagger 最新版的配置步骤和旧版本是一样 xff0c 只是每个具体的配置项又略有不同 xff0c 具体步骤如下 1 添加依赖 span class token comment lt https mvn
  • Windows/IDEA 常用快捷键

    windows 搜索的快捷键 ctr 43 F 切换窗口 win 43 1 2 3 根据任务栏切换 win 43 tab 显示图标 alt 43 esc 切换到上一个 最小化当前窗口 ctr 43 ESC 最小化所有窗口 CTR 43 D
  • windows mysql8.0.26的安装

    mysql8 0 26的安装 1 下载 https dev mysql com downloads mysql 2 解压并在mysql中的bin目录下创建my ini配置文件 mysqld 设置3306端口 port 61 3306 设置m
  • Linux(Debian,Centos,Ubuntu等) gcc的安装

    Linux gcc的安装 xff08 一 xff09 准备工作 1 什么是gcc xff1f GNU编译器集合 xff08 GCC xff09 是一个开源的编译器和库集合 xff0c 支持C xff0c C 43 43 xff0c Obje
  • nodeJs开发app.js解析

    在 node js 中模块分为核心模块和文件模块两种 xff0c 核心模块是通过 require 39 xxxx 39 导入的 xff0c 文件模块是以 require 39 xxxx 39 或 require 39 xxxx 39 req
  • Linux 安装最新版Redis(超简单详细)

    Redis最新版的安装 可以从官网下载 xff0c 然后传输到你的GUN linux中 xff0c 也可像下面那样用wget命令下载 xff0c 下载完后安装步骤基本一样 xff08 一 xff09 安装 1 下载 span class t
  • git:OpenSSL SSL_read: Connection was reset, errno 10054

    方式一 xff1a 可能为网络不稳定 xff0c 连接超时导致的 xff0c 可再次尝试提交 span class token function git span push 方式二 xff1a 打开Git命令页面 xff0c 执行git命令
  • springcloud nacos config快速入门

    nacos config 1 为什么需要配置中心 xff1f 传统配置的方式已经暴露出了很多问题 xff0c 其他的诸如 xff1a 历史版本管理 xff0c 权限控制 xff0c 安全性等等问题 xff0c 是传统的配置文件无法解决的 x
  • 左移运算符和右移运算符的使用

    先简单介绍一下 xff0c 左移运算符和右移运算符的功能 xff1a 计算机中的数字是以二进制补码的形式存放的 xff0c 而左移和右移运算符就是将内存中的二进制补码数字向左或者右移动 左移的结果 xff1a 1 左移会让最高位溢出 xff
  • 51单片机对直流电机的控制

    占空比 61 周期内高电平持续的时间 整个周期 直流电机驱动芯片选择L293D 电机正转 xff1a span class token macro property span class token directive hash span
  • C++结构体数组 | 结构体数组的使用

    C 43 43 结构体数组 C 43 43 结构体数组与以前介绍过的数值型数组的不同之处在于 xff1a 每个数组元素都是一个结构体类 型的数据 xff0c 它们都分别包括各个成员项 C 43 43 结构体数组定义 C 43 43 结构体数
  • 小程序开发学习(4)---天气预报接口API篇

    文章目录 1 实现用户定位API2 获取定位信息 1 实现用户定位API 天气预报API大多数都是需要收费的 xff0c 但是在现在学习阶段可以不需要购买收费的 xff0c 网上能找到免费的天气预报API地址 xff0c 但是可能不是很好找
  • SPSS的入门

    1 SPSS的起源 SPSS xff08 全称 xff1a Statistical Product and Service Solutions xff09 是世界上最早的统计分析软件 xff0c 由美国斯坦福大学的三位研究生Norman H
  • MySQL 1130错误,无法远程连接

    错误 xff1a ERROR 1130 Host 39 192 168 1 3 39 is not allowed to connect to thisMySQL serve 错误1130 xff1a 主机192 168 1 3 不允许连接
  • 【STM32f10】MDK编译报错:Undefined symbol TIM3_PWM_Init (referred from main.o)

    MDK编译报错 xff1a Undefined symbol TIM3 PWM Init referred from main o 一 问题出现 最近跟着正点原子学到了STM32的PWM内容 xff0c 运行了该内容的程序时 xff0c 发
  • 【记录】ssh连接wsl Debian过程

    参考 xff1a 使用ssh连接WSL 学亮编程手记的博客 CSDN博客 https blog csdn net a772304419 article details 119817163 ops request misc 61 amp re
  • 【项目实战15】k8s(1)—k8s的部署(图文详解安装,集群部署过程)

    kubernetes的部署 一 前言一 简介二 k8s特点 二 安装一 安装地址二 配置环境三 安装过程 三 初始化集群 一 前言 一 简介 为方便docker的管理 xff0c Kubernetes对计算资源进行了更高层次的抽象 xff0