Kubernetes1.4.1集群搭架
kubernetes环境搭建-k8s笔记(一)

kubernetes环境搭建-k8s笔记(⼀)⼀、环境准备1、硬件及版本信息: cpu&内存:2核⼼,2G ⽹络: 每台vm主机2块⽹卡,⼀块NAT⽤于上⽹,别⼀块配置成 "仅主机模式",⽹段为192.168.100.X OS:centos7.4 k8s:v1.13.3 docker: 18.09.22、⼀些初始化⼯作: 关闭防⽕墙 关闭SELinux 配置ntp 配置hosts# /etc/hosts⽂件如下:每台主机都要配置# tail -3 /etc/hosts192.168.100.71 master192.168.100.72 node1192.168.100.73 node2 关闭swap注释掉/etc/fstab中swap那⾏,并重启主机⽣效# /dev/mapper/centos-swap swap swap defaults 0 0 开启透明⽹桥# echo "net.bridge.bridge-nf-call-iptables=1" >> /etc/sysctl.conf# echo "net.bridge.bridge-nf-call-ip6tables=1" >> /etc/sysctl.conf# systctl -p3、配置docker yum仓库# wget -O /etc/yum.repos.d/docker-ce.repo https:///docker-ce/linux/centos/docker-ce.repo4、配置k8s yum仓库# cat > /etc/yum.repos.d/kubernetes.repo <<EOF[kubernetes]name=kubernetesbaseurl=https:///kubernetes/yum/repos/kubernetes-el7-x86_64/gpgkey=https:///kubernetes/yum/doc/rpm-package-key.gpggpgcheck=1enabled=1EOF⼆、安装软件master和node三台主机都安装 docker-ce kubelet kubeadm kubectl# yum install docker-ce kubelet kubeadm kubectl三、初始化master# kubeadm init --kubernetes-version=v1.13.3 --pod-network-cidr=10.244.0.0/16 --service-cidr=10.96.0.0/12 --apiserver-advertise-address=192.168.100.71 1、参数说明:--kubernetes-version # 指定要安装的k8s版本--pod-network-cidr # 指定pod⽹络地址范围--service-cidr # 指定service⽹络地址范围--apiserver-advertise-address #指定api地址,这⾥配置成了master的私⽹接⼝IP2、kubeadm init时,会因为⽆法访问google,导致镜像下载失败,解决办法有如下2种:1)想办法使⽤代理上google,有朋友要找到好⽤的代理告诉我下,^_^。
kubernetes基本架构和基本概念

kubernetes简介Kubernetes是Google团队发起的开源项目,它的目标是管理跨多个主机的容器,提供基本的部署,维护以及运用伸缩,主要实现语言为Go语言。
Kubernetes是:•易学:轻量级,简单,容易理解•便携:支持公有云,私有云,混合云,以及多种云平台•可拓展:模块化,可插拔,支持钩子,可任意组合•自修复:自动重调度,自动重启,自动复制Kubernetes构建于Google数十年经验,一大半来源于Google生产环境规模的经验。
结合了社区最佳的想法和实践。
在分布式系统中,部署,调度,伸缩一直是最为重要的也最为基础的功能。
Kubernets就是希望解决这一序列问题的。
Kubernets目前在/GoogleCloudPlatform/kubernetes进行维护。
任何优秀的项目都离不开好的架构和设计蓝图,kubernetes也一样。
为了理解和使用Kubernets,我们需要了解Kubernetes的基本概念和作用。
架构设计•节点:一个节点是一个运行Kubernetes中的主机。
•容器组:一个Pod对应于由若干容器组成的一个容器组,同个组内的容器共享一个存储卷(volume)。
•容器组生命周期:包含所有容器状态集合,包括容器组状态类型,容器组生命周期,事件,重启策略,以及replicationcontrollers。
•ReplicationControllers:主要负责指定数量的pod在同一时间一起运行。
•服务:一个Kubernetes服务是容器组逻辑的高级抽象,同时也对外提供访问容器组的策略。
•卷:一个卷就是一个目录,容器对其有访问权限。
•标签:标签是用来连接一组对象的,比如容器组。
标签可以被用来组织和选择子对象。
•接口权限:端口,ip地址和代理的防火墙规则。
•web界面:用户可以通过web界面操作Kubernetes。
•命令行操作:kubecfg命令。
节点什么是节点在Kubernetes中,节点是实际工作的点,以前叫做Minion。
k8s docker集群搭建

