文章目录

  • 第一题 权限控制 RBAC
  • 第二题 查看 pod 的 CPU
  • 第三题 配置网络策略 NetworkPolicy
  • 第四题 暴露服务 Service
  • 第五题 创建 Ingress
  • 第六题 扩容 deployment 副本数
  • 第七题 调度 pod 到指定节点
  • 第八题 查看可用node数量
  • 第九题 创建多容器的pod
  • 第十题 创建 PV
  • 第十一题 创建 PVC
  • 第十二题 查看 pod 日志
  • 第十三题 使用 sidecar 代理容器日志
  • 第十四题 升级集群
  • 第十五题 备份还原 etcd
  • 第十六题 排查集群中故障节点
  • 第十七题 节点维护

相关链接:
Containerd【轻量级容器管理工具】:https://blog.csdn.net/qq_41822345/article/details/126677121
从0开始安装k8s1.25:https://blog.csdn.net/qq_41822345/article/details/126679925
CKA考题[k8s1.21]:https://blog.csdn.net/qq_41822345/article/details/127038941

【摘要】 (CKA)认证Kubernetes管理员,由Linux基金会和云原生计算基金会(CNCF)推出,是关于kubernetes技术的官方认证。当前考题考试环境kubernetes1.24。考试共计17道题,线上考试,2小时之内完成。

注意,官方的 CKA 考试环境是有多套的,考试时,不一定抽到哪套。不同考试环境里面部分题目的内容有很小的变化,但题干都是一样的。另外,每道题都是有步骤分的,不要全空不写。

《题库》跟《真题》的题干是一样的,区别在于里面的一些 pod、deployment、namespace、ServiceAccount 等参数可能不同而已,因为在真实考试中,也是会时常变换里面的这些变量参数的。注意理解这些变量的含义,而不要死记硬背答案。

考试时,可以打开考试环境 Ubuntu 20.04 桌面上的火狐浏览器,访问 K8S 官网 https://kubernetes.io/

kubectl 备忘单:https://kubernetes.io/zh-cn/docs/reference/kubectl/cheatsheet/

第一题 权限控制 RBAC

  • 考题

设置配置环境:

[candidate@node-1] $ kubectl config use-context k8s

Context

为部署流水线创建一个新的 ClusterRole 并将其绑定到范围为特定的 namespace 的特定 ServiceAccount。

Task

创建一个名为 deployment-clusterrole 且仅允许创建以下资源类型的新 ClusterRole: Deployment 、StatefulSet 、DaemonSet。

在现有的 namespace app-team1 中创建一个名为 cicd-token 的新 ServiceAccount。

限于 namespace app-team1 中,将新的 ClusterRole deployment-clusterrole 绑定到新的 ServiceAccount cicd-token。

  • 考点

k8s RBAC 授权模型。

kubectl create clusterrole -h

kubectl create rolebinding -h

  • 解答

切换到kubectl config use-context k8s。

kubectl create clusterrole deployment-clusterrole--verb=create--resource=Deployment,StatefulSet,DaemonSetkubectl -n app-team1 create serviceaccourt cicd-tokenkubectl create rolebinding cicd-token --clusterrole=deployment-clusterrole --serviceaccount=app-team1:cicd-token --namespace=app-team1
  • 验证
kubectl describe -n app-team1 rolebindings cicd-bind

第二题 查看 pod 的 CPU

  • 考题

设置配置环境:

[candidate@node-1] $ kubectl config use-context k8s

Task

通过 pod label name=cpu-loader,找到运行时占用大量 CPU 的 pod,

并将占用 CPU 最高的 pod 名称写入文件 /opt/KUTR000401/KUTR00401.txt(已存在)。

  • 考点

kubectl top pod -h

  • 解答

切换到kubectl config use-context ek8s。

kubectl top pod -l name=cpu-loader --sort-by=cpu -A
echo "查出来的 Pod Name" > /opt/KUTR000401/KUTR00401.txt
  • 验证
