当前位置: 首页 > news >正文

Linux企业运维——Kubernetes(十六)容器资源监控

Linux企业运维——Kubernetes(十六)容器资源监控

文章目录

    • Linux企业运维——Kubernetes(十六)容器资源监控
    • 1、Metrics-Server
      • 1.1、Metrics-Server简介
      • 1.2、Metrics-Server部署
    • 2、Dashboard
      • 2.1、Dashboard部署
      • 2.2、Dashboard可视化控制

1、Metrics-Server

1.1、Metrics-Server简介

Metrics-Server是集群核心监控数据的聚合器,用来替换之前的heapster。

容器相关的Metrics 主要来自于 kubelet 内置的 cAdvisor 服务,有了Metrics-Server之后,用户就可以通过标准的Kubernetes API 来访问到这些监控数据。

  • Metrics API 只可以查询当前的度量数据,并不保存历史数据。
  • Metrics API URI 为 /apis/metrics.k8s.io/,在 k8s.io/metrics 维护。
  • 必须部署metrics-server 才能使用该 API,metrics-server 通过调用 KubeletSummary API
    获取数据。

在这里插入图片描述

  • Metrics Server 并不是 kube-apiserver 的一部分,而是通过Aggregator
    这种插件机制,在独立部署的情况下同 kube-apiserver 一起统一对外服务的。
  • kube-aggregator 其实就是一个根据 URL 选择具体的 API 后端的代理服务器。

1.2、Metrics-Server部署

Metrics-Server部署:修改端口、分发证书、设置节点解析

真实主机将metrics-server.tar发送给server1
在这里插入图片描述
server1加载镜像,并将metrics-server上传至仓库
在这里插入图片描述
真实主机将components.yaml发送给server2
在这里插入图片描述
server2创建metrics-server目录并在该目录下编辑components.yaml
在这里插入图片描述
修改镜像路径
在这里插入图片描述
将安全端口和容器端口修改为4443
在这里插入图片描述
应用配置
在这里插入图片描述
查看kube-system命名空间的pod信息,可以看到metrics-server处于运行状态但并未就绪
在这里插入图片描述
server2、3、4都对/var/lib/kubelet//config.yaml配置文件进行编辑,将serverTLSBootstrap参数修改为true,启动证书授权,保存退出
在这里插入图片描述
server2、3、4重启kubelet服务
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
查看所有证书签名请求,三个证书签名请求都处于Pending状态,对三个请求进行授权后,再查看发现状态变为已接受,已发布
在这里插入图片描述
如果出现no such host错误提示,这是因为没有内网的DNS服务器,所以metrics-server无法解析节点名字。可以通过kubectl edit configmap coredns -n kube-system命令修改coredns的configmap,讲各个节点的主机名加入到hosts中,这样所有Pod都可以从CoreDNS中解析各个节点的名字。

在这里插入图片描述
修改完成后metrics-server正常运行
在这里插入图片描述
查看详细信息可以看到后端地址和端口
在这里插入图片描述
通过kubectl top node可以监控到所有节点的资源使用情况
在这里插入图片描述

2、Dashboard

Dashboard可以给用户提供一个可视化的 Web 界面来查看当前集群的各种信息。用户可以用 Kubernetes Dashboard 部署容器化的应用、监控应用的状态、执行故障排查任务以及管理 Kubernetes 各种资源。

2.1、Dashboard部署