k8s docker集群搭建一、Kubernetes系列之介绍篇1.背景介绍云计算飞速发展- IaaS- PaaS- SaaSDocker技术突飞猛进- 一次构建,到处运行- 容器的快速轻量- 完整的生态环境2.什么是kubernetes首先,他是一个全新的基于容器技术的分布式架构领先方案。
Kubernetes(k8s)是Google开源的容器集群管理系统(谷歌内部:Borg)。
在Docker技术的基础上,为容器化的应用提供部署运行、资源调度、服务发现和动态伸缩等一系列完整功能,提高了大规模容器集群管理的便捷性。
Kubernetes是一个完备的分布式系统支撑平台,具有完备的集群管理能力,多扩多层次的安全防护和准入机制、多租户应用支撑能力、透明的服务注册和发现机制、內建智能负载均衡器、强大的故障发现和自我修复能力、服务滚动升级和在线扩容能力、可扩展的资源自动调度机制以及多粒度的资源配额管理能力。
同时Kubernetes提供完善的管理工具,涵盖了包括开发、部署测试、运维监控在内的各个环节。
Kubernetes中,Service是分布式集群架构的核心,一个Service对象拥有如下关键特征:•拥有一个唯一指定的名字•拥有一个虚拟IP(Cluster IP、Service IP、或VIP)和端口号•能够体统某种远程服务能力•被映射到了提供这种服务能力的一组容器应用上Service的服务进程目前都是基于Socket通信方式对外提供服务,比如Redis、Memcache、MySQL、Web Server,或者是实现了某个具体业务的一个特定的TCP Server 进程,虽然一个Service通常由多个相关的服务进程来提供服务,每个服务进程都有一个独立的Endpoint(IP+Port)访问点,但Kubernetes能够让我们通过服务连接到指定的Service 上。
有了Kubernetes内建的透明负载均衡和故障恢复机制,不管后端有多少服务进程,也不管某个服务进程是否会由于发生故障而重新部署到其他机器,都不会影响我们队服务的正常调用,更重要的是这个Service本身一旦创建就不会发生变化,意味着在Kubernetes集群中,我们不用为了服务的IP地址的变化问题而头疼了。
4-13-搭建Kubernetes的web管理界面-基于k8s搭建redis集群案例-笔记

第十三章搭建Kubernetes的web管理界面-基于k8s搭建redis集群案例本节所讲内容:13.1 部署Kubernetes Dashboard web界面13.1.1 创建dashboard-deployment.yaml deployment配置文件13.1.2 创建dashboard-service.yaml service配置文件13.1.3 准备kubernetes相关的镜像13.1.4 启动dashboard的deployment和service13.1.5 排错经验分享13.1.6 查看kubernetes dashboard web界面13.1.7 销毁web界面相关应用13.2 在kubernetes上面的集群上搭建基于redis和docker的留言簿案例13.2.1 创建Redis master deployment配置文件13.2.2 创建redis master service配置文件13.2.3 创建redis slave deployment配置文件13.2.4 创建slave service配置文件13.2.5 创建frontend guestbook deployment配置文件13.2.6 创建frontend guestbook service配置文件13.2.7 查看外部网络访问guestbook总结使用k8s集群的步骤:准备deployment和service 配置文件-》导入相关镜像-》启动deployment和service实验环境:将三台虚拟机还原到以下状态:最好每个节点给4G内存本地上传镜像到node1和node2上[root@node1 ~]# mkdir /root/k8s[root@node2 ~]# mkdir /root/k8s启动服务:[root@xuegod63 ~]# systemctl restart kube-apiserver kube-controller-manager kube-scheduler flanneld etcd[root@xuegod63 ~]# systemctl enable kube-apiserver kube-controller-manager kube-scheduler flanneld etcd查看环境:[root@master ~]# kubectl get nodeNAME STATUS AGEnode1 Ready 4dnode2 Ready 4d到此,说明我的kubernetes环境是正常。
服务器集群搭建

