目录

  • 1. Kubernetes简介
    • 1. k8s
    • 1.2 Kubernetes的好处
    • 1.3 kubernetes设计架构
    • 1.4 kubernetes设计架构(2)
  • 2. Kubernetes集群环境部署
    • 2.1 基础实验环境
    • 2.2 harbor仓库
    • 2.3 关闭节点的selinux和iptables防火墙
    • 3.4 所有节点安装docker
    • 2.5 所有主机设置防火墙策略
    • 2.6 在server1上传仓库认证文件到其他节点
    • 2.7 所有节点创建dameon.json文件
    • 2.8 所有节点禁用swap分区
    • 2.9 配置k8s所需的yum源并上传到其他节点
  • 3. 安装部署软件kubeadm
    • 3.1 所有节点安装工具
    • 3.2 查看默认配置信息
    • 3.3 修改镜像仓库
    • 3.4 上传仓库密钥和添加解析
    • 3.5 上传和拉取镜像
    • 3.6 初始化集群
    • 3.7 节点扩容
    • 3.8 安装flannel网络组件
    • 3.9 配置kubectl
  • 4. k8s删除和恢复节点
    • 4.1 删除节点
    • 4.2 恢复重新加入加入节点

1. Kubernetes简介

1. k8s

k8s是Kubernetes的简称,因为K和S之间有8个字母,所以才会被称为k8s。
k8s最初是在Google公司内部使用了10多年的技术,它的前身是叫做Borg(博格),直到2015年才被Google公司捐赠为开源项目。
在Docker 作为高级容器引擎快速发展的同时,在Google内部,容器技术已经应 用了很多年,Borg系统运行管理着成千上万的容器应用。

  • Kubernetes项目来源于Borg,可以说是集结了Borg设计思想的精华,并且吸收 了Borg系统中的经验和教训。
  • Kubernetes对计算资源进行了更高层次的抽象,通过将容器进行细致的组合, 将最终的应用服务交给用户。

1.2 Kubernetes的好处

• 隐藏资源管理和错误处理,用户仅需要关注应用的开发。
• 服务高可用、高可靠。
• 可将负载运行在由成千上万的机器联合而成的集群中

1.3 kubernetes设计架构

  • Kubernetes主要由以下几个核心组件组成:
etcd 保存了整个集群的状态
apiserver 提供了资源操作的唯一入口,并提供认证、授权、访问控制、API注册和发现 等机制
controller manager 负责维护集群的状态,比如故障检测、自动扩展、滚动更新等
scheduler 负责资源的调度,按照预定的调度策略将Pod调度到相应的机器上
kubelet 负责维护容器的生命周期,同时也负责Volume(CVI)和网络(CNI)的管理
Container runtime 负责镜像管理以及Pod和容器的真正运行(CRI)
kube-proxy 负责为Service提供cluster内部的服务发现和负载均衡
  • 除了核心组件,还有一些推荐的Add-ons
kube-dns 负责为整个集群提供DNS服务
Ingress Controller 为服务提供外网入口
Heapster 提供资源监控
Dashboard 提供GUI
Federation 提供跨可用区的集群
Fluentd-elasticsearch 提供集群日志采集、存储与查询

1.4 kubernetes设计架构(2)

Kubernetes设计理念和功能其实就是一个类似Linux的分层架构

• 核心层:Kubernetes最核心的功能,对外提供API构建高层的应用,对内提供插件 式应用执行环境
• 应用层:部署(无状态应用、有状态应用、批处理任务、集群应用等)和路由(服 务发现、DNS解析等)
• 管理层:系统度量(如基础设施、容器和网络的度量),自动化(如自动扩展、动 态Provision等)以及策略管理(RBAC、Quota、PSP、NetworkPolicy等)
• 接口层:kubectl命令行工具、客户端SDK以及集群联邦
• 生态系统:在接口层之上的庞大容器集群管理调度的生态系统,可以划分为两个范 畴• Kubernetes外部:日志、监控、配置管理、CI、CD、Workflow、FaaS、 OTS应用、ChatOps等 • Kubernetes内部:CRI、CNI、CVI、镜像仓库、Cloud Provider、集群自身 的配置和管理等

2. Kubernetes集群环境部署

k8s官网
https://kubernetes.io/docs/setup/production- environment/container-runtimes

2.1 基础实验环境

主机名        IP                   功能
server1    172.25.11.101        harbor仓库主要给k8s节点提供镜像源
server2    172.25.11.102        k8s:master节点:4G运行内存2个CPU
server3    172.25.11.103        k8s:节点(node1):2G运行内存2个CPU
server4    172.25.11.104        k8s:节点(node2):2G运行内存2个CPU

2.2 harbor仓库

server1部署harbor仓库前面文章有具体部署过程
注意:最好配置(阿里云)镜像加速器(/etc/docker/daemon.json文件里面写入加速器地址),加快镜像下载速度,加速器地址就在aliyum镜像官网。

2.3 关闭节点的selinux和iptables防火墙

