k8s(2)-深入k8s实战进阶篇

Kubernetes(K8S)学习(三):K8S实战案例 本文介绍了在Kubernetes集群中使用NodePort方式部署WordPress和MySQL的完整流程。首先创建了wordpress命名空间,然后通过yaml文件分别部署MySQL数据库(配置了root和wordpress用户密码)和WordPress应用(需指定MySQL服务地址)。最后通过NodePort暴露WordPress服务端口30467,实现通过宿主机IP访问WordPress安装界面。整个过程涵盖了命名空间创建、yaml文件编写、资源部署、服务暴露等关键步骤,并提供了常用kubectl命令 阅读详情

1 搭建kubernetes集群

1.1 搭建方案

1.1.1 minikube

1.1.2 kubeadm

软件环境
操作系统:centos7
Docker: 20+
k8s: 1.23.6
安装步骤

  1. 初始操作
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  2. 安装基础软件(所有节点)
    安装docker
    添加阿里云yum源
    安装kubeadm、kubelet、kubectl
    在这里插入图片描述

  3. 部署kubernets Master
    在这里插入图片描述

1.1.3 二进制安装

1.1.4 命令行工具

1.2 命令行工具kubectl

1.2.1 在任意节点使用kubectl

在这里插入图片描述

1.2.2 自动补全

1.2.3 资源操作

在这里插入图片描述

2 pod

pod配置文件

:

探针

类型

LivenessProbe
在这里插入图片描述
ReadinessProbe
在这里插入图片描述
StartupProbe
在这里插入图片描述

探测方式

ExecAction
在这里插入图片描述

TCPSocketAction
在这里插入图片描述

HTTPGetAction
在这里插入图片描述

参数配置

在这里插入图片描述

案例

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

生命周期

pod删除,pod变成terminating状态,执行preStop指令
preStop应用:数据清理,数据销毁等
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3. 资源调度

Label和Selector

在这里插入图片描述
临时增加label
在这里插入图片描述
修改标签
在这里插入图片描述
显示标签
在这里插入图片描述
Selector
在这里插入图片描述
在这里插入图片描述

Deployment

功能:

  • 滚动更新
  • 回滚
  • 扩容缩容
  • 暂停与恢复

在这里插入图片描述

滚动更新

在这里插入图片描述

回滚

在这里插入图片描述
在这里插入图片描述

扩容缩容

在这里插入图片描述

暂停与恢复

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

StatefulSet

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

特点:

  • 稳定的持久化存储
  • 稳定的网络标志
  • 有序部署,有序扩展
  • 有序收缩,有序删除

组成:

  • Headless Service
    在这里插入图片描述
  • VolumeClaimTemplate
扩容缩容

在这里插入图片描述

更新

在这里插入图片描述
RollingUpdate
在这里插入图片描述
在这里插入图片描述
OnDelete
当pod删除的时候,才去更新

删除

在这里插入图片描述

DaemonSet

指定node节点

在这里插入图片描述
在这里插入图片描述

HPA 自动扩容/缩容

在这里插入图片描述

开启指标服务

在这里插入图片描述
在这里插入图片描述

cpu、内存指标监控

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

自定义metrics

在这里插入图片描述

4. 服务发现

Service

在这里插入图片描述
在这里插入图片描述

代理k8s外部服务

实现service访问外部服务
在这里插入图片描述
service
在这里插入图片描述

endpoint
在这里插入图片描述
反向代理外部域名
在这里插入图片描述

类型
  • ClusterIP
    在这里插入图片描述

  • ExternalName
    在这里插入图片描述

  • NodePort
    在这里插入图片描述

  • LoadBalancer
    在这里插入图片描述

Ingress

在这里插入图片描述

安装ingress-nginx(ingress控制器)

添加helm仓库
在这里插入图片描述
下载包
在这里插入图片描述
配置参数
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
创建Namespace
在这里插入图片描述
安装ingress
在这里插入图片描述
ingress使用
在这里插入图片描述

5. 配置与存储

配置管理

ConfigMap
在这里插入图片描述
将configmap中的内容添加到环境变量中
在这里插入图片描述
将configmap中文件,映射到容器内部
在这里插入图片描述

Secret
在这里插入图片描述
subpath使用
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
配置的热更新

在这里插入图片描述
在这里插入图片描述
通过replace替换配置文件
在这里插入图片描述
不可变的configmap和secret
在这里插入图片描述
在这里插入图片描述

持久化存储

volumes
HostPath
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

EmptyDir
在这里插入图片描述
在这里插入图片描述

NFS挂载
在这里插入图片描述
安装nfs
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