服务器集群搭建在当今的数字化时代,对服务器的需求与日俱增。
无论是大型企业,还是小型组织,都需要一个高效、稳定、可扩展的服务器架构来支持其业务运营。
然而,单一的服务器往往无法满足这些需求,因此我们需要搭建服务器集群,以提高服务器的性能、可用性和可扩展性。
一、服务器集群的概念服务器集群是由多台服务器组成的系统,通过负载均衡技术和网络设备将这些服务器整合成一个整体,以提供更高效、更稳定、更可扩展的服务。
当访问请求到来时,负载均衡器将根据预设的规则将请求分配给不同的服务器,从而平衡每台服务器的负载,提高整体性能。
二、搭建服务器集群的步骤1、确定需求在搭建服务器集群之前,我们需要明确我们的需求。
这包括我们需要支持多少用户,需要什么样的性能,需要多少存储空间等等。
这些需求将直接影响我们的服务器集群的设计。
2、选择合适的服务器选择合适的服务器是搭建服务器集群的重要步骤。
我们需要考虑服务器的性能、可用性、可扩展性等因素。
我们还需要考虑服务器的品牌、型号、配置等因素,以确保我们的服务器可以满足我们的需求。
3、安装操作系统和软件在每台服务器上安装相同的操作系统和软件是搭建服务器集群的必要步骤。
这可以确保我们的服务器具有一致的环境,从而避免由于环境差异导致的问题。
4、配置负载均衡器负载均衡器是服务器集群的核心组件之一。
我们需要选择一个适合我们的负载均衡器,并将其配置为根据预设的规则将请求分配给不同的服务器。
5、配置网络设备网络设备是服务器集群的重要组成部分。
我们需要配置网络设备,以确保服务器之间的通信畅通无阻。
这包括配置路由、交换机、防火墙等设备。
6、测试和优化在完成上述步骤后,我们需要进行测试和优化,以确保我们的服务器集群可以正常工作并达到预期的性能。
这包括对服务器进行压力测试、对负载均衡器进行监控和调整等。
三、总结搭建服务器集群是一个复杂的过程,需要考虑多种因素。
然而,通过合理的规划和正确的配置,我们可以构建一个高效、稳定、可扩展的服务器集群,以满足我们的需求并提供优质的服务。
k8s学习笔记-etcd介绍和集群搭建

k8s学习笔记-etcd介绍和集群搭建前⾔随着kubernetes项⽬的⽇益⽕热,该项⽬中⽤到的etcd组件作为⼀个⾼可⽤强⼀致性的服务发现存储仓库,渐渐的被开发⼈员所关注。
在云计算时代,如何让服务快速、透明的接⼊到计算集群中,如何让共享配置信息快速被集群中的所有节点发现,如何构建⼀套⾼可⽤、安全、易于部署以及快速响应的服务集群成为了需要解决的问题。
Etcd为解决这类问题带来便捷。
Etcd是什么Etcd是⼀个⾼可⽤的键值存储系统,主要⽤于共享配置和服务发现,它通过Raft⼀致性算法处理⽇志复制以保证强⼀致性,我们可以理解它为⼀个⾼可⽤强⼀致性的服务发现存储仓库。
在kubernetes集群中,etcd主要⽤于配置共享和服务发现Etcd主要解决的是分布式系统中数据⼀致性的问题,⽽分布式系统中的数据分为控制数据和应⽤数据,etcd处理的数据类型为控制数据,对于很少量的应⽤数据也可以进⾏处理。
Etcd和Zookeeper的⽐较Zookeeper有如下缺点1.复杂。
ZooKeeper的部署维护复杂,管理员需要掌握⼀系列的知识和技能;⽽Paxos强⼀致性算法也是素来以复杂难懂⽽闻名于世(ETCD使⽤[Raft]协议, ZK使⽤ZAB,类PAXOS协议);另外,ZooKeeper的使⽤也⽐较复杂,需要安装客户端,官⽅只提供了Java和C两种语⾔的接⼝。
2.Java编写。
这⾥不是对Java有偏见,⽽是Java本⾝就偏向于重型应⽤,它会引⼊⼤量的依赖。
⽽运维⼈员则普遍希望保持强⼀致、⾼可⽤的机器集群尽可能简单,维护起来也不易出错。
3.发展缓慢。
Apache基⾦会项⽬特有的在开源界饱受争议,其中⼀⼤原因就是由于基⾦会庞⼤的结构以及松散的管理导致项⽬发展缓慢。
相较之下,Etcd1.简单。
使⽤Go语⾔编写部署简单;使⽤HTTP作为接⼝使⽤简单;使⽤Raft算法保证强⼀致性让⽤户易于理解。
2.数据持久化。
etcd默认数据⼀更新就进⾏持久化。
kubernetes 教程

