k8s部署+介绍

本文介绍了Kubernetes(k8s)的原理,包括其功能、组成和架构,并详细阐述了使用kubeadm进行安装的步骤,包括master和node节点的设置、网络配置以及解决节点健康问题的方法。
摘要由CSDN通过智能技术生成

k8s原理及使用kubeadm安装

介绍:

Kubernetes(k8s)是自动化容器操作的开源平台。这些容器操作包括:部署,调度和节点集群间扩展。

功能:

  1. 服务发现与调度
  2. 负载均衡
  3. 服务自愈
  4. 服务弹性扩容
  5. 横向扩容
  6. 存储卷挂载

组成:

  • kubectl: 客户端命令行工具,作为整个系统的操作入口。
  • 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。
  • DNS:一个可选的DNS服务,用于为每个Service对象创建DNS记录,这样所有的Pod就可以通过DNS访问服务了。

架构:

master节点

​ kubernets cluster的大脑,运行着各种daemon服务,比如:kube-apiserver、kube-secheduler、kube-controller-manager、etcd和pod网络。

  • apiserver : 提供restful api的接口各种客户端工具以及kubernets其他组件可以通过这个来管理
  • secheduler :调度的意思,负责决定将这个pod放在哪个节点上,他调度会根据各个节点上的负载,高可用,性能,数据亲和性的需求 来决定到底放在哪个节点上
  • controller-manager: 负责管理cluster的各种资源,保证资源处于预期状态
  • etcd: 负责保存cluster的配置信息和各种状态信息,当数据发生变化是,etcd快速通知kubernets相关组件

node节点

​ node节点是存放pod运行的地方,支持docker,rkt等容器,运行的相关组件有kubelet、kube-proxy和pod网络

  • kubelet : node的agent,当scheduler确定某个node上运行pod后,会将pod的具体配置信息发送给该节点kubelet , kubelet根据这些信息创建和运行容器,并向Master报告运行状态

  • kub-proxy:每个node上都会运行kube-proxy服务,它负责访问service的tcp/upd数据流转发到后端的容器,如果有多个副本,kub-proxy会实现负载均衡

  • pod网络:如果要使pod能够相互通信.kubernets cluster 必须部署pod网络,flannel是其中一个可选方案

pod创建流程 :

在这里插入图片描述

分析:

  • 如果输入一条指令,首先通过API接收到用户输入的指令,
  • 将它发送到etcd进行注册,注册完成后,etcd又反馈给用户,
  • 如果是创建的是一个新的pod,这个API通知controller manager 创建deployment资源
  • 然后通过scheduler的执行调度任务,将这个pod分发到node节点上
  • 然后通过node节点上的kublet服务进行创建并运行
  • 最后创建完成后会在etcd里保存一份pod的应用的配置和当前的状态信息

开始搭建:

官网搭建文档:

https://kubernetes.io/zh/docs/tasks/tools/install-kubectl-linux/

1.先升级系统中的软解包

yum -y update             ###升级所有包同时也升级软件和系统内核;
 或
yum -y upgrade            ###只升级所有包,不升级软件和系统内核。

2.修改主机名

  • master:
hostnamectl set-hostname k8s-master
  • node1:
hostnamectl set-hostname k8s-node1
  • node2:
hostnamectl set-hostname k8s-node2sb 

3.修改域名解析

cat >> /etc/hosts << EOF
192.168.42.1 k8s-master
192.168.42.2 k8s-node1
192.168.42.3 k8s-node2
EOF

确保每个节点上的MAC地址的唯一性

  • master:
ifc
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值