✅作者简介:

                  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
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