pv与pvc
在这里插入图片描述
生命周期

  1. 构建

    1. 静态构建
      在这里插入图片描述

    2. 动态构建
      在这里插入图片描述

  2. 绑定
    在这里插入图片描述

  3. 使用
    在这里插入图片描述

  4. 回收策略
    在这里插入图片描述

    1. 保留(Retain)
      在这里插入图片描述
      在这里插入图片描述

    2. 删除(Delete)
      在这里插入图片描述

    3. 回收(Recycle)
      在这里插入图片描述

pv

状态

  1. available :空闲,没有被绑定
  2. bound : 已经被pvc绑定
  3. released : pvc被删除,资源已回收,但是pv未被重新使用
  4. failed : 自动回收失败

配置文件:
在这里插入图片描述

pvc

配置文件
在这里插入图片描述
pod绑定pvc
在这里插入图片描述

StorageClass
在这里插入图片描述

制备器(provisioner)
在这里插入图片描述

NFS动态制备案例

  1. 创建StorateClass,并使用自己创建的provisioner
    在这里插入图片描述

  2. 创建provisioner
    在这里插入图片描述
    在这里插入图片描述

  3. 创建sservice以及pod
    在这里插入图片描述
    在这里插入图片描述

6 高级调度

CronJob计划任务

在这里插入图片描述

配置文件
在这里插入图片描述

cron表达式
在这里插入图片描述

初始化容器(InitContainer)

在这里插入图片描述
在这里插入图片描述

污点和容忍

污点(Taint)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

容忍(Toleration)
在这里插入图片描述

亲和力(Affinity)

RequiredDuringSchedulinglgnoredDuringExecution
在这里插入图片描述
PreferredDuringSchedulinglgnoredDuringExecution
在这里插入图片描述

NodeAffinity
在这里插入图片描述
PodAffinity
PodAntiAffinity
在这里插入图片描述

7 身份与权限认证

认证
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

授权

  • role
    在这里插入图片描述

  • clusterRole
    在这里插入图片描述

  • roleBinding
    在这里插入图片描述

  • clusterRoleBinding

