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


      ✅作者简介:

                      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
  • 相关阅读:
    02 ts 变量定义,类型
    Dubbo—— 一个服务既是消费者又是提供者
    手撕代码(Simple)- Java后端高频面试算法题集锦 1
    47、Docker 安装 ElasticSearch、Kibana、IK分词器
    STM32F1与STM32CubeIDE编程实例-超声波测距传感器驱动
    Ubuntu 安装 npm 和 node
    Java中如何向List中添加元素呢?
    TensorRT简介
    若依框架:登录时如何解决404和验证码问题
    使用LiME收集主机物理内存的内容时发生宕机
  • 原文地址:https://blog.csdn.net/m0_63722685/article/details/128064448