server2清理前面实验的所有容器和配置
在这里插入图片描述
新建kubernetesui项目来管理镜像
在这里插入图片描述
真实主机将dashboard.tar发送给server1
在这里插入图片描述
server1加载镜像并将镜像上传至刚创建的kubernetesui仓库
在这里插入图片描述
server2创建dashboard目录,下载recommended.yaml配置文件
在这里插入图片描述
编辑recommended.yaml配置文件,修改镜像路径
在这里插入图片描述
在这里插入图片描述
应用配置,可以看到创建了新的命名空间和服务等
在这里插入图片描述
新创建的命名空间是kubernetes-dashboard
在这里插入图片描述
查看kubernetes-dashboard命名空间下的容器和服务是否正常运行
psp安全策略一定要禁掉,否则两个控制器起不来
在这里插入图片描述
使用kubectl -n kubernetes-dashboard edit svc kubernetes-dashboard命令修改服务配置,修改ClusterIP为LoadBalancer使外部可以访问
在这里插入图片描述
在这里插入图片描述
修改完成后查看其外部访问地址为172.25.19.11,查看metallb-system命名空间,4个pod正在运行
在这里插入图片描述
真实主机用浏览器访问dashboard服务地址,需要token认证
在这里插入图片描述
在server2中查看kubernetes-dashboard命名空间的secrets,查看token
在这里插入图片描述
查看详细信息,将token复制下来
在这里插入图片描述
在浏览器访问时将token粘贴进去
在这里插入图片描述
认证成功后进入界面,不过有红色报错信息,因为默认dashboard对集群没有操作权限,需要授权
在这里插入图片描述
通过查看dashboard的clusterrole详细信息可以看到只有读权限
在这里插入图片描述
修改rbac.yaml配置文件,在全局角色绑定中将cluster-admin的权限赋予kubernetes-dashboard,使其具有读写权限
在这里插入图片描述
应用配置
在这里插入图片描述
现在重新测试访问,可以看到正常运行
在这里插入图片描述

2.2、Dashboard可视化控制

(这里如果命名空间有资源配额、限制等设定,通过dashboard创建容器可能拉不起来)

在default命名空间下添加新的资源
在这里插入图片描述
按照要求填入参数来创建pod,测试功能是否正常
在这里插入图片描述
可以看到我们创建的pod正常运行并且被监控
在这里插入图片描述
进入server2命令行也可以查看到刚创建的pod,查看其ip并测试访问
在这里插入图片描述
在Deployments菜单中,可以进行编辑
在这里插入图片描述
将镜像的v1版本升级成v2,点击更新
在这里插入图片描述
server2通过命令行再次测试访问,可以看到版本成功修改成了v2
在这里插入图片描述
在Deployments菜单中还可以进行资源缩放
在这里插入图片描述
将副本数由1更改为3
在这里插入图片描述
查看pod信息,可以看到现在有3个pod正在运行
在这里插入图片描述

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

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

idea复制当前行快捷键

仅作为记录,大佬请跳过。 在该行的任何位置,直接用ctrl和c即可 参考 感谢大佬博主文章:传送门...

不抛弃异常值的几种情况

异常数据是数据分布的常态,处于特定分布区域或范围之外的数据 通常会被定义为异常或“噪音”。产生数据“噪音”的原因很多,例如业务 运营操作、数据采集问题、数据同步问题等。对异常数据进行处理前, 需要先辨别出到底哪些是真正的数据异常。 从数据异常的状态看分为两 种…...

23种设计模式

一、什么是设计模式 设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多…...

Nacos 2.0.2正式版发布

一、介绍Nacos Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。 Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用…...

spring框架的各种注解基本意思

//在 spring 配置文件中开启生成代理对象 <!-- 开启 Aspect 生成代理对象--> <aop:aspectj-autoproxy></aop:aspectj-autoproxy>Autowired //根据属性类型进行自动装配 Aspect //生成代理对象 Qualifier //根据名称进行注 Resource //可以根据类型注…...

【Java45】旅游案例:数据回显,注销/退出,首页类别显示,精选

文章目录1.登陆数据回显1.1 前端2.登陆案例_注销/退出3.首页类别显示3.1 web3.2 service3.3 dao4.精选4.1 web4.2 service4.3 dao4.4 前端1.登陆数据回显 如上前端写在header.html中。 1.1 前端 //header.html <!-- 头部 start --><header id"header2"&g…...

axios跨域问题

项目配置 vue-cli3vue2element-ui-2.15.3 在网上找了很多方案&#xff0c;但是都没有生效&#xff0c;最后是前端添加了一段代码&#xff0c;后台添加了一段代码 解决了 添加了headers的配置 const instance axios.create({// baseURL: http://mall.huolida.com/,// baseUR…...

原创-Kafka原理