kubernetes 教程Kubernetes是一个开源的容器编排平台,用于自动化应用程序的部署、扩展和管理。
它提供了一个灵活且可扩展的框架,可以处理容器化应用程序的跨主机集群。
在这个教程中,我们将介绍Kubernetes的基本概念和术语,并演示如何设置和管理一个简单的Kubernetes集群。
1. 安装Docker和Kubernetes:首先,我们需要安装Docker和Kubernetes。
您可以按照官方文档上的指南进行安装。
2. 创建一个Kubernetes集群:接下来,我们将创建一个由多个节点组成的Kubernetes集群。
每个节点都是一个运行Kubernetes的主机。
3. 创建一个Pod:在Kubernetes中,Pod是最小的可部署单元。
我们将创建一个Pod,其中包含一个或多个容器。
4. 部署一个应用程序:一旦我们创建了Pod,我们可以使用Kubernetes部署我们的应用程序。
我们将展示如何使用Kubernetes的部署对象来实现这一点。
5. 扩展应用程序:当流量增加时,我们可能需要扩展我们的应用程序。
我们将使用Kubernetes的扩展功能来动态调整应用程序的副本数量。
6. 监控和日志记录:Kubernetes提供了一些工具来监控和记录我们的应用程序。
我们将了解如何使用这些工具来诊断和解决问题。
7. 升级和回滚应用程序:Kubernetes使得升级应用程序变得更加容易。
我们将展示如何执行无缝的应用程序升级和回滚操作。
总结:在这个教程中,我们了解了Kubernetes的基本概念和术语,并学习了如何设置和管理一个简单的Kubernetes集群。
通过实际操作,我们演示了如何创建Pod、部署应用程序、扩展应用程序、监控和日志记录以及升级和回滚应用程序。
希望这个教程对您的Kubernetes学习和实践有所帮助!。
数据库集群的架构与搭建