cat /opt/KUTR000401/KUTR00401.txt

第三题 配置网络策略 NetworkPolicy

  • 考题

设置配置环境:

[candidate@node-1] $ kubectl config use-context hk8s

Task

在现有的 namespace my-app 中创建一个名为 allow-port-from-namespace 的新 NetworkPolicy。

确保新的 NetworkPolicy 允许 namespace echo 中的 Pods 连接到 namespace my-app 中的 Pods 的 9000 端口。

进一步确保新的 NetworkPolicy:

不允许对没有在监听 端口 9000 的 Pods 的访问。

不允许非来自 namespace echo 中的 Pods 的访问。

  • 考点

NetworkPolicy 的创建:

https://kubernetes.io/zh-cn/docs/concepts/services-networking/network-policies/

  • 解答

切换到kubectl config use-context mk8s

vim networkpolicy.yaml
cat networkpolicy.yaml
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:name: allow-port-from-namespacenamespace: my-app #被访问者的命名空间
spec:podSelector: #这两行必须要写,或者也可以写成一行为 podSelector: {}matchLabels: {} # 注意 matchLabels:与{}之间有一个空格policyTypes:- Ingress #策略影响入栈流量ingress:- from: #允许流量的来源- namespaceSelector:matchLabels:project: echo #访问者的命名空间的标签 label#- podSelector: {} #注意,这个不写。如果 ingress 里也写了- podSelector: {},则会导致 my-app 中的 pod 可以访问 my-app 中 pod 的 9000 了,这样不满足题目要求不允许非来自 namespace echo 中的 Pods 的访问。ports:- protocol: TCPport: 9000 #被访问者公开的端口
  • 验证
# 创建并验证
kubectl apply -f networkpolicy.yaml
kubectl describe networkpolicy -n my-app

第四题 暴露服务 Service

  • 考题

设置配置环境:

[candidate@node-1] $ kubectl config use-context k8s

Task

请重新配置现有的 deployment front-end 以及添加名为 http 的端口规范来公开现有容器 nginx 的端口 80/tcp。

创建一个名为 front-end-svc 的新 service,以公开容器端口 http。

配置此 service,以通过各个 Pod 所在的节点上的 NodePort 来公开他们。

  • 考点

https://kubernetes.io/zh-cn/docs/concepts/workloads/controllers/deployment/

  • 解答

切换到kubectl config use-context mk8s

vim deploy-nginx.yaml
cat deploy-nginx.yaml
apiVersion: apps/v1
kind: Deployment
metadata:name: front-end
spec:selector:matchLabels:app: nginxreplicas: 3 # 告知 Deployment 运行 3 个与该模板匹配的 Podtemplate:metadata:labels:app: nginxspec:containers:- name: nginximage: nginx:1.14.2ports:- containerPort: 80name: http  # 端口名为 httpprotocol: TCP

创建 deployment 并暴露端口

kubectl expose deployment front-end --type=NodePort --port=80 --target-port=80 --name=front-end-svc
  • 验证
[root@node-1 mycka]# kubectl get svc
NAME            TYPE        CLUSTER-IP    EXTERNAL-IP   PORT(S)        AGE
front-end-svc   NodePort    10.1.16.135   <none>        80:31365/TCP   72m
[root@node-1 mycka]# curl node-1:31365
Hello world!

第五题 创建 Ingress

  • 考题

设置配置环境:

[candidate@node-1] $ kubectl config use-context k8s

Task

如下创建一个新的 nginx Ingress 资源:

名称: ping

Namespace: ing-internal

使用服务端口 5678 在路径 /hello 上公开服务 hello

可以使用以下命令检查服务 hello 的可用性,该命令应返回 hello:

curl -kL <INTERNAL_IP>/hello

  • 考点

Ingress 的创建:https://kubernetes.io/zh-cn/docs/concepts/services-networking/ingress/

  • 解答