3.4 所有节点安装docker

软件包:在aliyun的开源镜像网站查找docker
containerd.io-1.2.13-3.1.el7.x86_64.rpm
docker-ce-19.03.8-3.el7.x86_64.rpm
docker-ce-cli-19.03.8-3.el7.x86_64.rpm
解决依赖性:https://centos.pkgs.org/7/centos-extras-armhfp/container-selinux-2.107-3.el7.noarch.rpm.html
container-selinux-2.77-1.el7.noarch.rpm  安装过程解决依懒性(注意版本号)
systemctl enable --now docker  启动服务并设置开机自启

2.5 所有主机设置防火墙策略

2.6 在server1上传仓库认证文件到其他节点

[root@server1 reg.westos.org]# pwd
/etc/docker/certs.d/reg.westos.org
[root@server1 reg.westos.org]# scp ca.crt server2/3/4:

2.7 所有节点创建dameon.json文件

systemctl restart docker 记得重启docker服务
复制到其他节点:scp /etc/docker/daemon.json server2/3/4
重启服务:systemctl restart docker

2.8 所有节点禁用swap分区

swapoff -avim  /etc/fstab
#/dev/mapper/rhel-swap   swap                    swap    defaults        0 0
注释掉/etc/fstab文件中的swap定义

2.9 配置k8s所需的yum源并上传到其他节点

scp /etc/yum.repos.d/k8s.repo  server2/3/4

3. 安装部署软件kubeadm

3.1 所有节点安装工具

kubelet 用来初始化集群的指令
kubeadm 在集群各个节点用来启动pod和容器
kubectl 用来与集群通信的命令工具(可以只装其中某一个节点;这里全装)

3.2 查看默认配置信息

3.3 修改镜像仓库

默认从k8s.gcr.io上下载组件镜像,需要翻墙才可以,所以需要修改镜像仓库:

3.4 上传仓库密钥和添加解析

vim /etc/hosts

3.5 上传和拉取镜像

  • 1. 修改仓库标签
for i in `docker images | grep aliyuncs| awk '{print $1":"$2}' | awk -F / '{print $3}'`;do docker
tag registry.aliyuncs.com/google_containers/$i reg.westos.org/library/$i ; done
修改镜像标签为server1的仓库路径
  • 2. 上传镜像到私有仓库
先登录habor仓库
docker login westos.orgfor i in `docker images | grep reg.westos.org`;do docker push  reg.rwestos.org/library/$i; done
上传镜像到harbor仓库for i in `docker images | grep aliyuncs | awk '{print $1":"$2}'`;do docker rmi $i; done删除之前拉取的阿里云镜像


  • 3. 拉取镜像

3.6 初始化集群

kubeadm init --pod-network-cidr=10.244.0.0/16 --image-repository  reg.westos.org/library   初始化集群集群
--pod-network-cidr=10.244.0.0/16:指定flannel网络组件时必须添加

cpu不能为单核,不然会失败。


生成token和哈希码:当其他节点想要加入集群时必须使用此参数 ;但是token值只有24h之后无法在使用,过期之后需要重新生成token值方便其他主机加入集群,哈希码是固定的

3.7 节点扩容

3.8 安装flannel网络组件



  • master节点查看状态
    kubectl get pod -n kube-system 必须全部为running时间稍有点缓慢耐心等待

  • 其他节点server3 、4会自动拉取镜像

3.9 配置kubectl

在server1:master节点配置kubectl
useradd kubeadm  创建此用户并做权限下放visudo 编辑权限下放
kubeadm ALL=(ALL) NOPASSWD: ALLmkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
若是使用超级用户将此.kube/config目录复制到root家目录下
配置kubectl命令补齐功能:
echo "source <(kubectl completion bash)" >> ~/.bashrc
  • kubectl命令指南:
    https://kubernetes.io/docs/reference/generated/kubectl/kubectl- commands

4. k8s删除和恢复节点

4.1 删除节点

[root@server2 ~]# kubectl drain server3 --delete-local-data  --force  --ignore-daemonsets   删除节点
node/server3 cordoned
WARNING: ignoring DaemonSet-managed Pods: kube-system/kube-flannel-ds-amd64-95cp4, kube-system/kube-proxy-cl7lr
node/server3 drained
[root@server2 ~]# kubectl get node  查看还存在集群当中
NAME      STATUS                     ROLES    AGE   VERSION
server2   Ready                      master   28h   v1.18.4
server3   Ready,SchedulingDisabled   <none>   27h   v1.18.4
server4   Ready                      <none>   27h   v1.18.4
[root@server2 ~]# kubectl delete node server3 彻底删除
node "server3" deleted
[root@server2 ~]# kubectl get node  查看已经删除
NAME      STATUS   ROLES    AGE   VERSION
server2   Ready    master   28h   v1.18.4
server4   Ready    <none>   27h   v1.18.4

4.2 恢复重新加入加入节点

[root@server3 ~]# kubeadm reset  清除之前加入的信息
按照刚开始加入节点的方式重新加入即可