Kafka原理 2017年09月22日 22:39:45317人阅读 评论(0) 收藏 举报 分类&#xff1a; Kafka&#xff08;1&#xff09; 目录(?)[] Kafka 这段时间研究RabbitMQ、Kafka、RocketMQ消息队列&#xff0c;发现对她们原理的介绍都过于简单&#xff0c;所以整理了众多资料&…...

ef dbcontext

dbcontext class 用来crud数据库&#xff0c;也用来配置实体类&#xff0c;关系映射&#xff0c;缓存&#xff0c;事务&#xff0c;变化追踪等 using System.Data.Entity;public class SchoolContext : DbContext {public SchoolContext(){}// Entities public DbSet&l…...

C语言中的整型提升

C语言中的整型提升 提到整型提升,可能刚学c语言的小伙伴们很头疼这个知识点吧,下面我就我的理解简单分析一下整型提升是怎么回事. 首先还是介绍一下整型提升的概念: ​ c的整型算术运算总是至少以缺省整型类型的精度来进行的. 为了获得这个精度,表达式中的字符和短整型操作数在…...

Nuxt 项目完结总结

1、状态保存&#xff0c;即localstorage。 这里选择了 nuxt-vuex-localstorage&#xff08;^1.3.0&#xff09; 来做store的持久化保存。 modules: [nuxtjs/style-resources,nuxtjs/axios,[nuxt-vuex-localstorage,{localStorage: [localStorage]}] ] 2、登录token保存&…...

浅入浅出实现一个异步求和函数

简化&#xff1a;两数之和 我们先来简单的实现一个异步两数之和函数 function sumT(a, b) {return await new Promise((resolve, reject) > {asyncAdd(a, b, (err, res) > {if(!err) {resolve(res)}reject(err)})}) }// 测试 const test await sumT(1, 2) console.log…...

unity学习笔记(一)

unity基础简介&#xff08;一&#xff09; unity是如何跨平台的&#xff08;附c和c#编译过程&#xff09; 前言 游戏引擎为了兼顾易用性和性能&#xff0c;往往使用一种高效率语言编写核心&#xff0c;使用另一种高级语言作为脚本语言&#xff0c;大部分游戏引擎的底层核心由…...

浮动布局,定位布局,伸缩盒布局

布局 默认文档流 1.元素显示的顺序和代码的顺序是一致的 2.块级元素独占一行空间&#xff0c;默认宽度为父元素的100%&#xff0c;高度由内容或者子元素决定 3.行内元素共享一行空间&#xff0c;默认宽高都由内容决定 浮动布局 float&#xff08;如果一个元…...

Python大数据分析学习基础篇(3)——数据结构

一、函数部分 1、闭包 所谓闭包其实跟回调函数有有相通之处。闭包可以延长作用时间和作用域。 def say(word):def name(name):print(word,name)return name hi say(你好) hi("小明") bye say("再见") bye("小明 ") 运行结果&#xff1a; …...

SQL 之共同使用ip用户检测问题【自关联问题】-HQL面试题48【拼多多面试题】

