2024年9月20日
K8s部署业务应用程序非常方便,但是一些有状态应用比如数据库、消息队列等应用就相对复杂的多,这些应用普遍对数据处理性能、数据一致性要求很高,这就是K8s原生存储要解决的问题。 StatefulSet特点 StatefulSet 用来管理某 Pod 集合的部署和扩缩, 并为这些 Pod 提供持久存储和持久标识符。和 Deployment 类 ………
阅读全文
2024年9月16日
阿里云 K8S 集群网络目前有两种方案:一种是 flannel 方案;另外一种是基于 calico 和弹性网卡 eni 的 terway 方案。Terway 和 flannel 类似,不同的地方在于 terway 支持 Pod 弹性网卡,以及 NetworkPolicy 功能。 Service 在 Kubernetes (k8s) ………
阅读全文
2021年4月26日
K8s高可用部署至少需要2台Master主机,为此我们复用上次做etcd集群的4台机器,2台做Master,2台做Worker。也就是说要完成k8s集群的部署,先完成etcd集群的独立部署工作。 参考以前的文章: /2020/12/09121959-k8s-config.html ………
阅读全文
2021年4月23日
etcd是近些年比较流行的分布式键值对存储系统,他采用Go语言编写而成,常被用于微服务中的服务注册与发现。 K8s高可用架构图 K8s系统默认就采用etcd存储数据,看看下面比较常见的高可用部署方案: 以上两种方案的区别是:一种用docker方式部署etcd,一种是独立部署etcd(官方更推荐用这种独立部署的方式)。 etcd ………
阅读全文
2021年1月29日
默认情况下容器中的磁盘文件是非持久化的,对于运行在容器中的应用来说面临两个问题: 当容器挂掉kubelet将重启启动它时,文件将会丢失; 当Pod中同时运行多个容器,容器之间需要共享文件时。 Kubernetes的Volume解决了这两个问题。内部实现中,一个Volume只是一个目录,目录中可能有一些数据,pod的容器可以访问这些数据。至 ………
阅读全文
2021年1月26日
etcd是CoreOS团队于2013年6月发起的开源项目,它的目标是构建一个高可用的分布式键值(key-value)数据库。etcd内部采用raft协议作为一致性算法,etcd基于Go语言实现。 etcd作为服务发现系统,有以下的特点: 简单:安装配置简单,而且提供了HTTP API进行交互,使用也很简单 安全:支持SSL证书验证 快速: ………
阅读全文
2021年1月10日
这里我们以简单的NodeJS应用为例,总结一下K8s如何部署应用服务。 Docker打包NodeJS应用 将自己的NodeJS应用打包到Docker中有很多种方法,大家可以参考官方文档: https://nodejs.org/zh-cn/docs/guides/nodejs-docker-webapp/ 下面介绍用最简单的方法打包自己的应 ………
阅读全文
2020年12月9日
本文将试验在虚拟机上用CentOS8.1系统搭建典型的K8s集群(1Master + 3Worker),K8s版本1.28.2 以下内容如没有特别说明,意味着所有参与集群的服务器都要配置。 1. 环境准备 本次搭建用了三台vmware虚拟机,操作系统全部安装centos8.1 1 2 3 4 5 6 7 8 # uname -a ………
阅读全文
2020年12月8日
使用Minikube是运行Kubernetes集群最简单、最快捷的途径。Minikube是一个构建单节点集群的工具,对于测试Kubernetes和本地开发应用都非常有用。 搭建过K8s的同学应该都被虐过,复杂的认证,配置环节相当折磨人,出错率相当高,而minikube就是为解决这个问题而衍生出来的工具,它基于go语言开发,可以在单机环境下 ………
阅读全文
2020年12月5日
随着K8s版本的变更,很多配置写法和命令发生着变化。下面收集一些常用的命令 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 # 在Master中检查集群的状态: kubectl cluster-info kubectl get cs kubectl get pod ………
阅读全文