云原生系列 【基于CCE Kubernetes编排实战二】
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |
✅作者简介
CSDN内容合伙人全栈领域新星创作者阿里云专家博主阿里云问答板块版主华为云享专家博主掘金后端评审团成员
💕前言
最近云原生领域热火朝天那么云原生是什么何为云原生云原生用来干什么的今天学长通过华为的沙箱实验操作带领大家走进“云”时代~~
目录
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