Linux容器篇、第二章_01KubeSphere 容器平台高可用:环境搭建与可视化操作指南

Linux_k8s篇

欢迎来到Linux的世界,看笔记好好学多敲多打,每个人都是大神!

题目:KubeSphere 容器平台高可用:环境搭建与可视化操作指南

版本号: 1.0,0
作者: @老王要学习
日期: 2025.06.05
适用环境: Ubuntu22

文档说明

本文围绕 KubeSphere 容器平台高可用展开,涵盖环境准备的软硬件要求。先回顾 k8s 操作,如查看存储类、配置 PVC 等;后介绍 k8e 对 k8s 集群可视化,包括进入控制平台、修改密码、创建项目和工作负载等操作,提供命令及可视化配置的相关内容

环境准备

硬件要求

  • 服务器: 2核CPU、2GB内存,20GB硬盘空间
  • 网络: 确保服务器具有固定的IP地址,并且防火墙允许FTP端口(默认22端口)的通信

软件要求

  • 操作系统:Ubuntu22
  • FTP软件:SecureCRT
  • 软件包:

一、k8s简单回顾

1.1查看k8s集群中存储类

# 查看 Kubernetes 集群中 存储类(StorageClass)
kubectl get storageclasses.storage.k8s.io 
#输出如下: 
NAME         PROVISIONER                                   RECLAIMPOLICY   VOLUMEBINDINGMODE   ALLOWVOLUMEEXPANSION   AGE
nfs-client   k8s-sigs.io/nfs-subdir-external-provisioner   Delete          Immediate           false                  2d18h

1.2修改tab空格缩进为2

echo 'set tab-width 2' >> ~/.inputrc
echo 'set expand-tab on' >> ~/.inputrc  # 将 Tab 转换为空格

1.3写入pvc.yml文件

# 写入PVCyml文件
cat>mypvc.yml<<LW 
apiVersion: v1                        #配置采用Kubernetes API 的核心 v1 版本,像 Pod、Service、PVC 等基础资源都使用这个版本
kind: PersistentVolumeClaim           #明确这是一个PVC资源,其作用是向集群申请存储资源
metadata:
  name: mypodpvc                      #给PVC设定名为mypodpvc,后续pod挂载存储时会用到这个名称
spec:
  accessModes:                        #对PVC访问模式进行定义,这里采用ReadWriteOnce
    - ReadWriteOnce                   #该PVC能够被单个节点以读写的方式进行挂载
  storageClassName: nfs-client        #指定要使用的存储名称为nfs-client 
  resources:                          
    requests:
      storage: 1Gi                    #申请存储空间大小为1GB
LW

# 配置PVC
kubectl create -f mypvc.yml 
#输出如下: 
persistentvolumeclaim/mypodpvc created

# 查看PVC状态(PVC已经成功创建并绑定到 PV状态为 Bound)
kubectl get pvc
#输出如下: 
NAME       STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS   VOLUMEATTRIBUTESCLASS   AGE
mypodpvc   Bound    pvc-eba394ca-6101-45c4-8ba9-2df0ee34148f   1Gi        RWO            nfs-client     <unset>                 29s

1.4快速生成Pod文件

# 生成一个基于 busybox 镜像的 Pod 配置文件
kubectl run mypod --image busybox --dry-run=client -o yaml >mypod.yml

# 我们进行简单配置
apiVersion: v1              #使用 Kubernetes 核心 API 的 v1 版本
kind: Pod                   #资源类型为 Pod
metadata:                   #元数据
  labels:                   #标签,用于选择和分类资源,这里添加run=mypod标签
    run: mypod
  name: mypod               #Pod名称,必须在名称空间的唯一