【K8S实战】-超详细教程(一) K8S环境搭建可以看这篇文章【k8s搭建(超详细,保姆级教程)】,这里就不过多赘述了,有疑问欢迎留言。K8S的资源创建一般有2种:主要用于资源访问的隔离。使用命令方式实现对命名空的创建与删除。 3.2、使用Yaml操作Namespace 创建一个名为ns.yaml的文件,文件内容如下: 使用Yaml方式对命名空进行创建与删除。 4、pod pod是K8S运行的最小单位。可以理解类似Docker的最小运行单位容器,只不过K8S是在Docker容器的基础上再封装一层,也就是说一个pod可以运行一个或多个容器(后 阅读详情

相关推荐

K8S实战进阶

官网文档:https://kubernetes.io/zh-cn/docs/reference/using-api/REST API 是 Kubernetes 系统的重要部分,组件之间的所有操作和通信均由 API Server 处理的 REST AP I调用,大多数情况下, API 定义和实现都符合标准的 HTTP REST 格式,可以通过kubectl命令管理工具或其他命令行工具来执行。控制管理器开启–horizontal-pod-autoscaler-use-rest-clients。

xinxiaoyu_的博客 1499

Kubernetes/K8S进阶实战

<p><img src="https://img-bss.csdnimg.cn/202104081053404371.png" alt="" /></p>

[Kubernetes]1.Kubernetes(K8S)介绍,基于腾讯云的K8S环境搭建集群以及裸机搭建K8S集群

Kubernetes(K8S)介绍,基于腾讯云的K8S环境搭建集群以及裸机搭建K8S集群

资深系统架构,深耕高并发研发与 AI 大模型工程化落地。技术栈以 Python (AI/NLP/RAG/Agent) 与 Golang (高并发架构) 为双核心,兼具 PHP 大型应用经验。专注算法落地、复杂系统设计及团队技术赋能 3225

极速上手k8s,Kubernetes 从入门到摸鱼系列-实践篇

本文我们通过组合理论篇所学习到的组件,通过一个 Node.js 网页应用连接 MongoDB 的例子,实现了在 k8s 中部署使用。虽然在本机环境下用 minikube 会显得比 Docker Compose 要麻烦的多,但只要我们上了集群,就可以凸显出 k8s 的强大之处了。

比特桃 3701

云原生Kubernetes全栈架构师(基于世界500强的k8s实战课程)

第3~7章介绍Docker的基础和镜像的制作优化,以及Kubernetes的基础概念(Master、Node和Pod)、核心调度资源(Deployment、StatefulSet、DaemonSet、CronJob)、服务发布(Service和Ingress)和配置管理(ConfigMap和Secret)。第8~11章主要介绍Kubernetes的持久化存储、动态存储、CSI、高级调度(容忍、污点和亲和力)、服务质量、权限管理、Kubernetes资源配额管理。

cao_fujiang的博客 1295

【Kubernetes】以LOL的视角打开K8s

LOL和K8s都上手之后,其实我觉得相比较起来,LOL的上手难度要高多了,这么多个英雄,每个英雄有不同的机制和技能,这些可比K8s的内容多多了,所以如果大家LOL都能上手的话,上手K8s肯定不会是问题的!

ThisIsClark 2076

kubernetes(k8s)之实战进阶篇

本质上将包括前面的kubectl命令行工具、后边编写配置文件最终其实都是调用的api。k8s又更细的比较频繁,不同版本的api也会有些差异;所以还是要了解下api的一些东西。关于api的概念可以参考中文官网:Kubernetes API 概念 | KubernetesREST API是k8s系统的重要部分,组件之间的所有操作和通信都是由API Server处理的REST API调用,大多数情况下API的定义和实现都符合 HTTP REST格式。

mijichui2153的博客 6858

K8S:Rancher管理 Kubernetes 集群

本文对Rancher介绍:Rancher 是一个开源的企业级多集群 Kubernetes 管理平台,确保集群的安全性,能够管理 k8s 集群。 对对Rancher安装以及配置、登录进入平台后如何操作进行介绍

Katie_ff的博客 5836

K8S实战进阶篇:一文带你深入了解K8S持久化存储解决方案

一文带你深入了解K8S持久化存储解决方案

cuixhao110的博客 7665

离线安装4:kubernetes(k8s)离线安装_kubernetes 离线安装

firewall-cmd --zone=public --add-port=10257/tcp --permanent # kube-controller-manager 自身。firewall-cmd --zone=trusted --add-source=192.168.80.60 --permanent # 信任集群中各个节点的IP。firewall-cmd --zone=public --add-port=10259/tcp --permanent # kube-scheduler 自身。

2401_87034001的博客 2760

Blender软件导出地形到Gazebo中

Blender软件导出地形到Gazebo中,并配置纹理、刚度、高度。

m0_70652514的博客 3377

Kubernetes K8S 基于 Docker 安装部署

在 Docker 容器技术被炒得热火朝天之时,大家发现,如果想要将 Docker 应用于具体的业务实现,是存在困难的——编排、管理和调度等各个方面,都不容易。于是,人们迫切需要一套管理系统,对 Docker 及容器进行更高级更灵活的管理。就在这个时候,K8S 出现了。K8S,就是基于容器的集群管理平台,它的全称,是 Kubernetes。 本次主题将会为你分享: K8S 起源 K8S 集群 为什...

GitChat 1万+

S.BUS协议及编解码,C语言源码

1、简介 SBUS本质是一种串口通信协议,采用100K的波特率,8位数据位,两位停止位,偶效验,即8E2的串口通信。 值得注意的有三点: 1.SBUS采用负逻辑,所以无论接收还是发送都要进行硬件取反(注意,一定要硬件取反),电路如下 这是我在网上看资料时看到的电路,实际上我用的是下面这个电路 2.SBUS有两种模式, a.高速模式:每4ms发送一次 b...

qq_31232793的博客 1万+

一、kubernetes k8s

k8s的全称:kubernetes k8sk8s的版本:1.301.20------------用的最多的版本,1.18-1.211.24------------>k8s的镜像不再使用docker,containerd。

2401_87896172的博客 3668

毫米波与太赫兹:十射线模型建模

Pt=1,只考虑地面和前后两面墙的反射,反射系数为0.7。用matlab设计程序并实现该功能。,总计考虑10条路径,求出接收功率随。

SupermarketX的博客 786

【YOLO 系列】基于YOLO V8的智能车载交通标志识别系统【python源码+Pyqt5界面+数据集+训练代码】

本文详细介绍了基于YOLO V8构建智能车载交通标志识别系统的完整流程。从环境搭建、数据集准备、模型训练到PyQt5图形界面开发,提供了Python源码和实战代码,帮助开发者快速实现高精度、实时的交通标志检测应用,提升驾驶辅助系统的开发效率。

wdx012345的博客 968

k8s kubernetes

(Container Runtime Interface): 容器运行时接口,用来运行容器,k8s通过这个接口去兼容不同的容器,目前主要的CRI有CRI-O和containered,dockershim在k8s的1.24版本后从kubelet中剥离出来,主要由docker维护(不是亲儿子k8s也不会管了):containerd由docker开发,是docker用来操作runc的handler,与docker平级,docker生成的images等资源与containerd生成的images等资源不共享。

六月长安的博客 2739

elementui中el-select和el-tree实现下拉树形多选功能

elementui中el-select和el-tree实现下拉树形多选功能

weixin_49203377的博客 6558

Kubernetes(k8s)实战:Kubernetes(k8s)部署Springboot项目

在集群中,pod之间可以通过service 的name进行访问,不仅仅是ip,这就意味着,service中不仅帮我们做了负载均衡,而且做了dns处理。如上,加上hostNetwork: true,就会在nacos上注册的ip端口,会映射成宿主机的ip和端口。如果在同一个k8s集群下,这样部署是没问题的,但是不同k8s集群下,微服务之间就互相不可访问了。我们发现,搭建成功了,用浏览器访问192.168.56.101:30493,发现访问成功了!访问:http://localhost:8080/k8s。

秃了也弱了 5756

爬取Unsplash高清壁纸:Python爬虫实战教程(最新技术)

在当今数字化时代,高清壁纸已经成为人们个性化设备的重要元素。Unsplash作为全球最知名的免费高质量图片网站,汇集了数百万张由全球摄影师贡献的高清图片。然而,Unsplash官网的下载方式需要手动操作,对于需要批量下载壁纸的用户来说效率较低。本文将带你深入探索如何使用Python爬虫技术高效爬取Unsplash高清壁纸,从基础到进阶,全面掌握图片爬取的核心技术。Unsplash成立于2013年,是一个完全免费的图片分享平台。高质量内容:所有图片均由专业摄影师上传,分辨率普遍达到4K以上免费商用。

2201_76125261的博客 937

Mac安装Claude Code的3种方式及5类报错解决方案

介绍在Mac上安装Claude Code的3种实测可行方式(官方dmg、Homebrew+ARM原生构建、Docker容器化),并针对Gatekeeper签名验证失败、Rosetta 2内存对齐崩溃、Python ABI兼容性冲突等5类高频报错提供根因分析与可复现解决方案,覆盖M1–M3及Intel

weixin_28728443的博客 365

【云原生 • Kubernetes】认识 k8s、k8s 架构、核心实战

【云原生 • Kubernetes】认识 k8s、k8s 架构、核心实战

程序员码小跳 1万+

AUTOSAR 导入DBC ISOLAR工程配置

ISOLAR工程配置-dbc导入

汽车电子电气 2408

kubernetes(Jenkins、kubernetes核心、K8s实战-KubeSphere、)

手动部署# 1:表示stdout标准输出 2:表示stderr标准错误 &:等效于标准输出# 2>&1,意思是错误输出等同于标准输出。把标准输出和错误输出全部导入日志xxx.log里。创建没有任务的容器 不停止docker run -d --name 容器名称 -p 端口号:端口号 镜像名称 sleep infinityDevOps:Development和Operations的组合词,它是一种重视软件开发人员(Dev)和IT运维技术人员(Ops)之间沟通合作的文化、运动或惯例。

小丁的博客 2479

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

【云原生】详解Kubernetes、详解k8s,什么是k8s,k8s有什么用;k8s集群是什么、有什么用?

Kubernetes 是Google开源的分布式容器管理平台,是为了更方便的在服务器中管理我们的容器化应用。Kubernetes 简称 K8S,为什么会有这个称号?因为K和S是 Kubernetes 首字母和尾字母,而K和S中间有八个字母,所以简称 K8S,加上 Kubernetes比较绕口,所以一般使用简称 K8S。Kubernetes 即是一款容器编排工具,也是一个全新的基于容器技术的分布式架构方案,在基于Docker的基础上,可以提供从 一系列服务,提高了容器集群管理的便捷性。大家可以先看一下,下面一

点赞的都能无bug通过! 3980

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Kubernetes(K8S)原理

本质上讲, k8s创建一个pod后,每个Pod中至少存在两个容器,一个是用户自定义的容器,另一个是k8s自动创建的名称为pause-amd64的容器(配置IP), 实际上Pod的IP是配置在pause容器上的。stateful的实现要依赖于存储volume,例如一个Pod挂载一个独立的存储,该Pod宕机后,自动创建一个新的Pod,新Pod一样会去挂载存储获取数据,这就相当于新Pod继承的原有Pod的所有数据及状态。用于让构建业务集群的多个Pod间通过名称通信,而不是借助IP,来保证服务的有状态性。

weixin_57466446的博客 1863

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

上一篇: k8s(1)-核心概念篇
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

chenqiang_python

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值