随笔分类 -  kubernates

kubernates
摘要:$ nsenter --help 用法: nsenter [options] <program> [<argument>...] Run a program with namespaces of other processes. 选项: -t, --target <pid> 要获取名字空间的目标进程 阅读全文
posted @ 2022-07-19 15:02 ppjj 阅读(686) 评论(0) 推荐(0) 编辑
摘要:1. Volume原理 想要了解Docker Volume,首先我们需要知道Docker的文件系统是如何工作的。Docker镜像是由多个文件系统(只读层)叠加而成。当我们启动一个容器的时候,Docker会加载只读镜像层并在其上(译者注:镜像栈顶部)添加一个读写层。如果运行中的容器修改了现有的一个已经 阅读全文
posted @ 2022-07-18 09:31 ppjj 阅读(605) 评论(0) 推荐(0) 编辑
摘要:当外部服务通过externalIP连接到服务时,pod所在节点并不一定是提供对外访问服务的节点,所以会有网络跳转,影响性能,这时设置externalTrafficIP=local防止网络跳转,意思就是优先选择本地的pod,但是有缺点: 1,会影响pod访问分配不均,比如节点1有一个pod,节点2有两 阅读全文
posted @ 2022-07-16 15:12 ppjj 阅读(532) 评论(0) 推荐(0) 编辑
摘要:1,可以通过Dowmard API将pod的IP,名称和pod所在的namespace注入到容器的环境变量中: env: - name: pod_name valueFrom: fieldRef: fieldPath: metadata.name - name: pod_namespace valu 阅读全文
posted @ 2022-06-13 17:19 ppjj 阅读(984) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2022-03-10 15:20 ppjj 阅读(63) 评论(0) 推荐(0) 编辑
摘要:taints和tolerations部署到指定节点,部署到特定的硬件,排除不需要的应用,它与label selector区别是,label selector只匹配有label,但是不保证没有label不会部署到这个pod上,如果设置taints,只匹配设置了tolerations的容器。 节点亲和性 阅读全文
posted @ 2021-05-16 16:12 ppjj 阅读(105) 评论(0) 推荐(0) 编辑
摘要:1,查出已经停止的容器:docker ps -a 2,使用命令启动容器:docker start -ia containerId 阅读全文
posted @ 2020-07-26 16:26 ppjj 阅读(2168) 评论(0) 推荐(0) 编辑
摘要:虽然通过kube-proxy可以帮助实现集群内外的pod相互通信,对这些pod做负载均衡(用户态userspace轮询算法,性能低也不安全)和网络的流量代理,但是随着service的增多,nodeIP越来越多,并且kube-proxy生成的规则链也会越来越多,即使是iptables路由(内核态随机算 阅读全文
posted @ 2020-06-07 13:42 ppjj 阅读(840) 评论(0) 推荐(0) 编辑
摘要:entrypoint设置容器的入口程序,就是容器启动时执行的程序,docker run中最后的命令将作为参数传给入口程序,它有两种格式exec和shell,它们之间区别在于指定的命令是否在shell中运行,其中shell底层使用/bin/sh -c COMMAND运行,就是说主进程shell进程,后 阅读全文
posted @ 2020-06-07 13:28 ppjj 阅读(1312) 评论(0) 推荐(0) 编辑
摘要:通过前面两篇文章,我们已经有了一个“嗷嗷待哺”的K8s集群环境,也对相关的概念与组件有了一个基本了解(前期对概念有个印象即可,因为只有实践了才能对其有深入理解,所谓“纸上得来终觉浅,绝知此事要躬行”),本文从实践角度介绍如何结合我们常用的Gitlab与Jenkins,通过K8s来实现项目的自动化部署 阅读全文
posted @ 2020-06-06 17:45 ppjj 阅读(2878) 评论(0) 推荐(0) 编辑
摘要:容器管理 容器,就是Linux被严格限制资源约束(cgroups),安全约束(Unix权限,capabilities,SELinux,AppArmor,seccomp等)和命名空间(PID,网络,mount,等等)限制出来的应用。docker是最常见的一种容器技术,Docker由Docker dae 阅读全文
posted @ 2020-06-06 17:43 ppjj 阅读(842) 评论(0) 推荐(0) 编辑
摘要:一、自定义镜像有两种方法: 1、docker commit 启动一个容器,增删改查,安装软件,修改配置文件等 ; 另存为一个新镜像 docker run -it docker.io/centos 启动一个容器 yum install -y vim net-tools ctrl+p+q 退出容器 do 阅读全文
posted @ 2020-06-06 17:36 ppjj 阅读(1264) 评论(0) 推荐(0) 编辑
摘要:理解etcd性能:etcd集群架构图,包含raft层,storage层(storage层包含treeindex层和boltdb底层持久化存储key-value层),它们每一层都可能造成性能损失,raft层需要网络同步数据,网络io节点之间的rtt和带宽都会影响etcd性能,另外wal也会受到磁盘io 阅读全文
posted @ 2020-04-28 16:53 ppjj 编辑
摘要:etcd是一个分布式,可靠的key-value存储系统,etcd集群通常有3个或5个节点组成,之间通过raft一致性算法进行协同,算法会选举主节点作为leader,由leader负责数据的同步和数据分发,当leader出现故障会选举另一个节点作为leader,并重新完成数据同步呢分发。 在整个架构中 阅读全文
posted @ 2020-04-28 16:52 ppjj 编辑
摘要:容器技术:最下面是磁盘,容器镜像是放在磁盘disk上的,上层是容器引擎,容器引擎可以是docker,也可以是其他,引擎向下发一个请求比如创建容器,这个时候引擎就把磁盘上面的容器镜像运行成宿主机上的一个进程。 对于容器来说,最重要怎么保证进程用到的资源被隔离和被限制,在Linux内核上面有cgroup 阅读全文
posted @ 2020-04-28 16:51 ppjj 编辑
摘要:helm:开发者把需要的资源文件包装起来,通过模板化方法,将一些可变字段暴露给用户,用户就可以自己设置了,放在指定的仓库中供用户下载,对用户而言,使用helm一条简单命令就可以install安装,卸载uninstall和升级update。使用create创建命令之后会生成charts.yaml(ch 阅读全文
posted @ 2020-04-28 16:49 ppjj 编辑
摘要:k8s通过pod部署应用,但是pod生命周期短暂,删除了重启之后IP地址就变了,这时需要service服务发现,对内的话对所有pod提供统一的访问入口,让pod网络暴露出去,对外的话提供统一的访问地址,包含负载均衡。 创建完成service有一个唯一的ClusterIP字段,它通过service的唯 阅读全文
posted @ 2020-04-28 16:49 ppjj 编辑

点击右上角即可分享
微信分享提示