本文是书稿《图解VPC&K8s网络模型》其中一篇。书稿还在继续写,进度不快也不慢,因为二哥不急也不躁。好肉需要慢炖,好书需要多磨。为什么要单独讲这个话题呢?因为我在和同事讨论K8s网络尤其是网络数据流向的时候,会反复提及到网络设备,无论它是物理的还是虚拟的。而网络设备在我们所讨论到的数据流场景里,时而在接收数据,时而在发送数据。也就是说它同时扮演着双重身份:Ingress和Egress。另外我在整理eBPF相关的内容,尤其是tceBPF的时候,再一次发现如果不能准确地在数据流中识别出网络设备是Ingress还是Egress,就无法将代码逻辑和实际运行结果对上号,更勿谈能理解tceBPF了。这样
一、概述作为接替Docker运行时的Containerd在早在Kubernetes1.7时就能直接与Kubelet集成使用,只是大部分时候我们因熟悉Docker,在部署集群时采用了默认的dockershim。在V1.24起的版本的kubelet就彻底移除了dockershim,改为默认使用Containerd了,当然也可以使用 cri-dockerd 适配器来将 DockerEngine 与Kubernetes集成。可以参考官方文档。二、Containerd常见命令操作更换Containerd后,以往我们常用的docker命令也不再使用,取而代之的分别是 crictl 和 ctr 两
本文是书稿《图解VPC&K8s网络模型》其中一篇。书稿还在继续写,进度不快也不慢,因为二哥不急也不躁。好肉需要慢炖,好书需要多磨。为什么要单独讲这个话题呢?因为我在和同事讨论K8s网络尤其是网络数据流向的时候,会反复提及到网络设备,无论它是物理的还是虚拟的。而网络设备在我们所讨论到的数据流场景里,时而在接收数据,时而在发送数据。也就是说它同时扮演着双重身份:Ingress和Egress。另外我在整理eBPF相关的内容,尤其是tceBPF的时候,再一次发现如果不能准确地在数据流中识别出网络设备是Ingress还是Egress,就无法将代码逻辑和实际运行结果对上号,更勿谈能理解tceBPF了。这样
一、概述作为接替Docker运行时的Containerd在早在Kubernetes1.7时就能直接与Kubelet集成使用,只是大部分时候我们因熟悉Docker,在部署集群时采用了默认的dockershim。在V1.24起的版本的kubelet就彻底移除了dockershim,改为默认使用Containerd了,当然也可以使用 cri-dockerd 适配器来将 DockerEngine 与Kubernetes集成。可以参考官方文档。二、Containerd常见命令操作更换Containerd后,以往我们常用的docker命令也不再使用,取而代之的分别是 crictl 和 ctr 两
1、K8S命令概述在学习K8s基础命令前,了解和学习docker命令是很有必要的,kubectl和docker很多命令都有相通之处。dockerps#查看所有up状态容器dockerps-a#查看所有状态的容器dockerinspectcontainerid#查看容器详情dockerimages#查看容器镜像dockerstart/stop/restartcontainerid#启动/停止/重启容器dockerexec-itcontaineridbash#进入容器dockerexeccontaineridbash-c'uptime'#容器外执行命令dockerrmiimageid#删除镜像do
1、K8S命令概述在学习K8s基础命令前,了解和学习docker命令是很有必要的,kubectl和docker很多命令都有相通之处。dockerps#查看所有up状态容器dockerps-a#查看所有状态的容器dockerinspectcontainerid#查看容器详情dockerimages#查看容器镜像dockerstart/stop/restartcontainerid#启动/停止/重启容器dockerexec-itcontaineridbash#进入容器dockerexeccontaineridbash-c'uptime'#容器外执行命令dockerrmiimageid#删除镜像do
k8s的更新策略为滚动更新,通过新创建的RS(ReplicaSet)创建新的pod,等新的pod调度完成显示running,然后terminating掉老的RS下的pod,循环往复直至完成全部新pod的更新。[root@master1~]#kubectlrollouthistorydeploymentmyapp-v1deployment.apps/myapp-v1REVISIONCHANGE-CAUSE12[root@master1~]#[root@master1~]#kubectlrolloutundodeploymentmyapp-v1--to-revision=1deployment.a
k8s的更新策略为滚动更新,通过新创建的RS(ReplicaSet)创建新的pod,等新的pod调度完成显示running,然后terminating掉老的RS下的pod,循环往复直至完成全部新pod的更新。[root@master1~]#kubectlrollouthistorydeploymentmyapp-v1deployment.apps/myapp-v1REVISIONCHANGE-CAUSE12[root@master1~]#[root@master1~]#kubectlrolloutundodeploymentmyapp-v1--to-revision=1deployment.a
kubectl相关命令kind所有类型#kind所有类型kubectlapi-resources-owide--namespaced=true1、基本命令命令作用create创建资源edit编辑资源get获取资源patch更新(修改)资源delete删除资源explain展示资源文档2、运行/调试命令命令作用run在集群中运行指定镜像expose暴露资源为servicedescribe展示资源内部信息logs输出容器在pod中的日志attach进入运行中的容器cp在pod内外复制文件rollout管理资源的发布scale扩/缩容Pod数量autoscale自动调整pod数量资源分类1、集群级别
kubectl相关命令kind所有类型#kind所有类型kubectlapi-resources-owide--namespaced=true1、基本命令命令作用create创建资源edit编辑资源get获取资源patch更新(修改)资源delete删除资源explain展示资源文档2、运行/调试命令命令作用run在集群中运行指定镜像expose暴露资源为servicedescribe展示资源内部信息logs输出容器在pod中的日志attach进入运行中的容器cp在pod内外复制文件rollout管理资源的发布scale扩/缩容Pod数量autoscale自动调整pod数量资源分类1、集群级别