云原生系列 【基于CCE Kubernetes编排实战二】

news2025/1/27 12:58:52

  ✅作者简介:

                  CSDN内容合伙人,全栈领域新星创作者,阿里云专家博主,阿里云问答板块版主,华为云享专家博主,掘金后端评审团成员

💕前言:

最近云原生领域热火朝天,那么云原生是什么?何为云原生?云原生用来干什么的?今天学长通过华为的沙箱实验操作带领大家走进“云”时代~~

img

目录

2. Kubernetes组件实操收起

2.1 查看Kubernetes状态

3. 部署实验收起

3.1 运行第一个部署

3.2 使用kubectl命令行工具查看对象

3.3 创建自定义部署

3.4 弹性伸缩部署

4. 守护程序集实验收起

4.1 使用守护程序集

4.2 DaemonSet自动恢复

2. Kubernetes组件实操收起

2.1 查看Kubernetes状态

(1)查看节点状态。

                                kubectl get node
                            

(2)查看现有命名空间。

                                kubectl get namespace
                            

(3)创建命名空间。

                                kubectl create namespace new-namespace
                            

(4)再次查看命名空间列表。

                                kubectl get namespace
                            

(5)删除新创建的命名空间。

                                kubectl delete namespace new-namespace
                            

3. 部署实验收起

3.1 运行第一个部署

(1)创建一个部署。

                                kubectl create deployment mydep  --image=nginx
                            

(2)通过命令行查看部署。

                                kubectl get deploy
                            

(3)使用kubectl describe命令查看资源对象的详细信息。

                                kubectl describe deployment mydep
                            

(4)通过CCE控制台查看部署。点击控制台中的工作负载—>无状态负载,可以看到创建的工作负载mydep。

3.2 使用kubectl命令行工具查看对象

(1)使用kubectl get命令,get all可以查看所有对象。

                                kubectl get all
                            

(2)查看指定命名空间的对象。

                                kubectl get all -n kube-system
                            

(3)以交互模式查看对象的变化,按ctrl+c退出交互模式。

                                kubectl get deployment -w
                            

(4)查看完整的对象信息。

                                kubectl get deployment -o wide
                            

3.3 创建自定义部署

(1)在master节点创建/labfile/deployfile目录,用于保存配置文件。后续创建deployment的yaml文件保存在此处。

                                cd /
                            
                                mkdir labfile
                            
                                cd labfile/
                            
                                mkdir deployfile
                            
                                cd deployfile/
                            

(2)创建部署文件。

                                vim nginx-deployment.yaml
                            

按'i'键进行编辑,文件内容如下:

                                apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
  labels:
    app: nginx
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.7.9
        ports:
        - containerPort: 80
                            

(3)按Esc键退出编辑,输入“:wq”保存并退出,部署nginx-deployment。

                                kubectl apply -f nginx-deployment.yaml
                            

(4)查看创建结果。

                                kubectl describe deployment nginx-deployment
                            
                                kubectl get deployment
                            

(5)查看Pod(等待约 2分钟,才会显示 Running状态)。

                                kubectl get pod
                            

(6)同样的,可以在CCE控制台中,刷新一下查看副本数及pod。

点击nginx-deployment,进入工作负载详情,下拉,在实例列表中可以看到pod的名称。

3.4 弹性伸缩部署

(1)编辑之前创建的nginx-deployment.yaml文件,将副本数量“replicas”改为5。

                                vim nginx-deployment.yaml
                            

按“i”键进行编辑,编辑第8行replicas的内容:

                                apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
  labels:
    app: nginx
spec:
  replicas: 5
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.7.9
        ports:
        - containerPort: 80
                            

(2)按Esc键退出编辑,输入“:wq”保存并退出,然后应用变更后的nginx-deployment.yaml文件。

                                kubectl apply -f nginx-deployment.yaml
                            

(3)查看pod状态,确认Pod数量是否正确。

                                kubectl get pod
                            

(4)回到刚才实例列表页面,刷新一下可以看到pod实例扩展到5个了。

(5)删除创建的部署。

                                kubectl delete deployment nginx-deployment
                            

4. 守护程序集实验收起

DaemonSet 可以做一个守护进程的控制器。此处实验以fluentd日志收集系统为例,进行部署。