数据库集群的架构与搭建数据库在当今互联网时代扮演着至关重要的角色,随着数据量的增长和对高可用性和性能的要求不断提高,数据库集群的架构和搭建成为了不可或缺的组成部分。
在本文中,我们将深入讨论数据库集群的架构和搭建过程。
一、数据库集群的架构数据库集群可以理解为将多台服务器连接在一起,构建成一个整体,以实现高可用性、容灾备份和读写分离等功能。
常见的数据库集群架构包括主从复制、双主模式和分布式模式。
1. 主从复制主从复制是最常见的数据库集群架构。
它由一个主节点和若干个从节点组成。
主节点负责接收和处理所有的写操作请求,并将写操作的结果复制到从节点上,从节点只负责处理读操作请求。
主节点和从节点之间通过二进制日志(binlog)进行同步,保持数据的一致性。
主从复制可以提高读操作的性能,同时实现故障转移。
2. 双主模式双主模式是一种更加高可用的数据库集群架构。
它除了拥有两个主节点外,每个主节点还兼具从节点的功能。
双主模式能够在一个节点发生故障时无缝切换到另一个节点,实现故障转移,并减少单点故障带来的影响。
3. 分布式模式分布式模式是将数据分散到多个节点上,每个节点负责处理一部分数据,实现水平扩展。
在分布式模式下,数据存储在不同的节点上,通过分区和复制机制实现负载均衡和容灾备份。
分布式集群可以在数据量巨大、读写负载大或者需要水平扩展时提供高性能和高可用性。
二、数据库集群的搭建数据库集群的搭建过程涉及硬件设备的选购、网络配置、软件安装和配置等多个方面。
在以下几个步骤中,我们将简要介绍数据库集群的搭建过程。
1. 硬件设备选购根据项目需求和负载预估,选择适当的服务器和存储设备。
服务器需具备足够的计算能力和内存容量,存储设备需提供高速稳定的磁盘读写性能。
2. 网络配置保证集群中的所有节点能够相互通信是搭建数据库集群的前提条件。
每个节点需要配置固定的IP地址,并通过网络连接进行数据传输和同步。
3. 数据库软件安装选择合适的数据库软件,并按照官方提供的安装指南进行安装。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录 1 基础配置 ........................................................................................................................... 2 1.1. 版本信息: ................................................................................................................ 2 1.2. 修改hosts配置 ..................................................................................................... 2 1.3. yum源设置 ................................................................................................................ 2 1.3.1. Docker源: ........................................................................................................ 2 1.3.2. Kubernetes源:................................................................................................. 2 2 安装部署 ........................................................................................................................... 3 2.1 安装rpm包 ............................................................................................................... 3 2.2 启动集群 .................................................................................................................... 3 2.3 master安装 ............................................................................................................... 4 2.4 node安装 .................................................................................................................. 5 2.5 集群状态检查 ............................................................................................................ 5 3 集群插件 ........................................................................................................................... 6 3.1 weave配置网络 ........................................................................................................ 6 3.1.1 本地化镜像 ............................................................................................................ 6 3.1.2 创建weave ............................................................................................................ 6 3.1.3 状态检查 ................................................................................................................ 6 3.2 kubernetes-dashboard UI接口 ................................................................................. 7 3.2.1 修改容器配置 ........................................................................................................ 7 3.2.2 修改api接口 ......................................................................................................... 7 3.2.3 安装kubernetes-dashboard .................................................................................. 7 4 参考文档: ....................................................................................................................... 8 1 基础配置 1.1. 版本信息: Centos7.2 Docker1.12.5 Kubernetes1.4.1-0
1.2. 修改hosts配置 tee /etc/hosts <<-'EOF' 127.0.0.1 localhost 192.168.49.129 192-168-49-129.master 192.168.49.134 192-168-49-134.node1 192.168.49.135 192-168-49-135.node2 192.168.49.131 k8s-master docker-registry.com# 本地registry源 EOF
1.3. yum源设置
1.3.1. Docker源: tee /etc/yum.repos.d/docker.repo <<-'EOF' [dockerrepo] name=Docker Repository baseurl=https://yum.dockerproject.org/repo/main/centos/7/ enabled=1 gpgcheck=1 gpgkey=https://yum.dockerproject.org/gpg EOF
1.3.2. Kubernetes源: tee /etc/yum.repos.d/k8s.repo <<-'EOF' [kubelet] name=kubelet baseurl=http://files.rm-rf.ca/rpms/kubelet/ enabled=1 gpgcheck=0 EOF
2 安装部署
2.1 安装rpm包 yum install -y docker-engine etcd kubelet kubeadm kubectl kubernetes-cni ebtables
# ebtables kubeadm 初始化的时候会提示缺少安装包
[root@node2 ~]# kubeadm join --token=64bee1.5d2bcb46fa2c7f8b 192.168.49.129 Running pre-flight checks WARNING: docker service is not enabled, please run 'systemctl enable docker.service' preflight check errors: ebtables not found in system path
2.2 启动集群 services=(docker kubelet) for serviceName in ${ services[@]} ; do systemctl enable $serviceName systemctl start $serviceName done 2.3 master安装 准备工作本地缓存gcr.io镜像 images=(kube-proxy-amd64:v1.4.4 kube-discovery-amd64:1.0 kubedns-amd64:1.7 kube-scheduler-amd64:v1.4.1 kube-controller-manager-amd64:v1.4.1 kube-apiserver-amd64:v1.4.1 etcd-amd64:2.2.5 kube-dnsmasq-amd64:1.3 exechealthz-amd64:1.1 pause-amd64:3.0 kubernetes-dashboard-amd64:v1.4.1) for imageName in ${images[@]} ; do docker pull mritd/$imageName docker tag mritd/$imageName gcr.io/google_containers/$imageName docker rmi mritd/$imageName done # Kubernetes安装版本1.4.1,支持容器镜像包也是1.4.1,其他版本需要额外查找,