切换到kubectl config use-context hk8s。

vim ingress-min.yaml
cat ingress-min.yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:name: pingnamespace: ing-internal#annotations:#kubernetes.io/ingress.class: "nginx"#nginx.ingress.kubernetes.io/rewrite-target: /
spec:rules:- http:paths:- path: /hellopathType: Prefixbackend:service:name: helloport:number: 5678

创建ingress:

kubectl apply -f ingress-min.yaml
  • 验证
kubectl get ingress -n ing-internal

第六题 扩容 deployment 副本数

  • 考题

设置配置环境:

[candidate@node-1] $ kubectl config use-context k8s

Task

将 deployment presentation 扩展至 4 个 pods

  • 考点

kubectl scale deployment -h

  • 解答

切换到kubectl config use-context k8s。

kubectl scale deployment presentation --replicas=4
  • 验证
kubectl get deployments presentation -o wide
kubectl get pod -l app=presentation

第七题 调度 pod 到指定节点

  • 考题

设置配置环境:

[candidate@node-1] $ kubectl config use-context k8s

Task

按如下要求调度一个 pod:

名称:nginx-kusc00401

Image:nginx

Node selector:disk=ssd

  • 考点

nodeSelect 属性的使用。

  • 解答

切换到kubectl config use-context k8s。

Vim node-selector.yaml
cat node-selector.yaml
apiVersion: v1
kind: Pod
metadata:name: nginx-kusc00401
spec:containers:- name: nginximage: nginximagePullPolicy: IfNotPresent #这句的意思是,如果此 image 已经有了,则不重新下载。考试时写不写这个都是可以的。nodeSelector:disk: ssd
  • 验证
kubectl apply -f node-selector.yaml
kubectl get pod nginx-kusc00401 -owide

第八题 查看可用node数量

  • 考题

设置配置环境:

[candidate@node-1] $ kubectl config use-context k8s

Task

检查有多少 nodes 已准备就绪(不包括被打上 Taint:NoSchedule 的节点),

并将数量写入 /opt/KUSC00402/kusc00402.txt

  • 考点

kubectl -h

  • 解答

切换到kubectl config use-context k8s。

# grep 的-i 是忽略大小写,grep -v 是排除在外,grep -c 是统计查出来的条数。
kubectl describe nodes | grep -i Taints | grep -vc NoSchedule
echo "查出来的数字" > /opt/KUSC00402/kusc00402.txt
  • 验证
cat opt/KUSC00402/kusc00402.txt

第九题 创建多容器的pod

  • 考题

设置配置环境:

[candidate@node-1] $ kubectl config use-context k8s

Task

创建一个名字为kucc8的pod,里面包含2个容器redis和consul。

  • 考点

pod 概念

  • 解答

切换到kubectl config use-context k8s。

vim pod-two-containers.yaml
cat pod-two-containers.yaml
apiVersion: v1
kind: Pod
metadata:name: kucc8
spec:containers:- name: nginximage: nginximagePullPolicy: IfNotPresent- name: consulimage: consulimagePullPolicy: IfNotPresent
  • 验证
kubectl apply -f pod-two-containers.yaml
pod/kucc8 created
kubectl get pod

第十题 创建 PV

  • 考题

设置配置环境:

[candidate@node-1] $ kubectl config use-context hk8s

Task

创建名为 app-config 的 persistent volume,容量为 1Gi,访问模式为 ReadWriteMany。

volume 类型为 hostPath,位于 /srv/app-config

  • 考点

PV创建:

https://kubernetes.io/zh-cn/docs/tasks/configure-pod-container/configure-persistent-volume-storage/

  • 解答

切换到kubectl config use-context k8s。