4.1 使用守护程序集

(1)创建文件夹,用于保存DemmonSet和Job文件。

                                mkdir /labfile/daemonfile
                            
                                cd /labfile/daemonfile/
                            

(2)创建DaemonSet的yaml文件。

                                vim DaemonSet.yaml
                            

按“i”键进行编辑,内容如下:

                                apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: fluentd-elasticsearch
  namespace: kube-system
  labels:
    k8s-app: fluentd-logging
spec:
  selector:
    matchLabels:
      name: fluentd-elasticsearch
  template:
    metadata:
      labels:
        name: fluentd-elasticsearch
    spec:
      containers:
      - name: fluentd-elasticsearch
        image: fluent/fluentd:v1.4-1
                            

(3)按Esc键退出编辑,输入“:wq”保存并退出,然后创建DaemonSet。

                                kubectl apply -f DaemonSet.yaml
                            

(4)查看创建的DaemonSet。此处, 需要在命令行中通过--namespace=kube-system指定namespace kube-system 。若不指定,则只 返回默认命名空间 default中的资源。实验中只有一个Node节点,所以运行的fluentd也只有1个。

                                kubectl get daemonset --namespace=kube-system
                            

(5)查看DaemonSet中Pod信息。

                                kubectl get pod --namespace=kube-system -o wide
                            

(6)在CCE控制台中,可以查看守护进程集DaemonSet。因为上面步骤创建DaemonSet指定了命名空间,所以命名空间选择kube-system。

可以点击工作负载名称,进入实例列表,查看实例的详情信息。

4.2 DaemonSet自动恢复

删除任意一个 Pod。

注意:用4.1步骤第(5)处查询的Pod名称替换下方命令中的【Pod名称】

                                kubectl delete pod 【Pod名称】 --namespace=kube-system
                            

查看DaemonSet自动恢复功能。

                                kubectl get pod --namespace=kube-system
                            

退出弹性云服务器ECS,本实验结束。

                                exit

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Hystirx限流:信号量隔离和线程池隔离

背景: 最近工作中要处理服务高并发的问题,大流量场景下限流熔断降级可以说是必不可少的,打算对限流做一次改造,所以要先了解一下hytrix相关内容,比如了解一下线程池隔离和信号量隔离的区别。 **信号量:**信…

[网络工程师]-应用层协议-DHCP

BOOTP是最早的主机配置协议,动态主机配置协议(Dynamic Host Configuration Protocol,DHCP)则是在其基础上进行了改良的协议,是一种用于简化主机IP配置管理的IP管理标准。通过DHCP协议,DHCP服务器为DHCP客户…

集合学习笔记——Collection 全家桶

Collection是我们日常开发中使用频率非常高的集合,它的主要实现有List和Set,区别是List是有序的,元素可以重复;Set是无序的,元素不可以重复,我们简单看下继承关系: List的实现类主要线程不安全的ArrayList和LinkedList…

推挽输出和开漏输出-三极管-mos管

一、推挽输出 1.1推挽输出的概念 推挽(push-pull)输出是由两个MOS或者三极管组成,两个管子始终保持一个导通,另一个截止的状态。 图1 推挽电路示意图 当输入高电平时,叫做推; 上管Q1导通,下管…

【目标检测】Faster R-CNN论文的讲解

目录:Faster R-CNN论文的讲解一、前言二、回顾Fast R-CNN三、引入Faster R-CNN四、Faster R-CNN的介绍4.1 框架结构4.2 RPN如何产生候选区域的4.3 损失函数4.4 训练候选框提取网络4.5 RPN和Fast R-CNN共享特征的方法4.5.1 交替训练法4.5.2 近似联合训练法一、前言 …

C语言——学生信息管理系统

目录 功能展示 界面展示 所有功能模块: 功能1:菜单模块(显示功能菜单) 功能2:增加学生信息 功能3:输出学生信息(查看所有学习信息) 功能4:修改学生信息 功能5&a…

python3-GUI概述及应用

