wsl子系统中安装k8s
一、安装wsl
1、在控制面板找到程序和功能,点击启动或关闭windows功能
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rAOMOI00-1639135766841)(images/wsl%E5%AD%90%E7%B3%BB%E7%BB%9F%E4%B8%AD%E5%AE%89%E8%A3%85k8s.assets/image-20211105103005522.png)]
2、找到如下选项,勾选上,点击确定
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fi8OJITT-1639135766843)(images/wsl%E5%AD%90%E7%B3%BB%E7%BB%9F%E4%B8%AD%E5%AE%89%E8%A3%85k8s.assets/image-20211105102843266.png)]
3、打开window上的应用商店,搜索ubuntu,随便选中一款,点击安装即可。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8Q4j4jQw-1639135766844)(images/wsl%E5%AD%90%E7%B3%BB%E7%BB%9F%E4%B8%AD%E5%AE%89%E8%A3%85k8s.assets/image-20211105103304840.png)]
4、打开一个命令行的终端,例如cmd(建议安装window Terminal)输入wsl -d Ubuntu-20.04
进入ubuntu命令行界面,其中Ubuntu-20.04是你安装的ubuntu版本,可以通过wsl -l -v
来查看系统安装了哪些wsl子系统,如下图我安装了三个
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QPpbdxLc-1639135766845)(images/wsl%E5%AD%90%E7%B3%BB%E7%BB%9F%E4%B8%AD%E5%AE%89%E8%A3%85k8s.assets/image-20211105103744239.png)]
二、几个实用wsl命令
1、查看系统安装了哪些wsl子系统
wsl -l -v
2、运行并进入其中某个子系统
wsl -d <分发版>
3、将某个子系统设置为默认进入版本
wsl -s <分发版>
4、 立即终止所有正在运行的分发和 WSL 2 轻型工具虚拟机
wsl --shutdown
5、终止止指定的分发
wsl -t
6、注销分发
wsl --unregister <分发版>
7、查看帮助
wsl -h
三、为ubuntu添加Systemd
(该节步骤不是必须的)
因为wsl子系统ubuntu程序启动默认支持的init风格不支持Systemd,所以可以通过以下方式安装Systemd
1、首先安装 Systemd 相关的依赖:
apt install -yqq fontconfig daemonize
2、然后创建一个如下所示的脚本文件:
vim /etc/profile.d/00-wsl2-systemd.sh
SYSTEMD_PID=$(ps -ef | grep '/lib/systemd/systemd --system-unit=basic.target$' | grep -v unshare | awk '{print $2}')if [ -z "$SYSTEMD_PID" ]; thensudo /usr/bin/daemonize /usr/bin/unshare --fork --pid --mount-proc /lib/systemd/systemd --system-unit=basic.targetSYSTEMD_PID=$(ps -ef | grep '/lib/systemd/systemd --system-unit=basic.target$' | grep -v unshare | awk '{print $2}')
fiif [ -n "$SYSTEMD_PID" ] && [ "$SYSTEMD_PID" != "1" ]; thenexec sudo /usr/bin/nsenter -t $SYSTEMD_PID -a su - $LOGNAME
fi
四、wsl子系统中安装桌面环境
– 这一节不是必须的
1、安装桌面环境
ubuntu大概有十几个桌面环境可选择,例如以下几类,这里我选择了xfce,因为比较轻便
- Gnome Shell
apt-get install gnome-shell
- KDE
apt-get install --no-install-recommends kubuntu-desktop
如果要在KDE中使用所有功能,请安装kde-full
软件包。
apt-get install kde-full
- Xfce
apt-get install xfce4
- LXDE
apt-get install lxde
- Cinnamon
add-apt-repository ppa:gwendal-lebihan-dev/cinnamon-stableapt-get update && sudo apt-get install cinnamon
- Mate
add-apt-repository "deb http://packages.mate-desktop.org/repo/ubuntu precise main"
apt-get update
apt-get install mate-archive-keyring
apt-get updateapt-get install mate-desktop-environment
2、安装桌面连接服务xrdp
apt install xfce4-session
apt install xrdp
那个用户想登入桌面环境就在该用户的家目录下向xsession中写入xfce4-session
echo "xfce4-session" >> ~/.xsession
echo "exec /bin/sh /etc/X11/Xsession" >>/etc/X11/Xsession
3、设置使用3390端口
在/etc/xrdp/xrdp.ini
配置文件中将port改为3390,因为wsl系统和window共用端口的,window上的远程端口是3389,所以为了防止冲突将wsl中的xrdp的端口改为3390.
sed -i 's/port=3389/port=3390/g' /etc/xrdp/xrdp.ini
4、设置中文环境
安装中文语言包
apt install -y language-pack-zh-han*
导入中文环境
export LC_ALL=zh_CN.UTF-8
输入locale 把显示出来的用鼠标选中ctrl+c保存一下
LANG=C.UTF-8 LANGUAGE= LC_CTYPE="C.UTF-8" LC_NUMERIC="C.UTF-8" LC_TIME="C.UTF-8" LC_COLLATE="C.UTF-8" LC_MONETARY="C.UTF-8" LC_MESSAGES="C.UTF-8" LC_PAPER="C.UTF-8" LC_NAME="C.UTF-8" LC_ADDRESS="C.UTF-8" LC_TELEPHONE="C.UTF-8" LC_MEASUREMENT="C.UTF-8" LC_IDENTIFICATION="C.UTF-8" LC_ALL=
输入 locale -a 已经查看支持字体
C C.UTF-8 POSIX en_US.utf8 zh_CN.utf8 zh_HK.utf8 zh_SG.utf8 zh_TW.utf8
修改local,
vim /etc/default/locale
,把上一步保存的内容中的“zh_CN.UTF-8”修改为通过 locale -a 所支持的字体zh_CN.utf8LANG=C.UTF-8 LANGUAGE="zh_CN:zh" LC_CTYPE="zh_CN.utf8" LC_NUMERIC="zh_CN.utf8" LC_TIME="zh_CN.utf8" LC_COLLATE="zh_CN.utf8" LC_MONETARY="zh_CN.utf8" LC_MESSAGES="zh_CN.utf8" LC_PAPER="zh_CN.utf8" LC_NAME="zh_CN.utf8" LC_ADDRESS="zh_CN.utf8" LC_TELEPHONE="zh_CN.utf8" LC_MEASUREMENT="zh_CN.utf8" LC_IDENTIFICATION="zh_CN.utf8" LC_ALL=zh_CN.utf8
5、安装输入法框架
Ubuntu输入法框架主要有IBus、fcitx、XIM几种,这里介绍fictx
安装fcitx
apt install fcitx
安装谷歌拼音
//拼音:fcitx-pinyin、fcitx-sunpinyin、fcitx-googlepinyin、fcitx-sogoupinyin
//五笔:fcitx-table、fcitx-table-wubi、fcitx-table-wbpy(五笔拼音混合)apt install fcitx-googlepinyin
6、设置输入法切换方式
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-76BAfHsM-1639135766848)(images/wsl%E5%AD%90%E7%B3%BB%E7%BB%9F%E4%B8%AD%E5%AE%89%E8%A3%85k8s.assets/image-20211105121823539.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yZT9Gyyc-1639135766849)(images/wsl%E5%AD%90%E7%B3%BB%E7%BB%9F%E4%B8%AD%E5%AE%89%E8%A3%85k8s.assets/image-20211105121859412.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aEBXjtOI-1639135766850)(images/wsl%E5%AD%90%E7%B3%BB%E7%BB%9F%E4%B8%AD%E5%AE%89%E8%A3%85k8s.assets/image-20211105121924831.png)]
7、重启wsl服务
wsl -t Ubuntu-20.04
8、登入桌面
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jaP70XaN-1639135766851)(images/wsl%E5%AD%90%E7%B3%BB%E7%BB%9F%E4%B8%AD%E5%AE%89%E8%A3%85k8s.assets/image-20211105112849281.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-unEgav1T-1639135766852)(images/wsl%E5%AD%90%E7%B3%BB%E7%BB%9F%E4%B8%AD%E5%AE%89%E8%A3%85k8s.assets/image-20211105112953555.png)]
五、wsl子系统中安装docker
1、修改ubuntu源,并添加docker的apt源
cp /etc/apt/sources.list /etc/apt/sources.list_backup
将以下内容写到/etc/apt/sources.list文件中
deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiversedeb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiversedeb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiversedeb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiversedeb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
apt update
2、apt安装docker
apt install docker-ce
3、修改docker源
在/etc/docker/daemon.json
文件中修改docker源
六、部署K8S
利用kind+docker方式安装k8s集群
1、介绍
k8s集群搭建有多种方式,例如:
1、在多台主机上直接安装k8s相关服务,构成一个k8s集群
2、利用kind+docker构建一个k8s集群
3、利用docker搭建k8s
这里将介绍第二种方式,利用kind+docker来搭建一个多节点的k8s集群
kind是一个利用docker搭建k8s集群的服务,即利用docker来构建k8s的几个关键节点,例如master节点,worker节点,一个节点就是一个容器,相当于k8s的一个主机节点,kind对于每个节点的内部是利用kubeadm来启动每个服务的,即每个节点容器的内部使用kubeadm来启动k8s相关的服务。
2、下载kind
wget https://github.com/kubernetes-sigs/kind/releases/download/0.2.1/kind-linux-amd64
mv kind-linux-amd64 kind
chmod +x kind
mv kind /usr/local/bin
查看kind帮助
root@DESKTOP-5QQL3P7:~# kind
kind creates and manages local Kubernetes clusters using Docker container 'nodes'Usage:kind [command]Available Commands:build Build one of [node-image]completion Output shell completion code for the specified shell (bash, zsh or fish)create Creates one of [cluster]delete Deletes one of [cluster]export Exports one of [kubeconfig, logs]get Gets one of [clusters, nodes, kubeconfig]help Help about any commandload Loads images into nodesversion Prints the kind CLI versionFlags:-h, --help help for kind--loglevel string DEPRECATED: see -v instead-q, --quiet silence all stderr output-v, --verbosity int32 info log verbosity--version version for kindUse "kind [command] --help" for more information about a command.
3、安装单节点k8s
root@DESKTOP-5QQL3P7:~# kind create cluster
Creating cluster "kind" ...✓ Ensuring node image (kindest/node:v1.13.4) ✓ Preparing nodes ✓ Creating kubeadm config ✓ Starting control-plane ️
Cluster creation complete. You can now use the cluster with:export KUBECONFIG="$(kind get kubeconfig-path --name="kind")"
kubectl cluster-info
4、安装多节点的k8s
编写多节点的配置文件kind-3nodes.yaml
kind: Cluster apiVersion: kind.x-k8s.io/v1alpha4 containerdConfigPatches:- |-[plugins."io.containerd.grpc.v1.cri".registry.mirrors."docker.io"]endpoint = ["https://aa25jngun.mirror.aliyuncs.com"] nodes:- role: control-planekubeadmConfigPatches:- |kind: InitConfigurationnodeRegistration:kubeletExtraArgs:node-labels: "ingress-ready=true"extraPortMappings:- containerPort: 30000hostPort: 8000protocol: TCP- containerPort: 30001hostPort: 8080protocol: TCP- containerPort: 30002hostPort: 4443protocol: TCP- role: worker- role: worker
安装
kind create cluster --name 3 --config ./kind-3nodes.yaml
使用minikube部署k8s
1、下载minikube
curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 \&& chmod +x minikube
install minikube /usr/local/bin/
2、使用minikube安装K8S
minikube start --vm-driver=none --image-repository=registry.cn-hangzhou.aliyuncs.com/google_containers
vm-driver=none的话是使用本机的docker作为k8s各组件的载体,即K8S各组件使用本地docker安装,当然也可以选择virtualbox,kvm2等
image-repository指定镜像源
3、安装kubectl
cp ~/.minikube/cache/linux/v1.16.7/kubectl /usr/local/sbin
注
如果使用wsl的ubuntu安装时可能会提示要安装Systemd就按照上面指导安装就可以了
在k8s上部署dashboard
有两种安装方式:
1、使用minikube直接安装
minikube dashboard
2、自己写yaml文件,然后使用kubectl部署
- dashboard.yaml
apiVersion: v1
kind: Namespace
metadata:name: kubernetes-dashboard
---
apiVersion: v1
kind: ServiceAccount
metadata:labels:k8s-app: kubernetes-dashboardname: kubernetes-dashboardnamespace: kubernetes-dashboard
---
apiVersion: v1
kind: Service
metadata:labels:k8s-app: kubernetes-dashboardname: kubernetes-dashboardnamespace: kubernetes-dashboard
spec:type: NodePortports:- port: 8443targetPort: 8443nodePort: 30005selector:k8s-app: kubernetes-dashboard
---
apiVersion: v1
kind: Secret
metadata:labels:k8s-app: kubernetes-dashboardname: kubernetes-dashboard-certsnamespace: kubernetes-dashboard
type: Opaque
---
apiVersion: v1
kind: Secret
metadata:labels:k8s-app: kubernetes-dashboardname: kubernetes-dashboard-csrfnamespace: kubernetes-dashboard
type: Opaque
data:csrf: ""
---
apiVersion: v1
kind: Secret
metadata:labels:k8s-app: kubernetes-dashboardname: kubernetes-dashboard-key-holdernamespace: kubernetes-dashboard
type: Opaque
---
apiVersion: v1
kind: ConfigMap
metadata:labels:k8s-app: kubernetes-dashboardname: kubernetes-dashboard-settingsnamespace: kubernetes-dashboard
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:labels:k8s-app: kubernetes-dashboardname: kubernetes-dashboardnamespace: kubernetes-dashboard
rules:# Allow Dashboard to get, update and delete Dashboard exclusive secrets.- apiGroups: [""]resources: ["secrets"]resourceNames: ["kubernetes-dashboard-key-holder", "kubernetes-dashboard-certs", "kubernetes-dashboard-csrf"]verbs: ["get", "update", "delete"]# Allow Dashboard to get and update 'kubernetes-dashboard-settings' config map.- apiGroups: [""]resources: ["configmaps"]resourceNames: ["kubernetes-dashboard-settings"]verbs: ["get", "update"]# Allow Dashboard to get metrics.- apiGroups: [""]resources: ["services"]resourceNames: ["heapster", "dashboard-metrics-scraper"]verbs: ["proxy"]- apiGroups: [""]resources: ["services/proxy"]resourceNames: ["heapster", "http:heapster:", "https:heapster:", "dashboard-metrics-scraper", "http:dashboard-metrics-scraper"]verbs: ["get"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:labels:k8s-app: kubernetes-dashboardname: kubernetes-dashboard
rules:# Allow Metrics Scraper to get metrics from the Metrics server- apiGroups: ["metrics.k8s.io"]resources: ["pods", "nodes"]verbs: ["get", "list", "watch"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:labels:k8s-app: kubernetes-dashboardname: kubernetes-dashboardnamespace: kubernetes-dashboard
roleRef:apiGroup: rbac.authorization.k8s.iokind: Rolename: kubernetes-dashboard
subjects:- kind: ServiceAccountname: kubernetes-dashboardnamespace: kubernetes-dashboard
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:name: kubernetes-dashboard
roleRef:apiGroup: rbac.authorization.k8s.iokind: ClusterRolename: kubernetes-dashboard
subjects:- kind: ServiceAccountname: kubernetes-dashboardnamespace: kubernetes-dashboard
---
apiVersion: apps/v1
kind: Deployment
metadata:labels:k8s-app: kubernetes-dashboardname: kubernetes-dashboardnamespace: kubernetes-dashboard
spec:replicas: 1revisionHistoryLimit: 10selector:matchLabels:k8s-app: kubernetes-dashboardtemplate:metadata:labels:k8s-app: kubernetes-dashboardspec:containers:- name: kubernetes-dashboardimage: kubernetesui/dashboard:v2.0.4imagePullPolicy: Alwaysports:- containerPort: 8443protocol: TCPargs:- --auto-generate-certificates- --namespace=kubernetes-dashboard# Uncomment the following line to manually specify Kubernetes API server Host# If not specified, Dashboard will attempt to auto discover the API server and connect# to it. Uncomment only if the default does not work.# - --apiserver-host=http://my-address:portvolumeMounts:- name: kubernetes-dashboard-certsmountPath: /certs# Create on-disk volume to store exec logs- mountPath: /tmpname: tmp-volumelivenessProbe:httpGet:scheme: HTTPSpath: /port: 8443initialDelaySeconds: 30timeoutSeconds: 30securityContext:allowPrivilegeEscalation: falsereadOnlyRootFilesystem: truerunAsUser: 1001runAsGroup: 2001volumes:- name: kubernetes-dashboard-certssecret:secretName: kubernetes-dashboard-certs- name: tmp-volumeemptyDir: {}serviceAccountName: kubernetes-dashboard# nodeSelector:# "kubernetes.io/os": linux# # Comment the following tolerations if Dashboard must not be deployed on mastertolerations:- key: node-role.kubernetes.io/mastereffect: NoSchedule
---
apiVersion: v1
kind: Service
metadata:labels:k8s-app: dashboard-metrics-scrapername: dashboard-metrics-scrapernamespace: kubernetes-dashboard
spec:ports:- port: 8000targetPort: 8000selector:k8s-app: dashboard-metrics-scraper
---
apiVersion: apps/v1
kind: Deployment
metadata:labels:k8s-app: dashboard-metrics-scrapername: dashboard-metrics-scrapernamespace: kubernetes-dashboard
spec:replicas: 1revisionHistoryLimit: 10selector:matchLabels:k8s-app: dashboard-metrics-scrapertemplate:metadata:labels:k8s-app: dashboard-metrics-scraperannotations:seccomp.security.alpha.kubernetes.io/pod: 'runtime/default'spec:containers:- name: dashboard-metrics-scraperimage: kubernetesui/metrics-scraper:v1.0.4ports:- containerPort: 8000protocol: TCPlivenessProbe:httpGet:scheme: HTTPpath: /port: 8000initialDelaySeconds: 30timeoutSeconds: 30volumeMounts:- mountPath: /tmpname: tmp-volumesecurityContext:allowPrivilegeEscalation: falsereadOnlyRootFilesystem: truerunAsUser: 1001runAsGroup: 2001serviceAccountName: kubernetes-dashboardnodeSelector:"kubernetes.io/os": linux# Comment the following tolerations if Dashboard must not be deployed on mastertolerations:- key: node-role.kubernetes.io/mastereffect: NoSchedulevolumes:- name: tmp-volumeemptyDir: {}
- 创建个管理用户用于前端登入account.yaml
apiVersion: v1
kind: ServiceAccount
metadata:name: admin-usernamespace: kubernetes-dashboard
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:name: admin-user
roleRef:apiGroup: rbac.authorization.k8s.iokind: ClusterRolename: cluster-admin
subjects:
- kind: ServiceAccountname: admin-usernamespace: kubernetes-dashboard
部署
kubectl apply -f dashboard.yaml
kubectl apply -f account.yaml
这样就部署好了,dashboard的service使用nodeport方式部署,所以在浏览器访问https://ip:nodeport,在本文件中nodeport是选择了30005,所以本地可访问https://127.0.0.1:30005
使用以下命令获取token
kubectl describe -n kubernetes-dashboard secret $( kubectl get secret -n kubernetes-dashboard |grep admin-user |awk '{print $1}') |grep token:
wsl子系统中安装k8s相关推荐
- Windows10系统的Linux子系统中安装MySQL数据库心得
后端开发童鞋们, 自己开发机用的是Windows系统电脑(台式机或笔记本), 而开发的程序和使用的数据库等要运行在Linux服务器上, 这种情况有木有? 提前声明: 本文并不讨论操作系统的比较, 以及 ...
- 【Asp.net Core】在 Linux 子系统中安装 nginx 并配置反向代理
上一篇鸟文中,老周已经介绍过在 Ubuntu 子系统中安装 dotnet-sdk 的方法,本文老周给大伙伴们说说安装 nginx 服务,并配置反向代理.同样,老周假设你从来没有用过 Linux,所以老 ...
- wsl 2 中安装docker
1. 参考 [安利] WSL Linux 子系统,真香!附完整实操_猴哥一一的博客-CSDN博客_安装wslWSL 初体验WSL Linux 子系统体验原生 Docker,真香!Windows 的 l ...
- 如何在windows子系统中安装Quantum Espresso7.0【linux小白一只,艰辛摸索,留此纪录,如有漏洞,还请见谅】
@[TOC]如何安装QE7.0 在windows11中安装ubuntu子系统,并安装QE 1.通过wsl2安装ubuntu 1.1 首先 控制面板-打开或关闭windows功能-点开 Hyper-V, ...
- centos安装mysql wsl_在 Windows Linux 子系统中安装 CentOS
微软在 Windows 10 中引入了 Windows Subsystem Linux(WSL) 功能, 这使得我们可以在 Windows 中就能使用 Linux 的各种命令. 目前 Windows ...
- Windows10 WSL Ubuntu中安装ssh server
在WSL Ubuntu系统中安装ssh server 当对Linux实现文件操作时,使用WinScp更为方便.因此需要使用ssh远程登陆 安装ssh server sudo apt-get insta ...
- wsl ubuntu中安装fzf
在使用wsl ubuntu18.04 https://www.jianshu.com/p/aeebaee1dd2b 按照这篇文章进行安装时出现的一些问题 fzf安装后,启动fzf 出现错误,comma ...
- Blazor+Dapr+K8s微服务之基于WSL安装K8s集群并部署微服务
前面文章已经演示过,将我们的示例微服务程序DaprTest1部署到k8s上并运行.当时用的k8s是Docker for desktop 自带的k8s,只要在Docker for desktop中启用 ...
- Win10的Linux子系统Ubuntu安装图形界面
Win10的Linux子系统Ubuntu安装图形界面 陈拓 2021/07/25-2021/07/26 1. 概述 Win10的linux子系统Windows Subsystem for Linux( ...
最新文章
- strstr php文档,php字符串函数学习之strstr()
- 征战蓝桥 —— 题解目录
- jpa获取数据库当前时间_SpringDataJPA存储数据时通过注解自动设置创建时间和修改时间...
- 昆仑万维14亿收购音频社交平台Star Group 60%股权 周亚辉获益超10亿元
- IIS Express 启用目录浏览
- 微软:推开窗户,我看到了云
- 必须要掌握的七种谈话技巧
- 基于ssm的航空订票系统
- python爬虫毕业论文大纲参考模板_毕业论文大纲参考模板
- 猫途鹰(tripadvisor.cn/)美国地区的酒店、景点、餐厅数据(82万条)
- Linux服务器遇到攻击怎么办?用这些方法封禁IP
- <Zhuuu_ZZ>让我们来康康脚本流程控制
- 重装mac系统 未能与恢复服务器取得联系,进入 macOS 系统恢复模式 – 重新安装 macOS 系统...
- 计算机社团感恩节免费维修周策划书,【关于感恩节的活动策划】大学感恩节活动策划案_早教感恩节活动策划方案_(2)_亲亲宝贝网...
- hexeditor作用_Hex编辑器Free Hex Editor Neo
- 微软面试题之数字谜题 (转)
- 图像处理相关算法之饱和度调整
- 双系统安装 win7
- PRL学习(priority roaming list 优先漫游列表)
- 超低噪声放大器DN-AP06