vim pv.yaml
cat pv.yaml
apiVersion: v1
kind: PersistentVolume
metadata:name: app-config#labels: #不需要写#type: local
spec:capacity:storage: 1GiaccessModes:- ReadWriteMany # 注意,考试时的访问模式可能有 ReadWriteMany 和 ReadOnlyMany 和 ReadWriteOnce,根据题目要求写。hostPath:path: "/srv/app-config"
  • 验证
kubectl apply -f pv.yaml
persistentvolume/app-config created
kubectl get pv

第十一题 创建 PVC

  • 考题

设置配置环境:

[candidate@node-1] $ kubectl config use-context ok8s

Task

创建一个新的 PersistentVolumeClaim:

名称: pv-volume

Class: csi-hostpath-sc

容量: 10Mi

创建一个新的 Pod,来将 PersistentVolumeClaim 作为 volume 进行挂载:

名称:web-server

Image:nginx:1.16

挂载路径:/usr/share/nginx/html

配置新的 Pod,以对 volume 具有 ReadWriteOnce 权限。

最后,使用 kubectl edit 或 kubectl patch 将 PersistentVolumeClaim 的容量扩展为 70Mi,并记录此更改。

  • 考点

PVC与pod挂载:

https://kubernetes.io/zh-cn/docs/tasks/configure-pod-container/configure-persistent-volume-storage/

  • 解答

切换到kubectl config use-context k8s。

Vim pvc.yaml
cat pvc.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:name: pv-volume #pvc 名字
spec:storageClassName: csi-hostpath-scaccessModes:- ReadWriteOnce # 注意,考试时访问模式可能有 ReadWriteMany 和 ReadOnlyMany 和 ReadWriteOnce,根据题目要求写。resources:requests:storage: 10Mi

创建pvc

kubectl apply -f pvc.yaml

创建pod,绑定pvc

vim pvc-pod.yaml
cat pvc-pod.yaml
apiVersion: v1
kind: Pod
metadata:name: web-server
spec:volumes:- name: task-pv-storagepersistentVolumeClaim:claimName: pv-volume #这个要使用上面创建的 pvc 名字containers:- name: nginximage: nginx:1.16volumeMounts:- mountPath: "/usr/share/nginx/html"name: task-pv-storage #要与volumes的name一样。
  • 验证
kubectl apply -f pvc-pod.yaml
kubectl get pvc
kubectl get po

第十二题 查看 pod 日志

  • 考题

设置配置环境:

[candidate@node-1] $ kubectl config use-context k8s

Task

监控 pod foo 的日志并:

提取与错误 RLIMIT_NOFILE 相对应的日志行

将这些日志行写入 /opt/KUTR00101/foo

  • 考点

pod日志输出

  • 解答

切换到kubectl config use-context hk8s。

kubectl logs foo | grep "RLIMIT_NOFILE" > /opt/KUTR00101/foo
  • 验证
cat /opt/KUTR00101/foo

第十三题 使用 sidecar 代理容器日志

  • 考题

设置配置环境:

[candidate@node-1] $ kubectl config use-context k8s

Context

将一个现有的 Pod 集成到 Kubernetes 的内置日志记录体系结构中(例如 kubectl logs)。

添加 streaming sidecar 容器是实现此要求的一种好方法。

Task

使用 busybox Image 来将名为 sidecar 的 sidecar 容器添加到现有的 Pod 11-factor-app 中。

新的 sidecar 容器必须运行以下命令:

/bin/sh -c tail -n+1 -f /var/log/11-factor-app.log

使用挂载在/var/log 的 Volume,使日志文件 11-factor-app.log 可用于 sidecar 容器。

除了添加所需要的 volume mount 以外,请勿更改现有容器的规格。

  • 考点

pod 两个容器共享存储卷

  • 解答

切换到kubectl config use-context k8s。

