Kubernetes群集部署

Kubernetes概述

  • 是一个开源的Docker容器编排技术
    • 源自于google的borg
    • 2015年7月kubernetesv1.0正式发布
    • 调度计算集群节点,动态管理节点上的作业
    • 使用[labels]和[pods]概念,将应用按逻辑单元分组
  • 主要用途
    • 自动化部署、扩展和管理容器应用
    • 资源调度
    • 部署管理
    • 服务发现
    • 扩容缩容
    • 监控
  • 使用Kubernetes的好处
    • 裸容器的不足
      • 宿主机宕机造成主机上的容器不可用无法自行恢复
      • 容器的健康检查不到位,容器在运行,却无法访问
      • 应用程序的部署、回滚、扩缩容困难
      • 数千个容器和端口、难以维护
    • 使用Kubernetes的好处
      • 可以管理大量跨主机的容器
      • 快速部署和扩展应用
      • 无缝对接新的应用功能
      • 节省资源、优化硬件资源的使用
  • Kubernetes组件
    • Master组件
      • kube-apiserver
        • Kubernetes API服务器,是集群的前端接口。它暴露RESTful API,供集群内外的客户端和组件调用,进行通信和交互。它负责处理集群内所有资源的请求和响应。
      • Etcd
        • 是一个高可用的键值存储系统,用于保存集群的所有配置和状态信息。etcd是分布式和持久的,任何对集群状态的修改都会被保存到etcd中。
      • Kube-scheduler
        • 调度器负责监视新创建的、未调度的Pods,并选择一个合适的节点来运行这些Pods。调度决策基于可用的资源、标签选择器、节点亲和性和反亲和性规则等。
      • Kube-contioller-manager
        • 控制器管理器运行多种控制器,这些控制器是集群中自动执行管理任务的后台进程。
        • 节点控制器
        • 复制控制器
        • 端口复制权
        • 服务账户和令牌控制器
    • Node组件
      • kube-proxy
        • 每个节点上的主要“节点代理”,负责维护该节点上的Pods和容器。kubelet与Master组件(如kube-apiserver)通信,并接收指令来管理Pods的生命周期。
      • kubelet
        • 实现了Kubernetes服务(Service)的网络层。它负责将到服务的流量路由到正确的后端Pod。kube-proxy维护了节点上的网络规则,确保流量能够正确地转发。
      • Dockers Engine
        • 尽管Docker Engine是Kubernetes早期常用的容器运行时,但现在Kubernetes支持多种容器运行时,如containerd、CRI-O等。容器运行时负责容器的创建、运行和管理,kubelet通过容器运行时接口(CRI)与容器运行时进行交互。
          在这里插入图片描述

Kubernetes群集部署

设置基本环境

#设置每个节点hosts文件
192.168.10.101 k8s-master
192.168.10.102 k8s-node01
192.168.10.103 k8s-hode02
#为每个节点设置名称
[root@localhost ~]# hostnamectl set-hostname k8s-master
[root@localhost ~]# bash[root@localhost ~]# hostnamectl set-hostname k8s-node01
[root@localhost ~]# bash[root@localhost ~]# hostnamectl set-hostname k8s-node02
[root@localhost ~]# bash
#关闭所有节点的selinux与防火墙 以下为每个节点都需做的操作
[root@k8s-master ~]# systemctl stop firewalld
[root@k8s-master ~]# systemctl disable firewalld
[root@k8s-master ~]# set -i '/^SELINUX=/s/enforcing/disabled' /etc/selinux/config
[root@k8s-master ~]# setenforce 0
#关闭交换分区
[root@k8s-master ~]# swapoff -a
[root@k8s-master ~]# vim /etc/fstab
/dev/mapper/centos-swap swap   #注释掉该行
#配置kubernetes的yum源
cat <<EOF> /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
[root@k8s-master ~]# yum clean all
#安装主要组件
[root@k8s-master ~]# yum -y install kubelet-1.23.0 kubeadm-1.23.0 kubectl-1.23.0
#kubelet设为开机启动
[root@k8s-master ~]# systemctl enable kubelet

Kubernetes集群的部署

