
k8s
文章平均质量分 57
junior1206
一个it界不及格的二哈
展开
-
etcd知识解析(必看知识)
随着CoreOS和Kubernetes等项目在开源社区日益火热,它们项目中都用到的etcd组件作为一个高可用强一致性的服务发现存储仓库,渐渐为开发人员所关注。在云计算时代,如何让服务快速透明地接入到计算集群中,如何让共享配置信息快速被集群中的所有机器发现,更为重要的是,如何构建这样一套高可用、安全、易于部署以及响应快速的服务集群,已经成为了迫切需要解决的问题。etcd为解决这类问题带来了福音,本文...转载 2020-03-12 23:44:58 · 1034 阅读 · 0 评论 -
etcd 安装测试
参数ETCD_NAME :ETCD的节点名,在集群中应该保持唯一,可以使用 hostname。ETCD_DATA_DIR:ETCD的数据存储目录,服务运行数据保存的路径,默认为 ${name}.etcd。ETCD_SNAPSHOT_COUNTER:多少次的事务提交将触发一次快照,指定有多少事务(transaction)被提交时,触发截取快照保存到磁盘。ETCD_HEARTBEA...原创 2020-03-13 16:59:01 · 1561 阅读 · 0 评论 -
Rancher安装
1.供应Linux主机通过预配Linux主机开始创建自定义集群。您的主机可以是:云主机虚拟机(VM) 本地VM 裸机服务器注意:使用云托管的虚拟机时,您需要允许与端口80和443的入站TCP通信2.安装Rancher要在主机上安装Rancher,请连接到它,然后使用外壳进行安装。 使用首选外壳程序(例如PuTTy或远程终端连接)登录到Linux主机。 在您的shell中,输入以下命令: sudo docker run -d --restart=unless-sto原创 2021-01-26 13:46:26 · 497 阅读 · 0 评论 -
sou-bash: _get_comp_words_by_ref: 未找到命令
不管是kubectl 还是helm 出现的问题sou-bash: _get_comp_words_by_ref: 未找到命令解决:1、下载[root@localhost ~]# yum install bash-completion -y2、执行bash_completion[root@localhost ~]# source /usr/share/bash-completion/bash_completion 3、重新加载completion ( kubectl和helm)[roo原创 2021-11-26 16:38:02 · 1260 阅读 · 0 评论 -
CKA考试注意
每个成功的软件平台都有一个优秀的打包系统,比如 Debian、Ubuntu 的 apt,Redhat、Centos 的 yum。而 Helm 则是 Kubernetes 上的包管理器。helm简介我们可以将Helm看作Kubernetes下的apt-get/yum。Helm是Deis (https://deis.com/) 开发的一个用于kubernetes的包管理器。每个包称为一个Chart,一个Chart是一个目录(一般情况下会将目录进行打包压缩,形成name-version.tgz格式的单一文原创 2021-11-01 10:45:35 · 2889 阅读 · 0 评论 -
Kubeadm搭建单master节点的Kubernetes集群
1. 环境准备3个节点,都是Centos7.6 系统,内核版本:3.10.0-957.12.2.el7.x86_64,在每个节点上添加 hosts 信息:$ cat /etc/hosts172.16.1.128 k8s-master172.16.1.129 k8s-node01172.16.1.130 k8s-node02禁用防火墙:$ systemctl stop firewalld$ systemctl disable firewalld禁用SELINUX:..原创 2021-02-07 17:00:28 · 245 阅读 · 0 评论 -
Kubeadm搭建高可用Kubernetes集群 3个matser
1. 节点规划信息2. 基础环境配置2.1 环境信息2.2 环境初始化(1)、配置主机名,以k8s-master01为例hostnamectl set-hostname k8s-master01(2)、配置主机hosts映射10.1.10.100 k8s-master0110.1.10.101 k8s-master0210.1.10.102 k8s-master0310.1.10.103 k8s-node0110.1.10.200 k8s-lb配置完后原创 2021-02-07 16:57:58 · 919 阅读 · 0 评论 -
docker启动关闭删除所有的容器命令
1、启动所有容器docker start $(docker ps -a | awk '{ print $1}' | tail -n +2)2、关闭所有容器docker stop $(docker ps -a | awk '{ print $1}' | tail -n +2)3、删除所有容器docker rm $(docker ps -a | awk '{ print $1}' | tail -n +2)4、删除所有镜像(慎用)docker rmi $(docker ima原创 2020-12-08 13:05:17 · 883 阅读 · 1 评论 -
docker(11、Docker Swarm5) 17、什么是 stack 18、如何使用stack 19、stack 的优势 20 、删除搭建好的Docker Swarm集群
17 、什么是 stack ?在将这个之前先回顾一下前面部署WordPress的过程: 1、创建secret 2、创建mysql service 3、创建WordPress service也就是说,这个应用包含了两个service ; mysql + wordpress 。他们之间有明确的依赖关系,必须先启动mysql。为了保证这个依赖关系,我们控制了 docker secret 和 docker service 命令的执行顺序,只不过这个过程是手工完成的。假如我们...原创 2020-05-18 15:59:28 · 475 阅读 · 0 评论 -
docker(11、Docker Swarm4)14、如何使用 Secret 15、Secret 的使用场景 16、通过案例学习 Secret
14、如何使用 Secret我们经常要想容器传递敏感信息,最常见的就是密码。比如:docker run -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql在启动Mysql容器时,我们通过环境变量 MYSQL_ROOT_PASSWORD设置mysql的管理员密码。不过密码是以明文的形式写在了dockerrun命令中,有潜在的安全隐患。为了解决这个问题,dockerswarm提供了secret机制,允许将敏感信息加密后保存到secr...原创 2020-05-18 14:48:26 · 583 阅读 · 0 评论 -
docker(11、Docker Swarm4)11、副本数量(replicated 和 global )12、Label 控制 Service 的位置 13、如何配置 Health Check
11、副本数量模式(replicated mode 和 global mode)Swarm可以在Service创建和运行过程中灵活的通过 --replicas调整容器副本数量,内部调度器则会根据当前集群的资源使用情况在不同的node上启停容器,这就是Service默认的replicatedmode 。在此模式下,node上运行的副本数有多有少,一般情况下,资源更丰富的node运行的副本数更多,反之亦然。除了replicatedmode ,Service还提供了一个glo...原创 2020-05-18 12:20:52 · 4076 阅读 · 0 评论 -
docker(11、Docker Swarm3)8、Service 之间通信 9、如何滚动更新 Service 10、Swarm 如何管理数据 、验证 Swarm 数据持久性
8、Service 之间通信微服务架构的应用由若干 service 组成。比如有运行 httpd 的 web 前端,有提供缓存的 memcached,有存放数据的 mysql,每一层都是 swarm 的一个 service,每个 service 运行了若干容器。在这样的架构中,service 之间是必然要通信的服务发现一种实现方法是将所有 service 都 publish 出去,然后通过 routing mesh 访问。但明显的缺点是把 memcached 和 mysql 也暴露到外网,增加了原创 2020-05-13 15:36:02 · 892 阅读 · 0 评论 -
docker(11、Docker Swarm2) 5、Swarm 如何实现 Failover 6、如何访问 Service 7、swarm 的 routing mesh
5、Swarm 如何实现 Failover故障是在所难免的,容器可能崩溃,Docker Host可能宕机,不过幸运的是,Swarm已经内置了failover策略创建Service的时候,我们没有告诉swarm发生故障时该如何处理,只是说明了我们期望的状态(比如 3份副本),swarm会尽最大努力达成这个期望的状态,无论发生什么状况。[root@swarm-manager ...原创 2020-05-12 15:07:10 · 577 阅读 · 0 评论 -
docker(11、Docker Swarm1)1、Swarm 的概念 2、创建swarm集群 3、运行第一个 Service 4、实现 Service 伸缩
1、Swarm 的概念从主机层面来看,DockerSwarm管理的是DockerHost集群。所以先来讨论一个重要的概念 -集群化(Clustring)服务器集群由一组网络上相互连接的服务器组成,它们一起协同工作。一个集群和一堆服务器最显著的区别在于: 集群能够像单个系统那样工作,同时提供高可用、负载均衡和并行处理。如果我们部署应用和服务时选择的是多个独...原创 2020-05-05 16:52:49 · 766 阅读 · 0 评论 -
docker端口映射或启动容器时报错Error response from daemon: driver failed programming external connectivity on end
现象:[root@localhost ~]# docker run -d -p 9000:80 centos:httpd /bin/sh -c /usr/local/bin/start.shd5b2bd5a7bc4895a973fe61efd051847047d26385f65c278aaa09e4fa31c4d76docker: Error response from daemon: ...原创 2020-05-05 13:10:00 · 535 阅读 · 0 评论 -
docker(10、日志管理4)5、Graylog 日志系统(1、部署Graylog日志系统,2、Graylog管理日志)
部署Graylog日志系统Graylog是与ELK可以相提并论的一款几种式日志管理方案,支持数据收集、检索、可视化Dashboard。将实践用Graylog来管理Docker日志Graylog 架构Graylog 架构如下图所示:Graylog 负责接收来自各种设备和应用的日志,并未用户提供Web访问接口。Elasticsearch 用于索引和保存 Graylog接...原创 2020-05-05 13:08:37 · 1273 阅读 · 0 评论 -
docker(10、日志管理3 )4、数据收集器 Fluentd
ELK中我们使用的是Filebeat收集Docker日志,利用的是默认的loggingdriverjson-file。下面使用fluentd来收集容器的日志Fluentd是一个开源的数据收集器,他目前有超过500中的plugin,可以连接各种数据源和数据输出组件。Fluentd会负责收集容器日志,然后发送给Elasticsearch。日志的处理流程如下:用 Filebe...原创 2020-04-29 20:24:06 · 403 阅读 · 0 评论 -
docker(10、日志管理2 )3、ELK日志分析系统
在开源的日志管理方案中,最出名的莫过于ELK了。ELK是三个软件的合称:Elasticsearch、Logstash、Kibana。服务器版的安装部署:https://blog.51cto.com/14449541/2461909 https://www.cnblogs.com/sunsing123/p/109128...原创 2020-04-29 17:58:51 · 294 阅读 · 0 评论 -
脚本自动安装CentOS7上无人值守安装Zabbix4.2
#!/bin/bash# 检查操作系统版本,该脚本只能运行在 Centos 7.x 系统上cat /etc/redhat-release |grep -i centos |grep '7.[[:digit:]]' >/dev/nullif [[ $? != 0 ]] then echo -e "不支持的操作系统,该脚本只适用于CentOS 7.x x86_64...原创 2020-04-27 15:45:22 · 262 阅读 · 0 评论 -
docker(10、日志管理1 )1、 Docker logs 2、Docker 支持多种日志方案driver
高效的监控和日志管理对保持生产系统只需稳定的运行以及排查问题至关重要。在微服务架构中,由于容器的数量众多以及快速变化的特性,使得记录日志和监控变的重要起来。考虑到容器短暂和不固定的生命周期,我们需要debug问题时有些容器可能已经不在了。因此,一套集中式的日志管理系统是生产环境中不可缺少的组成部分。本章我们将学习监控容器的各种可用技术和方案,首先会介绍Docker自带的logs子命...原创 2020-04-27 15:06:22 · 499 阅读 · 0 评论 -
docker(9、容器监控6 )Docker 监控方案总结
ps/top/stats、Sysdig、Weave Scope、cAdvisor和Prometheus多种容器监控工具和方案,是时候做一个比较了。下面将从五个方面来对比它们之间的优劣。部署容易度ps/top/stats 无疑是最容易使用的,它们是 Docker 自带的子命令,随时随地都可以用来快速了解容器的状态。其余几种也都能以容器的方式运行,总的来说都不算复杂。相对而言,Prome...原创 2020-04-26 16:29:24 · 417 阅读 · 0 评论 -
docker(9、容器监控5) 5、Prometheus 架构 6、Prometheus的优势特点 7、安装部署
Prometheus 是一个非常优秀的监控工具。准确的说,应该是监控方案。Prometheus 提供了监控数据搜集、存储、处理、可视化和告警一套完整的解决方案。一 、Prometheus架构Prometheus重要组件的架构如下:官网上的原始架构图比上面这张要复杂一些,只保留了最重要的组件。Prometheus Server负责从Exporter拉取和存储监控数据,并提供...原创 2020-04-26 16:24:53 · 385 阅读 · 0 评论 -
docker(9、容器监控4) 4、数据收集利器 cAdvisor
cAdvisor 是 google 开发的容器监控工具安装和体验cAdvisor[root@localhost ~]# cat in_cAdvisor.sh docker run \ --volume=/:/rootfs:ro \ --volume=/var/run:/var/run:rw \ --volume=/sys:/sys:ro \ --volume=/var...原创 2020-04-26 12:30:16 · 406 阅读 · 0 评论 -
docker(9、容器监控3) 3、Weave Scope 容器地图 4、Weave Scope 多主机监控
一、WeaveScope的最大特点是会自动生成一张Docker容器地图,让我们能够直接的理解、监控和控制容器。实践 Weave Scope。安装执行如下脚本安装运行 Weave Scope。curl -L git.io/scope -o /usr/local/bin/scopechmod a+x /usr/local/bin/scopescope launch...原创 2020-04-24 15:26:56 · 490 阅读 · 0 评论 -
docker(9、容器监控2) 2、监控利器 sysdig
sysdig 是一个轻量级的系统监控工具,同时它还原生支持容器。通过 sysdig 我们可以近距离观察 linux 操作系统和容器的行为。Linux 上有很多常用的监控工具,比如 strace,tcpdump,htop, iftop,lsof ......而 sysdig 则是将这些工具的功能集成到一个工具中,并且提供一个友好统一的操作界面。安装和运行sysdig的最简单方法就是运行D...原创 2020-04-24 13:47:22 · 382 阅读 · 0 评论 -
docker(9、容器监控1) 1、常用的容器方案
当Docker部署规模逐步变大后,可视化监控容器环境的性能和健康状态会变得越来越重要,目前比较常用的容器监控工具和方案1、Docker自带的几个监控子命令:ps、top、statsdockercontainerpsroot@host1:~# docker container ls --help root@host1:~# docker container ps -...原创 2020-04-22 15:04:37 · 242 阅读 · 0 评论 -
docker(8、跨 Docker 主机存储1) 跨 Docker 主机存储
从业务数据的角度看,容器可以分为两类:无状态(stateless)容器和有状态(stateful)容器。无状态是指容器在运行过程中不需要保存数据,每次访问的结果不依赖上一次访问,比如提供静态页面的 web 服务器。有状态是指容器需要保存数据,而且数据会发生变化,访问的结果依赖之前请求的处理结果,最典型的就是数据库服务器。简单来讲,状态(state)就是数据,如果容器需要处理并存储数据,...原创 2020-04-21 14:54:26 · 294 阅读 · 0 评论 -
docker(7、容器网络7) Docker 网络总结
Docker 起初只提供了简单的 single-host 网络,显然这不利于 Docker 构建容器集群并通过 scale-out 方式横向扩展到多个主机上。几种主流的方案 - Docker Overlay、Macvlan、Flannel、Weave 和 Calico。现在是时候做个比较了,让大家对各种方案的特点和优势有更深入的理解。如下几个方面比较,大据不同场景选择最合适的方案。网络...原创 2020-04-17 15:11:27 · 460 阅读 · 0 评论 -
docker(7、容器网络6) weave 网络 Weave 跨主机的连通和隔离特性
weave 是 Weaveworks 开发的容器网络解决方案。weave 创建的虚拟网络可以将部署在多个主机上的容器连接起来。对容器来说,weave 就像一个巨大的以太网交换机,所有容器都被接入这个交换机,容器可以直接通信,无需 NAT 和端口映射。除此之外,weave 的 DNS 模块使容器可以通过 hostname 访问。https://www.weave.works/docs/cloud/l...原创 2020-03-30 21:10:22 · 1941 阅读 · 0 评论 -
docker(7、容器网络5)Calico 网络 单etcd 节点 Calico网络结构 Calico 的默认连通性 定制 Calico 网络 Policy 定制 Calico IP 池
Calico是一个纯三层的协议,为OpenStack虚机和Docker容器提供多主机间通信。Calico不使用重叠网络比如flannel和libnetwork重叠网络驱动,它是一个纯三层的方法,使用虚拟路由代替虚拟交换,每一台虚拟路由通过BGP协议传播可达信息(路由)到剩余数据中心。Calico还提供网络安全规则的动态实施。使用Calico的简单策略语言,您可以实现对容器,虚拟机工作负载和裸机主机...原创 2020-03-26 01:07:59 · 1018 阅读 · 0 评论 -
docker(7、容器网络4) flannel 网络 1、yum安装etcd单节点 yum安装flannel 配置使用vxlan 2、配置使用 flannel host-gw
1、概述lannel 是 CoreOS 开发的容器网络解决方案。flannel 为每个 host 分配一个 subnet,容器从此 subnet 中分配 IP,这些 IP 可以在 host 间路由,容器间无需 NAT 和 port mapping 就可以跨主机通信。每个 subnet 都是从一个更大的 IP 池中划分的,flannel 会在每个主机上运行一个叫 flanneld 的 a...原创 2020-03-19 21:02:21 · 987 阅读 · 0 评论 -
docker(7、容器网络3) macvlan 网络 不支持DNS服务
macvlan 本身是 linux kernel 模块,其功能是允许在同一个物理网卡上配置多个 MAC 地址,即多个 interface,每个 interface 可以配置自己的 IP。macvlan 本质上是一种网卡虚拟化技术,Docker 用 macvlan 实现容器网络。macvlan 的最大优点是性能极好,相比其他实现,macvlan 不需要创建 Linux bridge,而是直接...原创 2020-03-06 02:42:52 · 2047 阅读 · 0 评论 -
docker(7、容器网络2) overlay网络
1、overlay环境准备为支持容器跨主机通信,Docker 提供了 overlay driver,使用户可以创建基于 VxLAN 的 overlay 网络。VxLAN 可将二层数据封装到 UDP 进行传输,VxLAN 提供与 VLAN 相同的以太网二层服务,但是拥有更强的扩展性和灵活性。Docerk overlay 网络需要一个 key-value 数据库用于保存网络状态信息,包括 Ne...原创 2020-03-06 01:37:57 · 885 阅读 · 0 评论 -
docker(7、容器网络1)跨主机网络概述
1、跨主机网络概述Docker 的几种网络方案:none、host、bridge 和 joined 容器,它们解决了单个 Docker Host 内容器通信的问题跨主机网络方案包括:docker 原生:overlay 和 macvlan第三方方案: flannel、weave 和 calicodocker 网络,不断有新的方案开发出来 如此众多的方案是通过 libnetwork &am...原创 2020-03-05 22:43:34 · 199 阅读 · 0 评论 -
docker(5、网络2) 1、容器间通信的三种方式 2、 容器如何访问外部 3、 外部如何访问容器
1、容器之间可通过 IP,Docker DNS Server 或 joined 容器三种方式通信IP 通信具体做法是在容器创建时通过--network指定相应的网络,或者通过docker network connect将现有容器加入到指定网络两个容器要能通信,必须要有属于同一个网络的网卡。同一网桥下的容器可以ping 通 ,不同网桥上的容器如何互通, 解决方法就是在容器上添加一...原创 2020-03-04 19:34:39 · 3946 阅读 · 1 评论 -
docker(5、网络1) 网络的几种类型 和网络互通添加网卡
Docker 提供的几种原生网络Docker 安装时会自动在 host 上创建三个网络,我们可用docker network ls命令查看:none 网络在容器创建时,不指定任何网络模式。由用户自己在适当的时候去指定。手动使用none模式来实现两个容器之间的互通封闭隔离,对安全性要求高并且不需要联网的应用。某个容器的唯一用途是生成随机密码host 网络Host模式...原创 2020-03-04 15:15:04 · 732 阅读 · 0 评论 -
docker(4、容器3)容器的底层技术支持 cgroup 和 namespace
cgroup 实现资源限额, namespace 实现资源隔离。cgroupcgroup 全称 Control Group。Linux 操作系统通过 cgroup 可以设置进程使用 CPU、内存 和 IO 资源的限额cgroup 可以在 /sys/fs/cgroup 中找到/sys/fs/cgroup/memory/docker 内存的 cgroup 配置/sys/fs/cgr...原创 2020-03-03 11:15:15 · 274 阅读 · 0 评论 -
docker(4、容器2)限制容器对内存的使用 限制容器对CPU的使用 限制容器的 Block IO
1、内存限额与操作系统类似,容器可使用的内存包括两部分:物理内存和 swap。 Docker 通过下面两组参数来控制容器内存的使用量。-m 或 --memory:设置内存的使用限额,例如 100M, 2G。--memory-swap:设置 内存+swap 的使用限额。当我们执行如下命令:docker run -m 200M --memory-swap=300M ubuntu解释允许该容...原创 2020-03-03 11:01:37 · 764 阅读 · 0 评论 -
docker(4、容器1)1、容器启动 2、 进入容器 3、容器常用操作
1、容器启动容器启动时执行的命令: CMD 指令。 ENDPOINT 指令。 在docker run命令行中指定 例如下面的例子:容器启动时执行pwd,返回的/是容器中的当前目录。执行docker ps或docker container ls可以查看 Docker host 中当前运行的容器:怎么没有容...原创 2020-03-03 10:40:25 · 1030 阅读 · 0 评论 -
docker(3、镜像4) 1、公共 Registry 2、本地Registry 3、镜像命令
1、使用公共 Registry保存和分发镜像的最直接方法就是使用 Docker Hub,除了 Docker Hub,quay.io 是另一个公共 Registry,提供与 Docker Hub 类似的服务。下面介绍如何用 Docker Hub 存取我们的镜像。1、首先得在 Docker Hub 上注册一个账号。2、在 Docker Host 上登录(docker login -u sm...原创 2020-03-03 01:19:51 · 501 阅读 · 0 评论