课后作业:
一、X86和ARM CPU架构的区别?
对比项 | ARM | X86 |
---|---|---|
指令集 | RISC(精简指令集) | CISC(复杂指令集) |
主要特点 | 高密度低功耗 | 高性能强兼容性 |
性能 | 综合性工作处于劣势,适用于固定的应用场景 | 性能强 |
拓展能力 | 存储,内存等性能难拓展 | 拓展性强 |
操作系统 | Linux | Windows及所有工具软件 |
适应的负载 | 少 | 多 |
价格 | 低 | 高 |
软件支持 | 少 | 多 |
功耗 | 低 | 高 |
硬件制造成本 | 低 | 高 |
优势平台 | 移动端 | PC端 |
二、Ubantu操作系统软件包是什么格式,安装命令apt-get和dkpg的区别?
Ubunntu操作系统的软件包管理的软件包格式:软件包名+.*deb
apt-get: 使用软件源(安装,卸载,更新)方式管理软件的命令
dkpg: 使用软件包(安装,卸载,更新)方式管理软件的命令
三、Ubuntu系统网卡做Bond4 + vlan 子接口配置?
1.安装bond和vlan包
# apt install -y ifenslave vlan
# vim /etc/modules
Bonding
BO21q
#modprobe
2.配置被绑定网卡
# vim /etc/network/interfaces.d/eno1
auto eno1
iface eno1 inet manual
bond-master bond 0
# vim /etc/network/interfaces.d/eno2
auto eno2
iface eno2 inte manual
bond-master bond 0
# vim /etc/network/interfaces.d/bond0 配置bond0网卡
auto bond0
iface bond0 inte manual
bond-mode 4
bond-miimon 100
bond-lacp-rate 1
bond-slaves eno1 eno2
# vim /etc/network/interfaces.d/bond0.101 配置bond0.vlan子接口
auto bond0.101
iface bond0.101 inet static
address 10.0.0.10
gateway 10.0.0.1
netmask 255.255.255.255
vlan-raw-dervice bond0
# vconfig add bond0 101
# systemctl restart networking
四、docker镜像修改tag命令,进入docker的命令,docker的日志怎么查看?
# dokcer tag image-old image-newtag 修改镜像tag
# docker exec -it <容器id> bash | sh 进入容器的
# docker logs --tail 100 <容器id> 显示容器最后100行日志
五、kubernetes节点角色,各节点部署了什么服务?
k8s分为master与node
Master: kube-apiserver,etcd,kube-controller-manager,kube-dns,kube-scheduler,flannel
Node: kubelet,kube-proxy,flannel,kube-proxy
六、Kubernetes网络用的什么CNI 插件?node节点中容器数据流出本node的流量路径?
- Main:接口创建
- IPAM:IP 地址分配
- Meta:flannel、calico、tuning、portmap、等其它插件
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
...
spec:
...
spec:
...
nodeSelect:
disktype: ssd
八、Kubernetes 集群中有几种ip类型?
- Pod IP:每个Pod的IP地址,一个Pod里的容器访问另外一个Pod里的容器时,就是通过Pod IP所在的虚拟二层 网络进行通信的,而真实的TCP/IP流量是通过Node IP所在的物理网卡流出。
- Cluster IP :Service 的 IP ,是一个虚拟IP地址并由Kubernetes管理和分配。 Service 为 Pod 提供了负载均衡。
- Node IP:是Kubernetes集群中每个节点的物理网卡的IP地址, 是一个真实存在的物理网络,所有属于这个网络的服务器都能通 过这个网络直接通信,不管其中是否有部分节点不属于这个 Kubernetes集群。
- NodePort:通过 Cluster IP 只能是 kubernetes集群内部的客 户端访问到一组Pod,集群外部访问要在Pod所运行的Node上 指定一个特定Port转发到Service Port,这个Port就是Node Port。
- ClusterIP 服务是 Kubernetes 的默认服务。是一个集群内的服务,集群内的其它应用都可以访 问该服务。集群外部无法访问它。在某些场景下我们可以使用 Kubernetes 的 Proxy 模式来访问 服务,比如调试服务时。
- NodePort 服务是引导外部流量到内部服务的最原始方式。NodePort,正如这个名字所示,在 所有节点(虚拟机)上开放一个特定端口,任何发送到该端口的流量都被转发到对应服务。或者{Ingress(hostname)→service(name+port)}
- Deployment: 是最常用的 Controller,定义Deployment创建Pod和ReplicaSet,可以管理 Pod 的多个副本,并确保 Pod 按照期望的状态运行。
- StatefulSet: 实现了 Pod 的多副本管理。使用 Deployment 时会自动创建 ReplicaSet,也就是说 Deployment 是通过 ReplicaSet 来管理 Pod 的多个副本,我们通常不需要直接使用 ReplicaSet。
- StatefulSet: StatefulSet 作为 Controller 为 Pod 提供唯一的标识。解决有状态服务的Pod 的每个副本在整个生命周期中名称是不变,同时保证副本按照固定的顺序启动、更新或者删除(对应Deployments 和ReplicaSets是为无状态服务而设计)
- DaemonSet DaemonSet 确保全部(或者一些)Node 上运行一个 Pod 的副本。当有 Node 加入集群时,也会为他们新增一个 Pod 。当有 Node 从集群移除时,这些 Pod 也会被回收。删除DaemonSet 将会删除它创建的所有 Pod。
- Job: 用于运行一次性任务,运行结束就删除的应用。保证批处理任务的一个或多个Pod成功结束,而其他类型的 Controller 中 Pod 通常是长期持续运行。
- CronJob:CronJob其实就是在Job的基础上加上了时间调度。在给定的时间点运行一个任务,也可以周期性地在给定时间点运行。 这个实际上和Linux中的crontab就非常类似。一个CronJob对象其实就对应中crontab文件中 的一行,它根据配置的时间格式周期性地运行一个Job,格式和crontab也是一样的。
十一、找出 MongoDB pvc对接的后端存储,并找出对应的后端存储(ceph)设备?
# kubectl get pv | grep mon
# kubectl get pv pvc-9fcd295b-21a7-11eb-b895-fa163e48aa95 -o yaml | grep -A 10 rbd
# rbd showmapped | grep kubernetes-dynamic-pvc-a1b930d7-21a7-11eb-822f-0e45f13f644a
# df -kh | grep /dev/rbd6
十二、获取出venus pod 的configmap中 “openstack_auth_url” 字段的值?
# kubectl get pod | grep venus
# kubectl get pod venus-95cd7bf4d-l6b7l -o yaml | grep -A 10 -i configmap
# kubectl get configmap venus-config -o yaml | grep openstack_auth_url
13. OSI七层互联模型中____交换机接口___、___Vlan____工作在二层。__Rount_____、__GW_____工作在三层。端口在哪___四____层 标识。
14. 当虚拟机业务网络为VLAN模式时,服务器业务网卡__一定不能有_____ip,对应的交换机网口为___Trunk____模式,虚拟机访问外网_______弹性IP,虚拟机网关在___ovs____
[root@openstack-con01 network-scripts(keystone_admin)]# cat ifcfg-enp130s0f0
TYPE=Ethernet
BOOTPROTO=none
NAME=enp130s0f0
DEVICE=enp130s0f0
ONBOOT=yes
NM_CONTROLLED=no
USERCTL=no
MASTER=bond0
SLAVE=yes
[root@openstack-con01 network-scripts(keystone_admin)]# cat ifcfg-enp130s0f1
TYPE=Ethernet
BOOTPROTO=none
NAME=enp130s0f1
DEVICE=enp130s0f1
ONBOOT=yes
NM_CONTROLLED=no
USERCTL=no
MASTER=bond0
SLAVE=yes
[root@openstack-con01 network-scripts(keystone_admin)]# cat ifcfg-bond0
DEVICE=bond0
TYPE=Bond
ONBOOT=yes
BOOTPROTO=none
NM_CONTROLLED=no
USERCTL=no
BONDING_OPTS="mode=4 miimon=100 ad_select=1 updelay=200 xmit_hash_policy=2"