![](https://img-blog.csdnimg.cn/20200924100155798.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Kubernetes深入
文章平均质量分 73
带你一起从0开始,深入docker原理,进行k8s的部署实践!
Leon0204
这个作者很懒,什么都没留下…
展开
-
深入 Kubernetes之——容器网络
而网络插件则在宿主机上创建了一个特殊的设备(UDP 模式创建的是 TUN 设备,VXLAN 模式创建的则是 VTEP 设备),docker0 与这个设备之间,通过 IP 转发(路由表)进行协作。所以说,我们在进行系统级编程的时候,有一个非常重要的优化原则,就是要减少用户态到内核态的切换次数,并且把核心的处理逻辑都放在内核态进行。这个网桥的名字就叫作:CNI 网桥,它在宿主机上的设备名称默认是:cni0。在由 Flannel 管理的容器网络里,一台宿主机上的所有容器,都属于该宿主机被分配的一个“子网”原创 2022-10-03 16:22:47 · 538 阅读 · 0 评论 -
深入 Kubernetes之离线任务Job 与 CronJob
这个模式看起来虽然很“傻”,但却是 Kubernetes 社区里使用 Job 的一个很普遍的模式。离线任务和Deployment、StatefulSet,以及 DaemonSet的差别在于,离线任务运行结束之后就会退出,而Deployment-Pod 会在计算结束后退出,被 Deployment Controller 不断地重启。如果Job失败 Error ,Job Controller 就会不断重试创建 Pod,这里定义了backoffLimit: 4 ,也就是重试4次,重试时间是10,20,40…原创 2022-10-02 13:39:55 · 556 阅读 · 0 评论 -
深入Kubernetes 之 DaemonSet :容器化守护进程
使用 RollingUpdate 更新策略时,在更新 DaemonSet 模板后, 老的 DaemonSet pods 将被终止,并且将以受控方式自动创建新的 DaemonSet pods。OnDelete: 使用 OnDelete 更新策略时,在更新 DaemonSet 模板后,只有当你手动删除老的 DaemonSet pods 之后,新的 DaemonSet Pod 才会被自动创建。在它的控制循环中,只需要遍历所有节点,然后根据节点上是否有被管理 Pod 的情况,来决定是否要创建或者删除一个 Pod。原创 2022-10-02 12:05:34 · 680 阅读 · 0 评论 -
K8s有状态应用(StatefulSet)之Mysql集群
难点:如何让从节点,拥有主节点的数据,Master 和 Slave 节点的复制和同步。1 安装 master 节点2 通过 XtraBackup 将 master 节点的数据备份到指定目录。生成 xtrabackup_binlog_info3 配置 slave 节点,将master 数据,备份信息文件,拷贝到 数据目录,执行:4 启动slave5 在这个集群中添加更多的 Slave 节点1 Master 节点和 Slave 节点需要有不同的配置文件(即:不同的 my.cnf);2 Master 节原创 2022-10-01 14:55:34 · 1041 阅读 · 0 评论 -
k8s集群新节点的加入流程
加入需求:现有node2 机器 copy 镜像到 node5,6,7要求 5,6,7加入 master#在 copy 的节点上 运行 kubeadm reset#在 master 节点上 # 获取 token kubeadm token create q1p35e.pdiiofa81j# 运行 获取 cert-hashopenssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform d原创 2021-08-23 16:09:29 · 1372 阅读 · 0 评论 -
k8s Prometheus+node-exporter+Grafana 监控
监控效果架构安装准备# image 依赖# docker pull prom/node-exporter# docker pull prom/prometheus:v2.0.0# docker pull grafana/grafana:4.2.0[root@ecs-ca42 promethus]# tree.├── configmap.yaml├── grafana│ ├── grafana-deploy.yaml│ ├── grafana-ing.yaml│原创 2020-11-24 16:23:59 · 785 阅读 · 1 评论 -
部署 Dashboard 2.0 + Metrics 监控 Pods node 负载
Kubernetes Dashboard 从v2.0.0-beta1版本开始,集成了一个 metrics-scraper 的组件,可以通过 Kubernetes 的 Metrics API 收集一些基础资源的监控信息,并在web页面展示。这次就是想用 metrics-scraper1 使用 openssl 签发证书mkdir certsopenssl req -nodes -newkey rsa:2048 -keyout certs/dashboard.key -out certs/dashb.原创 2020-09-27 16:57:17 · 1274 阅读 · 0 评论 -
k8s流水线发布部署
一开始是想用 Jenkins 来做的,不过我们这边的代码放在code上,愣是没找到 Jenkins 的插件配置 git 的 hook ,碰巧发现了 code 这个平台的 Flow 工具,于是就用了Code + Flow + 自建K8 这一套来实现,原理上都是一样的 ,web hook 提交打包镜像,k8 发布部署容器,运行服务。1. 包含工具Codeup 等同于 Gitlab、Coding 等代码托管平台Flow 等同于Jenkins等 CI集成工具自建 K8s 集群 用于 CD发布 服务2.原创 2020-09-24 09:57:07 · 3094 阅读 · 0 评论 -
用K8s实践部署可扩容缩减的项目实战
这边用一个清洗项目来做一个简单的部署例子,这个项目的功能是,启动一个消费rabbitmq 的项目,mq中存储的是数据队列,容器消费mq 清洗数据处理项目 clean.yaml---apiVersion: apps/v1beta1kind: Deploymentmetadata: name: clean-pod labels: app: cleanspec: replicas: 4 template: metadata: labels: .原创 2020-09-22 14:18:34 · 780 阅读 · 0 评论 -
kubernetes 集群搭建1.11.3+dashboard
本文环境:centos:7docker:18.06k8:1.11.3前置准备# 3台内网ip + hostname172.16.0.175 k8s-master172.16.0.100 k8s-node1172.16.0.147 k8s-node2# 更改 hosts echo -e "172.16.0.175 k8s-master\n172.16.0.100 k8s-node1\n172.16.0.147 k8s-nod原创 2020-09-20 21:15:32 · 529 阅读 · 0 评论 -
Centos7上 kubeadm init 1.11.3
经过半天的折磨,终于 init成功!安装kubeadmdocker安装就跳过了,使用阿里镜像安装 kubeadm# 配置源cat <<EOF > /etc/yum.repos.d/kubernetes.repo[kubernetes]name=Kubernetesbaseurl=https://mirrors.aliyun.com/kubernetes/yum/...原创 2019-01-23 16:20:16 · 4029 阅读 · 0 评论 -
kubectl 命令自动补全
centos7 + k81.11.3操作yum install bash-completionsource /usr/share/bash-completion/bash_completionsource <(kubectl completion bash)试试 输入kubectl get n 按tab 查看提示吧原创 2019-01-23 18:03:40 · 6171 阅读 · 0 评论 -
容器基础Namespace和Cgroups
隔离-NamespaceNamespace-进程空间 可以区分容器内进程和宿主机进程的PID ,Mount 、NetWork容器是一组有着自己Namespace 参数 的 进程、目录、文件 ,容器本身是一组特殊的进程;Docker内的进程,是运行在宿主机伤的进程,但是是被Namespace 隔离的,所以dokcer内的PID还是从1开始。所以说 Docker里面的进程是没有上过历史课的进...原创 2019-02-01 10:58:19 · 2158 阅读 · 0 评论 -
Kubernetes 之 容器创建和Pod
PodPod 是 Kubernetes 中最重要的概念之一,Pod 是 Kubernetes 中最小的调度对象,容器的本质是进程,而我们知道,Linux 进程组之间,在这个语境环境下,父进程、子进程,线程之间共享文件、信号、数据内存、紧密一起的完成一个程序的工作。前面已经说了容器的本质是进程,一个容器只能有一个进程,比如一个运行着 java -jar snap.shot.jar 的 java ...原创 2019-02-13 19:52:04 · 2618 阅读 · 0 评论 -
Docker容器基础:文件系统
在 Cgroup 和 Namespace 的管理下,容器其实是一个隔离和限制的 子系统,那么容器的文件系统又是如何隔离开来的呢?chroot : 改变进程的根目录到你指定的 的位置这样这个挂载,就对宿主机不可见rootfs :容器镜像的本身,是一个操作系统所包含的文件,配置和目录,并不包括操作系统内核,在Linux系统开机时,需要加载系统内核,那么一个镜像的rootfs没有了内核,如何正常加...原创 2019-02-03 19:32:40 · 4715 阅读 · 0 评论