目录 0 问题描述 1 数据分析 2 小结 0 问题描述 1 数据分析 (1)数据准备 create table log (uid string,ip string,time string )row format delimited fields terminated by \t;insert into log values (a, 124, 2019-08-07 12:0:0), (a, 124, 2019-08-07 13:0:0), (b, 1…...

线程的安全性 - 并发基础篇

简介 当多个线程访问某个类时&#xff0c;这个类始终都能表现出正确的行为&#xff0c;那么就说这个类是线程安全的。 目录 这次分三步走&#xff1a;关于相关知识点&#xff0c;放在文末的脑图里了&#xff0c;大家想看结论的&#xff0c;可直接下拉观看哦。 1.创建一个线…...

栈?队列?Java ArrayDeque常用首尾操作方法整理

对于用Java刷leetcode的同学一定很眼熟ArrayDeque这个数据结构&#xff0c;因为它既可以作为队列也可以作为栈&#xff0c;解题时使用频率很高。补充一嘴&#xff0c;Stack也能作为栈来用&#xff0c;但是作为存在设计缺陷的Vector类的子类&#xff0c;已经不推荐使用了。 Arr…...

开发程序流程

JavaWeb程序--> 将一个请求路径( 网络地址) 变成一条sql语句&#xff0c;发送给数据库进行查询&#xff1b; 会将获取的数据&#xff0c;通过页面的方式&#xff0c;展示给用户进行操作&#xff1b; Javaweb程序如何将一个路径变成一条sql语句&#xff1f;...

从入门到放弃:Markdown中的LaTeX使用教程

LaTeX CSDN不支持显示的语法我已用 标注显示 基本语法 展现形式 在正文中的LaTeX公式用$...$定义行内公式&#xff0c;$$...$$单独居中显示 希腊字母 显示命令显示命令α\alphaβ\betaγ\gammaδ\deltaε\epsilonζ\zetaη\etaθ\thetaι\iotaκ\kappaλ\lambdaμ\muν\…...

IFRS17改造记录

一&#xff0c;为什么要推行IFRS17&#xff08;简称&#xff1a;I17&#xff09; 不同国家&#xff0c;不同的保险产品采用不同的会计计量方法&#xff08;中国保险业现行的会计准则是基于IFRS4准则&#xff09;保险行业的财务报告难于理解对风险没有明确的量化计量部分国家由…...

Java学习推荐书目

一、基础类 1、《Thinkinginjava》&#xff0c;入门第一位是建立正确的概念。 2、《CoreJava》&#xff0c;我没系统读过&#xff0c;这本书更贴近实践&#xff0c;更多API的介绍&#xff0c;同样&#xff0c;更新也更频繁。 二、进阶类 1、《EffectiveJava》&#xff0c;在熟…...

2021-08-23 arm开发板上执行程序报错:-sh: ./uart_app: No such file or directory

问题前提描述: 使用的是正点原子 arm alpha 开发板存在这个文件 其他相关问题: 刚出现这个问题时,我在csdn上搜到的其他造成原因: “doc格式(windows系统)、mac(苹果系统)在上传到xshell(unix系统)后, unix系统是不支持doc&#xff08;mac&#xff09;格式的” 如果是这种情况…...

PTA 基础编程题目集 7-2 然后是几点

目录 题目&#xff1a; 输入格式&#xff1a; 输出格式&#xff1a; 输入样例&#xff1a; 输出样例&#xff1a; 分析&#xff1a; 答案&#xff1a; 题目&#xff1a; 有时候人们用四位数字表示一个时间&#xff0c;比如 1106 表示 11 点零 6 分。现在&#xff0c;你…...

springboot整合阿里云Oss文件服务器实现上传下载

1.登录阿里云官网获取四样东西 阿里云官网&#xff1a;https://oss.console.aliyun.com/ //不明白具体怎么操作的百度endpoint accessKeyId accessKeySecret bucket2.代码实现 2.1 导入依赖 <dependency><groupId>org.springframework.boot</groupId><a…...

Linux 进程和计划任务管理

目录一. 前言二. 进程2.1 什么是进程2.2 程序和进程的关系2.3 进程&#xff0c;线程和协程2.4 进程常用管理命令(1) ps(2) top(3) pgrep(4) pstree(5) prtstat(6) uptime(7) w(8) who(9) jobs(10) fg & bg(11) kill(12) pkill(13) lsof三. 计划任务3.1 一次性计划任务 -- a…...

什么是服务网格(Service Mesh)

本文来说下什么是服务网格 文章目录概述概述...

【力扣1044. 最长重复子串】二分查找+Rabin-Karp 字符串编码、后缀数组(Python3)

题目描述 https://leetcode-cn.com/problems/longest-duplicate-substring/ 思路题解 方法一&#xff1a;二分查找Rabin-Karp 字符串编码 https://leetcode-cn.com/problems/longest-duplicate-substring/solution/zui-chang-zhong-fu-zi-chuan-by-leetcode/ class Solut…...

Nuxt 项目完结总结

1、状态保存&#xff0c;即localstorage。 这里选择了 nuxt-vuex-localstorage&#xff08;^1.3.0&#xff09; 来做store的持久化保存。 modules: [nuxtjs/style-resources,nuxtjs/axios,[nuxt-vuex-localstorage,{localStorage: [localStorage]}] ] 2、登录token保存&…...

Prometheus rate和irate查询实现

rate 该函数用来计算某个指标在最近一个区间时间内的变化率。 比如说&#xff0c;Prometheus每15秒采集一次数据&#xff0c;当某个指标metric1的数据采集如下&#xff1a; timestampvalue15:00:001000015:00:151003015:00:301004515:00:4510090 假设当前时间为15:00:50&…...

processing制作动态山水背景

效果代码 1 float theta, step; 2 int num5, frames 1200; 3 Layer[] layers new Layer[num]; //4 5 void setup() { 6 size(600, 400); 7 step (height-120)/num; 8 for (int i0; i<num; i) { 9 layers[i] new Layer(-20i*step, random(1000), i1); 1…...

Sketch for mac(专业矢量绘图设计软件)

Mac电脑上矢量绘图设计软件哪一款比较好呢&#xff1f;Sketch for mac一款不逊色PS的专业轻量级矢量绘图设计应用&#xff0c;sketch版对于网页设计和移动设计者来说&#xff0c;非常好用&#xff0c;尤其是在移动应用设计方面。 首次运行请开启网络&#xff0c;否则会提示无法…...

可缩放矢量地图_使用MacSVG创建动画,可缩放的矢量图形图像

可缩放矢量地图新巴比伦的摄政王伯沙撒&#xff08;Belshazzar&#xff09;没有注意在他的大餐中神奇出现的墙上的文字 。 但是&#xff0c;如果他在公元前539年拥有一台笔记本电脑和良好的互联网连接&#xff0c;那么他可能通过阅读浏览器上的SVG避免了那些讨厌的波斯人。 动…...

Html的SVG(可伸缩矢量图形 (Scalable Vector Graphics))标签

先来一个五角星感受一下&#xff1a; 多边形的points中有5个点&#xff0c;空格将点隔开&#xff0c;逗号左为x&#xff0c;右为y。 <!DOCTYPE html> <html> <body> <svg xmlns"http://www.w3.org/2000/svg" version"1.1" height&q…...

如何在iOS上创建矢量图形 画云 和 拼图块

https://github.com/ssyyjj88/PaintCode_Syjhttp://www.cocoachina.com/ios/20160330/15826.html原文&#xff1a;How To Create Vector Graphics on iOS 作者&#xff1a;Akiel Khan 译者&#xff1a;CocoaChina--softwin&#xff08;CC论坛ID&#xff09; 介绍 在数字世…...

[iOS]PDF格式的矢量图作为图片资源自动适配

在 iOS App 中&#xff0c;图片一直是展现 App 细节的主要元素&#xff0c;它至关重要。当我们去开发一款 App 时&#xff0c;我们需要不同分辨率的图片以保证在不同分辨率的屏幕下均可得到精致的展示。随着 iPhone 设备迭代新品&#xff0c;越来越多不同尺寸的分辨率需要适配&…...

苹果地图太费内存

最近iPad的应用适配iOS6,发现iOS6带的地图特别费内存。在iOS5下&#xff0c;用google地图时&#xff0c;内存只有6M。在iOS6下&#xff0c;用apple地图时&#xff0c;内存飙升到了60多M。同时测了retain和非retain时的差别&#xff0c;发现内存消耗的差距是一样的。看了地图的效…...

Mac必备的矢量图处理软件:ai2021中文版

备受期待的Adobe Illustrator 2021 for Mac终于来啦&#xff01;&#xff01;&#xff01;这是全球最著名的矢量图形软件&#xff0c;这次的Illustrator2021中文版提升了软件的性 能&#xff0c;缩短了Illustrator 2021的启动时间并加快了文件打开速度&#xff0c;而且还改进和…...

Linux系统下用RedOffice实现矢量绘图

Linux系统下用RedOffice实现矢量绘图Linux系统下用RedOffice实现矢量绘图Linux下的办公组件除了具有与MS Office同样的文字处理、电子表格、演示文稿等功能外&#xff0c;还有许多独特功能。比如&#xff0c;RedOffice还提供了MS Office所没有的独特“矢量绘图”组件&#xff0…...

在 Xcode 6 中使用矢量图( iPhone 6 置配 UI)

OS应用程序是一个图像主导的产品。在开发一个应用程序时&#xff0c;你需要各种尺寸的图标&#xff0c;你需要为每个图像文件制作一个1x尺寸和一个2x尺寸。这样你的应用看上去才足够精美。但缺点是你必须单独生成这些文件。随着iPhone6和iPhone6 Plus的到来&#xff0c;这个问题…...

SVG矢量图笔记总结

一、什么是SVG&#xff1f; SVG 指可伸缩矢量图形 (Scalable Vector Graphics)SVG 用来定义用于网络的基于矢量的图形SVG 使用 XML 格式定义图形SVG 图像在放大或改变尺寸的情况下其图形质量不会有所损失SVG 是万维网联盟的标准SVG 与诸如 DOM 和 XSL 之类的 W3C 标准是一个整…...

Android Vector Drawable | SVG 矢量图

Android Vector Drawable | SVG 矢量图 What is SVG SVG&#xff08;全称&#xff1a;可缩放矢量图形 Scalable Vector Graphics&#xff09;&#xff0c;是用于描述矢量图形的一种图形格式。 SVG是W3C制定的&#xff0c;是一个W3C开放标准&#xff08;该标准是2001年由太阳…...

计算机改变生活英语作文,科技改变生活英语作文

Science and technology change our lifeWith the rapid development of science and technology, our daily life has been changed a lot. New technological inventions begin to play an essential role, for example, the robot can help us clean up and finish much ho...

计算机趣事 英语作文,英语作文100字趣事

我们经历过许许多多的事&#xff0c;对于你来说&#xff0c;有趣的事情是什么?下面&#xff0c;是学习啦小编为你整理的英语作文100字趣事&#xff0c;希望对你有帮助!英语作文100字趣事篇1I think childhood is the happiest period in life, because there are few troubles…...

有关计算机活动英语作文,求有关计算机英语作文?

1初中英语作文&#xff1a;关于北京(About Beijing)Beijing has a history of over 3,000 years with a population of nearly 13 million and a lot of places of interest around it. In recent years, the city of Beijing has been advancing very quickly. You can see mo…...

初二计算机英语作文,初二英语作文带翻译

初二英语作文带翻译发布时间&#xff1a;2019-12-28英语作文是对学生综合能力考核最彻底的一类题型,对单词的掌握、对语法的熟悉程度、谴词造句的能力都会在写作文的水平中体现的一览无余。下面&#xff0c;是第一范文网小编为你整理的初二英语作文带翻译&#xff0c;希望对你有…...

计算机发展变化初三英语作文,初三我的变化英语作文

天在变&#xff0c;地在变&#xff0c;万事万物都在变&#xff0c;我也在变。如何写一篇我得变化的英语作文呢?下面是学习啦小编给大家精心挑选的初三我的变化英语作文&#xff0c;希望大家喜欢!供你参考和阅读!我的变化英语作文篇1How I Change初中的学习生活即将结束了。请你…...

计算机与人类关系的英语作文,计算机的英语作文

在日常生活或是工作学习中&#xff0c;大家对作文都不陌生吧&#xff0c;作文可分为小学作文、中学作文、大学作文(论文)。为了让您在写作文时更加简单方便&#xff0c;以下是小编为大家整理的关于计算机的英语作文(通用8篇)&#xff0c;希望对大家有所帮助。计算机的英语作文1…...

关于计算机的英语作文初中,computer初中英语作文范文

电脑的普及程度越来越高&#xff0c;几乎家家户户都配备了电脑&#xff0c;那么试着用英语来介绍一下你对电脑的看法吧。下面是学习啦小编给大家整理的关于computer的&#xff0c;供大家参阅!computer初中英语作文范文(一)Computer games is a hot topic nowadays. Some people…...

计算机网络辅助英语写作,基于计算机网络的英语写作教学

摘 要&#xff1a;写作能力的培养一直是英语教学的一项重要内容。在大学英语四、六级考试中&#xff0c;写作占有较为重要的份量&#xff0c;但写作一直是大学英语教学的难点。目前常见的几种写作教学模式都存在着不足之处。如何利用现代技术丰富写作教学手段、提高教学效果是教…...