Kubernetes集群(k8s)- 介绍和部署相关推荐

  1. Kubernetes 集群仓库 Harbor Helm3 部署

    文章目录 Kubernetes 集群仓库 harbor Helm3 部署 一.简介 二.先决条件 三.准备环境 1.系统环境 2.核实动态存储 3.安装 Helm3 3.1.在线安装 3.2.下载安装 ...

  2. Redis 由浅入深 (2) - Redis哨兵和集群的介绍和部署方案(看完这篇redis部署再也不是问题)

    文章目录 Redis的三种部署方案 1. 单机 部署 单机运维 2.主从哨兵 主从结构部署 主从部署 redis 哨兵主从部署 哨兵部署 部署注意事项 3.集群 集群介绍 数据分区 集群的限制 集群部 ...

  3. 【云原生 • Kubernetes】k8s功能特性、k8s集群架构介绍

    目录(k8s集群搭建先导篇) 一.Kubernetes 的特性/功能 二.Kubernetes 集群架构介绍 1. master node 节点 2. worker node 节点 三.Kuberne ...

  4. 部署Kubernetes集群(二进制 v1.18.8版)

    第一章 kubernetes 功能介绍 · kubernetes 从入门到实践 · 看云 二进制 部署Kubernetes集群 组件版本 组件 版本 二进制包下载地址 备注 centos 7.8.20 ...

  5. 部署Kubernetes集群(二进制 v1.18.5版)

    文章目录 一.Kubernetes的基本知识 1. 安装要求 2. 系统初始化配置 二.部署Etcd集群 2.1 准备cfssl证书生成工具 2.2 生成Etcd证书 2.2.1 自签证书颁发机构(C ...

  6. kubernetes集群环境搭建(kubeadm方式)

    1. kubernetes简介 kubernetes,是一个全新的基于容器技术的分布式架构领先方案,是谷歌严格保密十几年的秘密武器----Borg系统的一个开源版本,于2014年9月发布第一个版本,2 ...

  7. Rancher 2.x 搭建及管理 Kubernetes 集群

    文章目录 1.Rancher 2.x 介绍 1.1.Rancher 1.x VS Rancher 2.x 1.2.Rancher 2.x 架构图 2.环境.软件准备 3.创建 RancherOS 启动 ...

  8. Kubernetes集群搭建以及基本使用【具详细】;

    文章目录 前言 一.有了docker为什么还需要k8s 二.K8s介绍.集群架构.服务器配置推荐 1.kubernetes是什么 2.Kubernetes集群架构与组件 3.生产环境部署K8s的两种方 ...

  9. 快速入门容器服务,创建Kubernetes集群

    使用须知 创建集群过程中,容器服务会进行如下操作: 创建 ECS,配置管理节点到其他节点的 SSH 的公钥登录,通过 CloudInit 安装配置 Kubernetes 集群. 创建安全组,该安全组允 ...

最新文章

  1. library “libopencv_java4.so“ not found“
  2. JUC并发编程三 并发架构--线程运行原理
  3. CPU和微架构的概念
  4. 【快乐水题】520. 检测大写字母
  5. CentOS常用指令
  6. core Bluetooth(蓝牙4.0)
  7. 数据结构(终极线段树篇)
  8. spring data jpa从入门到精通_程序员笔记:Spring Data JPA入门
  9. 微信小程序预览pdf功能实现
  10. MATLAB中的清除,oop – 在MATLAB中清除类定义
  11. Qt4_子类化QMainWindow
  12. 《精通软件性能测试与LoadRunner最佳实战》—第1章1.1节软件测试基础
  13. 搞清字库表、编码字符集、字符编码
  14. linux ln mysql.sock_linux中MySQL连接找不到mysql.sock文件
  15. python 打开xml文件修改其中的值,通过点选图像获得其像素值
  16. Ubuntu安装Matlab
  17. 软件单元测试方法,单元测试的基本测试方法
  18. 戴尔服务器加无线网卡用不了网,电脑安装了无线网卡却不能用是怎么回事?
  19. 5月末跟大家讲讲webpack(生日篇)
  20. 【抽奖平台开发(1)】抽奖功能的前端实现(HTML+JS+CSS)

热门文章

  1. java计算机毕业设计智慧公寓系统演示录屏2021源码+数据库+系统+lw文档
  2. 【无2021年标准员-通用基础(标准员)考试内容及标准员-通用基础(标准员)复审模拟考试
  3. 云时代,你离专业企业移动工作平台之间,还差什么—Cnskype
  4. Linux iptables 端口转发
  5. HTTP HTTPS WebService
  6. Python 从菜鸟到大咖的必经之路
  7. Python初级爬虫(利用多任务协程爬取虎牙MM图片)
  8. 百度网盘又被破解了,这次是一个99年的小美女做的哦!
  9. oracle shutdown immediate 没反应,ORACLE 执行EXECUTE IMMEDIATE没反应
  10. recyclerview探探_RecyclerView卡片(探探,翻译君等)效果全指南