# (输出其yaml文件)
kubectl get pod 11-factor-app -o yaml > app.yaml
# (先备份一份,删除managed部分,删除status部分,不删会有问题。)
vim app.yaml
# 在container下添加:
containers:- name: sidecar #新加内容,注意 name 别写错了image: busybox #新加内容args: [/bin/sh, -c, 'tail -n+1 -f /var/log/11-factor-app.log'] #新加内容,注意文件名别写错了。另外是用逗号分隔的,而题目里是空格。volumeMounts: #新加内容- name: varlog #新加内容mountPath: /var/log #新加内容# 在原容器下添加:volumeMounts:- name: varlog  #新加内容mountPath: /var/log  #新加内容#注意:在pod的volumes为emptyDir。volumes:- name: varlogemptyDir: {}

重新创建pod应用

kubectl delete pod 11-factor-app
kubectl apply -f app.yaml
kubectl logs 11-factor-app sidecar
  • 验证
kubectl logs 11-factor-app sidecar

第十四题 升级集群

  • 考题

设置配置环境:

[candidate@node-1] $ kubectl config use-context mk8s

Task

现有的 Kubernetes 集群正在运行版本 1.24.2。仅将 master 节点上的所有 Kubernetes 控制平面和节点组件升级到版本 1.24.3。

确保在升级之前 drain master 节点,并在升级后 uncordon master 节点。

可以使用以下命令,通过 ssh 连接到 master 节点:

ssh master01

可以使用以下命令,在该 master 节点上获取更高权限:

sudo -i

另外,在主节点上升级 kubelet 和 kubectl。

请不要升级工作节点,etcd,container 管理器,CNI 插件, DNS 服务或任何其他插件。

  • 考点

如何离线主机,并升级控制面板和升级节点

  • 解答

切换到kubectl config use-context k8s。

kubectl get nodes
kubectl cordon master01
kubectl drain master01 --ignore-daemonsetsapt-cache show kubeadm|grep 1.24.3
apt-get update
apt-get install kubeadm=1.24.3-00# 检查 kubeadm 升级后的版本
kubeadm version
# 验证升级计划
kubeadm upgrade plan
# 排除 etcd,升级其他的,提示时,输入 y。
kubeadm upgrade apply v1.24.3 --etcd-upgrade=false# 升级 kubelet
apt-get install kubelet=1.24.3-00
kubelet --version# 升级 kubectl
apt-get install kubectl=1.24.3-00
kubectl version# 恢复 master01 调度
kubectl uncordon master01
#检查 master01 是否为 Ready
kubectl get node

第十五题 备份还原 etcd

  • 考题

设置配置环境

此项目无需更改配置环境。但是,在执行此项目之前,请确保您已返回初始节点。

[candidate@master01] $ exit #注意,这个之前是在 master01 上,所以要 exit 退到 node01,如果已经是 node01 了,就不要再 exit 了。

Task

首先,为运行在 https://11.0.1.111:2379 上的现有 etcd 实例创建快照并将快照保存到 /var/lib/backup/etcd-snapshot.db