spec:
  containers:               #容器定义
  - image: busybox          #使用busybox镜像
    name: mypod             #容器名称
    command:                #容器启动命令
      - sh
      - -c
      - sleep 1000000000000 #长时间sleep使容器保存运行
    volumeMounts:           #存储卷挂载配置
      - mountPath: /tmp     #容器内的挂载路径为/tmp目录
        name: myvol         #挂载的卷名称,必须与 spec.volumes 中定义的名称匹配

  volumes:                  #卷定义
    - name: myvol           #与 volumeMounts 中的名称对应
      PersistentVolumeClaim:  #使用 PVC 作为卷来源
        claimName: mypodpvc #引用之前创建的 PVC "mypodpvc"

# 生成一个基于 busybox 镜像的 dep 配置文件
kubectl create deployment mydep --replicas 3 --image nginx --dry-run=client -o yaml >mydep.yml

# 我们删除PVC资源
kubectl delete -f mypvc.yml 
#输出如下: 
persistentvolumeclaim "mypodpvc" deleted

# 如下我们进行可视化的配置操作

二、k8e对k8s集群可视化

2.1进入k8e控制平台

http://192.168.174.10:30880/login

# 密码如下:
3. Login to KubeSphere Console

    Use the following credentials to log in:

    Account: admin
    Password: P@88w0rd

2.2修改初始密码

在这里插入图片描述

2.3查看我们的集群节点状态

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

# 等同如下节点,只是图形化展示出来
kubectl get no
NAME        STATUS   ROLES                  AGE     VERSION
master-10   Ready    control-plane,worker   3d23h   v1.32.2
master-20   Ready    control-plane,worker   3d23h   v1.32.2
master-30   Ready    control-plane,worker   3d23h   v1.32.2

2.4创建项目(类似于名称空间)

在这里插入图片描述

在这里插入图片描述

2.5创建工作负载——部署——创建

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

# 查看k8s名称空间
kubectl get ns
NAME                         STATUS   AGE
default                      Active   3d23h
kube-node-lease              Active   3d23h
kube-public                  Active   3d23h
kube-system                  Active   3d23h
kubekey-system               Active   3d23h
kubesphere-controls-system   Active   3d18h
kubesphere-system            Active   3d18h
test                         Active   10m      <<<<<<<<创建的test

# 查看test中的pod正在启动中(等待启动)
kubectl get pod -n test 
#输出如下: 
NAME                     READY   STATUS              RESTARTS   AGE
myweb-646b4c9f65-6cs2s   0/1     ContainerCreating   0          82s

# 查看特定Pod(myweb)详细信息
kubectl describe pod -n test myweb-646b4c9f65-6cs2s
#输出如下: 
Events:
  Type    Reason     Age    From               Message
  ----    ------     ----   ----               -------
  Normal  Scheduled  4m29s  default-scheduler  Successfully assigned test/myweb-646b4c9f65-6cs2s to master-30    <<<<<<分配到30
  Normal  Pulling    4m28s  kubelet            Pulling image "docker.m.daocloud.io/library/nginx:stable"    <<<<<<正在下载

2.6创建完成进入myweb查看并添加一个副本

在这里插入图片描述

在这里插入图片描述

2.7创建服务

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

2.8集群中创建 Deployment(命令创建)

# 创建一个 Deployment 的 YAML 配置文件
kubectl create deployment myweb02 --image docker.m.daocloud.io/library/nginx --replicas 2 --dry-run=client -o yaml >myweb02.yml
#输出如下: 
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: myweb02
  name: myweb02
spec:
  replicas: 2
  selector:
    matchLabels:
      app: myweb02
  template:
    metadata:
      labels:
        app: myweb02
    spec:
      containers:
      - image: docker.m.daocloud.io/library/nginx
        name: nginx

# 集群中实际创建 Deployment 资源
kubectl create -f myweb02.yml 
#输出如下: 
deployment.apps/myweb02 created

# 查看集群中Deployment资源
kubectl get deployments.apps 
#输出如下: 
NAME                     READY   UP-TO-DATE   AVAILABLE   AGE
myweb02                  2/2     2            2           118m
nfs-client-provisioner   1/1     1            1           3d23h

2.9查看服务创建web网页

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值