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

本文详细介绍了如何在CentOS7系统上搭建Kubernetes集群,包括使用minikube、kubeadm,命令行工具kubectl的使用,Pod配置、资源调度、服务发现、配置存储、高级调度和身份权限认证等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

chenqiang_python

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

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

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

打赏作者

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

抵扣说明:

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

余额充值