(注意,真实考试中,这里写的是 https://127.0.0.1:2379)

为给定实例创建快照预计能在几秒钟内完成。 如果该操作似乎挂起,则命令可能有问题。用 CTRL + C 来取消操作,然后重试。

然后还原位于/data/backup/etcd-snapshot-previous.db 的现有先前快照。

提供了以下 TLS 证书和密钥,以通过 etcdctl 连接到服务器。

CA 证书: /opt/KUIN00601/ca.crt

客户端证书: /opt/KUIN00601/etcd-client.crt

客户端密钥: /opt/KUIN00601/etcd-client.key

  • 考点

etcd 的备份和恢复

  • 解答

切换到kubectl config use-context k8s。

# 备份:
# 如果不使用 export ETCDCTL_API=3,而使用 ETCDCTL_API=3,则下面每条 etcdctl 命令前都要加 ETCDCTL_API=3。 # 如果执行时,提示 permission denied,则是权限不够,命令最前面加 sudo 即可。
export ETCDCTL_API=3
etcdctl --endpoints=https://11.0.1.111:2379 --cacert="/opt/KUIN00601/ca.crt" --cert="/opt/KUIN00601/etcd-client.crt" --key="/opt/KUIN00601/etcd-client.key"
snapshot save /var/lib/backup/etcd-snapshot.db# 检查:(考试时,这些检查动作,都可以不做)
etcdctl snapshot status /var/lib/backup/etcd-snapshot.db -wtable# 恢复
# 不加 sudo 会报错 permission denied
sudo ETCDCTL_API=3 etcdctl --endpoints=https://11.0.1.111:2379 --cacert="/opt/KUIN00601/ca.crt" --cert="/opt/KUIN00601/etcd-client.crt" --
key="/opt/KUIN00601/etcd-client.key" snapshot restore /data/backup/etcd-snapshot-previous.db

第十六题 排查集群中故障节点

  • 考题

设置配置环境:

[candidate@node-1] $ kubectl config use-context wk8s

Task

名为 node02 的 Kubernetes worker node 处于 NotReady 状态。

调查发生这种情况的原因,并采取相应的措施将 node 恢复为 Ready 状态,确保所做的任何更改永久生效。

可以使用以下命令,通过 ssh 连接到 node02 节点:

ssh node02

可以使用以下命令,在该节点上获取更高权限:

sudo -i

  • 考点

控制面组件故障排查【api-server、etcd、scheduler、controller、kubelet、docker等】

  • 解答

切换到kubectl config use-context k8s。

# (查看kubelet为啥没起来,按需修复)
systemctl status kubelet
systemctl start kubelt
systemctl enable kubelet
  • 验证
# (状态为Ready)
kubectl get node

第十七题 节点维护

  • 考题

设置配置环境:

[candidate@node-1] $ kubectl config use-context ek8s

Task

将名为 node02 的 node 设置为不可用,并重新调度该 node 上所有运行的 pods。

  • 考点

cordon 和 drain 命令的使用

  • 解答

切换到kubectl config use-context k8s。

kubectl get node
kubectl cordon node02
kubectl get node
kubectl drain node02 --ignore-daemonsets
# 注意,还有一个参数--delete-emptydir-data --force,这个考试时不用加,就可以正常 draini node02 的。
# 但如果执行后,有跟测试环境一样的报错(如下截图),则需要加上--delete-emptydir-data --force,会强制将 pod 移除。
# kubectl drain node02 --ignore-daemonsets --delete-emptydir-data --force
  • 验证
kubectl get node

CKA考题[k8s1.24]相关推荐

  1. 使用kubekey的all-in-one安装K8S1.24及KubeSphere3.3

    KubeSphere简介 官网:https://kubesphere.com.cn/ 有中文,别人介绍的很详细,笔者不再赘述,本篇主要实操. KubeSphere可以很方便地部署devops的各种组件 ...

  2. 2023 K8s 认证工程师 CKA 考题分析和题库练习(上)

    目录 01.考核知识:基于角色的访问控制-RBAC 题目内容 题目内容中文解释 官方文档搜索关键字:RBAC 做题解答 02.考核知识:节点维护-指定 node 节点不可用 题目内容 题目内容中文解释 ...

  3. 2023 K8s 认证工程师 CKA 考题分析和题库练习(下)

    目录 10.考核知识:检查可用节点数量 题目内容 题目内容中文解释 做题解答 11.考核知识:一个 Pod 封装多个容器 题目内容 题目内容中文解释 官方文档搜索关键字:pod ​编辑做题解答 12. ...

  4. 2022 年 CKA 考题 2022.06.31 刚过

    四月份预约的考试,本来约的是6月25号,但开始考试的时候发现一直未能加载我要考试的科目(真的很崩溃!!!).后来从客服那里了解到,预约系统处于更新调整中,这段时间不能进行考试.之后我又通过邮件的方式, ...

  5. kubernetes认证-CKA、CKS考试

    文章目录 一.kubernetes认证-CKA证书 1. CKA(Kubernetes 管理员认证)介绍 CKA证书价值 考试难or易 CKA认证考试报名 2. CKA 内容详情 FAQ:考试语言选择 ...

  6. k8s 1.24.0版本使用nfs-provisioner4.0.0动态创建PV

    一.nfs-client-provisioner简介 nfs-client-provisioner 可动态为kubernetes提供pv卷,是Kubernetes的简易NFS的外部provisione ...

  7. 【CKA考试笔记】十五、安全管理:验证与授权

    文章目录 实验环境 一.验证 概述 token 认证方式 kubeconfig 认证方式 oauth2 认证方式 二.授权(鉴权) 三.k8s中的权限.角色.用户 查看角色 查看集群角色 查看角色有哪 ...

  8. 整理的最新版的K8S安装教程,看完还不会,请你吃瓜

    最近在参加华为推出的华为云云原生入门级开发者认证人才计划活动 于是想自己动手部署K8S的环境来学习,去年自己也采用二进制的方式部署过,时隔一年K8S的版本已经更新到了v1.24.3啦.在v1.24版本 ...

  9. HPA控制器介绍以及实战案例

    背景: 根据当前pod的负载,动态调整 pod副本数量,业务高峰期自动扩容pod的副本数以尽快响应pod的请求. 在业务低峰期对pod进行缩容,实现降本增效的目的. 动态伸缩控制器类型: 水平pod自 ...

  10. 【kubernetes】coredns报错

    环境 ubuntu虚拟机 k8s1.24.4 报错 搭建k8s过程中,coredns报错[[FATAL] plugin/loop: Loop (127.0.0.1:55710 -> :53) d ...

最新文章

  1. NHibernate学习系列一
  2. Globus toolkit3.0
  3. c语言输入与输出库函数#includestdio.h
  4. 计算机二级高级应用这么难,计算机二级考试越来越难的实锤!真实数据告诉你到底难在哪里?...
  5. 安装mysql后在安装目录下只有my-default.ini没有my.ini文件 解决-The MySQL server is running with the --secure-file-priv
  6. oracle rman和数据泵,使用RMAN或数据泵初始化OGG目标库
  7. 灵魂发明家自述:我就是靠这个创业成功的
  8. 从代码到部署微服务实战
  9. MySQL筛选重复数据
  10. linux内核设计与实现 epub_mongodb内核源码设计实现、性能优化、最佳运维系列-网络传输层模块源码实现四...
  11. android阴影edittext,android – 将阴影效果添加到EditText字段
  12. microsoftonenote_OneNote2017官方下载
  13. 如何高效读懂一本书(附10种读书方法)
  14. DFS/BFS+思维 HDOJ 5325 Crazy Bobo
  15. 【软件测试理论】(六) 白盒测试方法论说明
  16. 程序人生-哈工大计算机系统大作业2022春
  17. 详解网络层协议(ICMP,ARP)
  18. 机器学习笔记之降维(一)维数灾难
  19. 中标麒麟——初次体验,感觉流畅
  20. VMware Horizon 8 2111 部署系列(十三)创建应用程序池

热门文章

  1. 从google code上clone代码出现 couldn't resolve proxy '(null)' while accessing 的解决方法(2012/12/06)
  2. 使用Scratch制作打弹球游戏-反弹球
  3. count(1)、count(*)、count(列名) 详解
  4. 思科 终端服务器的配置
  5. 低版本的iphone 无法跑在xcode8上
  6. MaxProxy代理可以替代911s5代理吗?还有哪些软件可以使用
  7. ❤️腾讯面试,万字攻略详解, offer到碗里来❤️
  8. 7-7 选民投票 (20分)(不区分大小写投票)
  9. 计算机买什么固态硬盘,固态硬盘买什么接口好?那么多接口到底选哪种?看完这个秒懂...
  10. Flixel Dame 坦克大战(一)地图