目录一、什么是GUI二、Python GUIPySimpleGUI概述一、PySimpleGUI简介二、PySimpleGUI特征三、输出设备hello,world猜数字一、玩家猜数字二、电脑猜数字21点游戏一、21点游戏简介二、程序代码一、什么是GUI 图形用户界面(Graphical User Interface,简称…

十六、CANdelaStudio深入-CDD与CDDT的差异(新建自定义服务)

本专栏将由浅入深的展开诊断实际开发与测试的数据库编辑,包含大量实际开发过程中的步骤、使用技巧与少量对Autosar标准的解读。希望能对大家有所帮助,与大家共同成长,早日成为一名车载诊断、通信全栈工程师。 本文介绍CANdelaStudio的CDD与CDDT的差异与新建自定义服务,欢迎…

数字图像处理(一)——什么是数字图像

一、什么是数字图像处理? 一副图像可以被定义为一个二维函数f(x,y),其中x和y是空间平面坐标,而对任意一对空间坐标(x,y)处幅值f称为图像在该点的强度或者灰度。当x和y以及灰度值f是有限的离散数值时,我们称该图像为数字图像。像素…

排序算法简述

一、概述 常见的排序算法有冒泡排序、插入排序、选择排序、快速排序、归并排序、桶排序、基数排序,这些排序各自有各自的特点。按照时间时间复杂度可以分为 O(n^2):冒泡、插入、选择排序;O(nlogn):归并、快速排序;O(n):桶排序、计数排序、基…

[附源码]java毕业设计自治小区物业设备维护管理系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

[附源码]Python计算机毕业设计房地产销售系统

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

SSM+Mysql实现的共享单车管理系统(功能包含分角色,登录、用户管理、服务点管理、单车管理、分类管理、学生信息管理、单车租赁、信息统计、系统设置等)

博客目录SSMMysql实现的共享单车管理系统实现功能截图系统功能使用技术代码完整源码SSMMysql实现的共享单车管理系统 本系统一个学校共享单车管理的项目,通过线上系统化的管理,可以为后续的运营以及单车的项目运转提供极大的帮助。 (文末查看完整源码) …

【计算机视觉(CV)】基于图像分类网络VGG实现中草药识别(二)

【计算机视觉(CV)】基于图像分类网络VGG实现中草药识别(二) 作者简介:在校大学生一枚,华为云享专家,阿里云专家博主,腾云先锋(TDP)成员,云曦智划项…

Graph (discrete mathematics)

In mathematics, and more specifically in graph theory, a graph is a structure amounting to a set of objects in which some pairs of the objects are in some sense “related”. The objects correspond to mathematical abstractions called vertices (also called n…

餐厅食材采购信息管理系统的设计与实现

摘 要 网络的广泛应用给生活带来了十分的便利。所以把餐厅食材采购信息管理与现在网络相结合,利用JSP技术建设餐厅食材采购信息管理系统,实现餐厅食材采购的信息化。则对于进一步提高餐厅食材采购信息管理发展,丰富餐厅食材采购信息管理经验…

SpringBoot SpringBoot 原理篇 3 核心原理 3.5 启动流程【4】【5】【6】

SpringBoot 【黑马程序员SpringBoot2全套视频教程,springboot零基础到项目实战(spring boot2完整版)】 SpringBoot 原理篇 文章目录SpringBootSpringBoot 原理篇3 核心原理3.5 启动流程【4】【5】【6】3.5.1 看源码咯3.5.2 总结3 核心原理 …

剑指 Offer 10- I. 斐波那契数列

一、题目描述 写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项(即 F(N))。斐波那契数列的定义如下: F(0) 0, F(1) 1 F(N) F(N - 1) F(N - 2), 其中 N > 1. 斐波那契数列由 0 和…

leetcode:6248. 统计中位数为 K 的子数组【问题转化 + 排序二分】

目录题目截图题目分析ac code总结题目截图 题目分析 找到k的位置然后一步步往左走,一步步往右走统计左边和右边的比当前k小的和比k大的lst [[small, big]],分为left和right两部分可以先一侧的单独看small和big,找到big - small 0或者1的即…

NETCONF、RESTCONF和YANG

目录 一、NETCONF、RESTCONF和YANG是之间什么关系? 二、Netconf简介 2.1、一般使用工具:MG-Soft 简介 三、Netconf YANG 原理与实践 3.1、NETCONF协议 3.2、YANG建模语言 3.3、RESTCONF协议 网管协议: SNMP(基于UDP&#…