#在k8s-master下操作 生成初始化配置文件
[root@k8s-master ~]# kubeadm config print init-defaults > init-config.yaml
#修改该文件
[root@k8s-master ~]# vim init-config.yaml
#找到以下内容并修改advertiseAddress: 192.168.10.101name: k8s-masterimageRepository: registry.aliyuncs.com/google_containerspodSubnet: 10.244.0.0/16
#拉取所需镜像
[root@k8s-master ~]# kubeadm config images pull --config=init-config.yaml
#初始化k8s-master
[root@k8s-master ~]# kubeadm init --config=init-config.yaml
#保存该token  加入集群时使用
kubeadm join 192.168.10.101:6443 --token abcdef.0123456789abcdef \--discovery-token-ca-cert-hash sha256:955846b741662fdbcfa01fa36323673c21af93e1e80edbae7abcf29e47ac0051
#复制配置文件到用户home目录
[root@k8s-master ~]# mkdir -p $HOME/.kube
[root@k8s-master ~]# sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
[root@k8s-master ~]# sudo chown $(id -u):$(id -g) $HOME/.kube/config
[root@k8s-master ~]# export KUBECONFIG=/etc/kubernetes/admin.conf
#将k8s-node01 k8s-node01 加入该集群
[root@k8s-node01 ~]#kubeadm join 192.168.10.101:6443 --token abcdef.0123456789abcdef \--discovery-token-ca-cert-hash sha256:955846b741662fdbcfa01fa36323673c21af93e1e80edbae7abcf29e47ac0051
[root@k8s-node02 ~]# kubeadm join 192.168.10.101:6443 --token abcdef.0123456789abcdef \--discovery-token-ca-cert-hash sha256:955846b741662fdbcfa01fa36323673c21af93e1e80edbae7abcf29e47ac0051
#查看发现节点为NotReady状态 需配置网络
[root@k8s-master ~]# kubectl get nodes

配置calico网络插件

#部署网络插件
[root@k8s-master ~]# kubectl apply -f https: //docs.projectcalico. org/manifests/calico. yaml 
#再次查看 状态为Ready状态
[root@k8s-master ~]# 

Metrics-server部署

​ Metrics Server 是一种可扩展、高效的容器资源指标来源,适用于Kubernetes 内置的自动 缩放管道。Metrics Server从Kubelets 收集资源指标,并通过Metrics API将它们暴露在 Kubernetes apiserver,供 Horizontal Pod Autoscaler和Vertical Pod Autoscaler 使用。指标API也可以通过访问kubectl top,从而更容易调试自动缩放管道。

#下载 Metrics-server
[root@k8s-master ~]# wget https: //github.com/kubernetes-sigs/metrics-server/releases/download/v0.6.3/components. yaml
#使用yaml文件安装
[root@k8s-master ~]# kubectl create -f components. yaml
#测试安装结果
[root@k8s-master ~]# kubectl top node

Dashboard部署

#核心文件下载地址
https://github.com/kubernetes/kubernetes/tree/master/cluster/addons/dashboard
#在k8s工作目录中创建dashborad工作目录
[root@k8s-master ~]# mkdir /opt/k8s/dashboard
[root@k8s-master ~]# cd /opt/k8s/dashboard
#上传所需的yaml文件并部署
[root@k8s-master ~]# kubectl create -f .
#查看端口号
[root@k8s-master ~]# kubectl get svc kubernetes-dashboard -n kubernetes-dashboard
#查看token
[root@k8s-master ~]# kubectl -n kube-system describe secret $(kubectl -n kube-system get sectet | grep admin-user | awk '{print $1}')
#登录dashboard
https://192.168.10.101:31245/

安装helm客户端

#下载安装包
[root@k8s-master ~]# wget https://get.helm.sh/helm-v3.9.4-linux-amd64.tar.gz
#解压
[root@k8s-master ~]# tar zxvf htlm-v3.8.4-linux-amd64.tar.gz
#安装
[root@k8s-master ~]# mv linux-amd64/helm /usr/local/bin
#查看版本
[root@k8s-master ~]# helm version

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/404400.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机毕业设计pyspark+django+scrapy租房推荐系统 租房大屏可视化 租房爬虫 hadoop 58同城租房爬虫 房源推荐系统

用到的技术: 1. python 2. django后端框架 3. django-simpleui&#xff0c;Django后台 4. vue前端 5. element-plus&#xff0c;vue的前端组件库 6. echarts前端可视化库 7. scrapy爬虫框架 基于大数据的租房信息推荐系统包括以下功能&#xff1a…

Windows下串口编程与单片机串口设备通信(win32-API)

一、前言 串行通信接口&#xff0c;通常简称为“串口”&#xff0c;是一种数据传输方式&#xff0c;其中信息以连续的比特流形式发送&#xff0c;每个比特在不同的时间点被传输。这与并行通信形成对比&#xff0c;在并行通信中&#xff0c;多个比特同时通过多个线路传输。串口…

学习笔记 韩顺平 零基础30天学会Java(2024.8.15)

P512 ArrayList底层源码2 P513 Vector注意事项 最近有点懈怠&#xff0c;要去新的环境上学了&#xff0c;有点焦虑&#xff0c;调整状态ing&#xff0c;准备开始研一&#xff0c;希望能继续本科的荣耀&#xff01;&#xff01; PS&#xff1a;本科应该算是荣耀的吧哈哈哈哈哈

html 首行缩进2字符

1. html 首行缩进2字符 1.1. 场景 在Html开发中让一段文字&#xff08;富文本等&#xff09;首行缩进两个文字&#xff0c;可能在前面加上8个“ ”&#xff0c;因为过去对CSS不熟悉&#xff0c;这种方法实现虽然比较直接&#xff0c;但是文字多的时候会有很多“ ”充斥在代码中…

深度学习设计模式之外观模式

文章目录 前言一、介绍二、特点三、详细分析1.核心组成2.代码示例3.优缺点优点缺点 4.使用场景 总结 前言 外观模式是结构型设计模式&#xff0c;定义一个高层接口&#xff0c;用来访问子系统中的众多接口&#xff0c;使系统更加容易使用。 一、介绍 外观设计模式&#xff08…

机器学习第十二章-计算学习理论

目录 12.1基础知识 12.2 PAC学习 12.3有限假设空间 12.3.1可分情形 12.3.2不可分情形 12.4VC维 12.5 Rademacher复杂度 12.1基础知识 计算学习理论研究的是关于通过"计算"来进行"学习"的理论&#xff0c;即关于机器学习的理论基础&#xff0c;其目的…

encoding with ‘idna‘ codec failed (UnicodeError: label empty or too long)

今天在使用Flask连接mysql的时候&#xff0c;遇到了一个报错&#xff1a;encoding with ‘idna’ codec failed (UnicodeError: label empty or too long) 网上查了一下说是字符集的问题&#xff0c;然后尝试修改了一下字符集&#xff0c;结果还是不行。 最后去翻阅SQLAlchemy…

汇昌联信科技做拼多多电商有哪些策略?

在当今竞争激烈的电商平台上&#xff0c;汇昌联信科技以其独到的策略成功立足拼多多。他们不仅凭借对市场的深刻理解&#xff0c;还通过一系列创新举措&#xff0c;实现了品牌的快速成长和市场份额的不断扩大。接下来&#xff0c;我们将深入探讨汇昌联信科技在拼多多平台上所采…

Python爬虫案例一:获取古诗文并按用户输入的作者名进行数据保存

前言&#xff1a; 1、什么是爬虫&#xff1f;也称为网页蜘蛛&#xff08;Web Spider&#xff09;&#xff0c;通俗来说&#xff0c;解放人的双手, 去互联网获取数据, 以数据库, txt, excel, csv, pdf, 压缩文件, image, video, music保存数据。本质: 模拟浏览器, 向服务器发送…

高性能 Web 服务器:让网页瞬间绽放的魔法引擎(上)

目录 一.Apache介绍 1.Apache prefork 模型 2.Apache worker 模型 3.Apache event模型 二.Nginx介绍 1.什么是Nginx 2.Nginx 功能介绍 3.Nginx基础特性 4.Nginx 进程结构&#xff1a;web请求处理机制 5.主进程(master process)的功能&#xff1a; 6.工作进程&#x…

k8s基础概念以及部署

kubernetes基础概念 来历 kubernetes以谷歌borg为前身&#xff0c;基于谷歌15年生产环境经验开源的一个项目。k8s是一个开源&#xff0c;的分布式的容器编排技术。 k8s的优势 对比对象 裸容器 例如docker&#xff0c;直接将容器部署在宿主机的方式被称为裸容器。 缺点 纯粹的裸…

使用docker-compose运行kafka及验证(无需zookpeer)

前言&#xff1a;要求安装docker-compose kafka镜像版本&#xff1a;apache/kafka:3.8.0 可能存在镜像拉不下来的情况&#xff1a; 1、vim /etc/docker/daemon.json {"data-root":"/data/docker","registry-mirrors": ["https://docker.m…

【C++二分查找】875. 爱吃香蕉的珂珂

本文涉及的基础知识点 C二分查找 LeetCode875. 爱吃香蕉的珂珂 珂珂喜欢吃香蕉。这里有 n 堆香蕉&#xff0c;第 i 堆中有 piles[i] 根香蕉。警卫已经离开了&#xff0c;将在 h 小时后回来。 珂珂可以决定她吃香蕉的速度 k &#xff08;单位&#xff1a;根/小时&#xff09;…

Golang基于DTM的分布式事务SAGA实战

SAGA介绍 SAGA是“长时间事务”运作效率的方法&#xff0c;大致思路是把一个大事务分解为可以交错运行的一系列子事务的集合。原本提出 SAGA 的目的&#xff0c;是为了避免大事务长时间锁定数据库的资源&#xff0c;后来才逐渐发展成将一个分布式环境中的大事务&#xff0c;分…

The Sandbox 新提案: 2024 年亚洲和拉丁美洲区块链活动预算

理事会建议&#xff1a; 积极 &#x1f642; 内容 此提案请求为2024年第四季度&#xff0c;The Sandbox 在东南亚和拉丁美洲的主要区块链活动中的激活分配 94,500 美元的 SAND 倡议预算。&#xff08;具体活动列表见下方活动描述&#xff09; 原因 区域团队希望在这些现场活…

一文学会本地部署可视化应用JSONCrack并配置公网地址实现远程协作

文章目录 前言1. Docker安装JSONCrack2. 安装Cpolar内网穿透工具3. 配置JSON Crack界面公网地址4. 远程访问 JSONCrack 界面5. 固定 JSONCrack公网地址 前言 本文主要介绍如何在Linux环境使用Docker安装数据可视化工具JSONCrack&#xff0c;并结合cpolar内网穿透工具实现团队在…

【二分查找】--- 进阶题目赏析

Welcome to 9ilks Code World (๑•́ ₃ •̀๑) 个人主页: 9ilk (๑•́ ₃ •̀๑) 文章专栏&#xff1a; 算法Journey 本篇博客我们继续来了解一些有关二分查找算法的进阶题目。 &#x1f3e0; 寻找峰值 &#x1f4cc; 题目内容 162. 寻找峰值 - 力扣&#…

【python爬虫】邮政包裹物流查询2瑞数6加密

大家好呀&#xff0c;我是你们的好兄弟【星云牛马】&#xff0c;今天给大家带来的是瑞数6的补环境的总结&#xff0c;补环境肯定是需要一些基础补环境知识的&#xff0c;所以建议没有基础的小伙伴可以加入学习群进行学习&#xff0c;有基础的伙伴加入交流起来。 QQ群&#xff…

用C#写一个随机音乐播放器

form1中namespce里的代码如下 public partial class Form1 : Form {public Form1(){InitializeComponent();}private void button1_Click(object sender, EventArgs e){string folder textBox1.Text;string folderPath folder; // 指定音频文件所在的文件夹路径OpenRandomFi…

thinkphp5漏洞分析之文件包含

目录 一、环境 二、开始研究 三、漏洞分析 四、漏洞修复 五、攻击总结 一、环境 thinkphp官网下载 创建 application/index/view/index/index.html 文件&#xff0c;内容随意&#xff08;没有这个模板文件的话&#xff0c;在渲染时程序会报错&#xff09; 二、开始研究 创…