Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >云平台数据库架设流程是什么

云平台数据库架设流程是什么

提问于 2024-11-18 17:43:30
回答 1关注 0查看 7

回答 10

三进制

精选回答

发布于 2018-08-30 21:09:51

用简单的一张图来回答吧:

删除

首先我们需要明白图中几个意思,从内向外看:

container

包含在Pod下,可以是docker镜像。

Pods

在Kubernetes系统中,调度的最小颗粒不是单纯的容器,而是抽象成一个Pod,Pod是一个可以被创建、销毁、调度、管理的最小的部署单元。比如一个或一组容器。

Labels

Labels是用于区分Pod、Service、Replication Controller的key/value键值对,仅使用在Pod、Service、 Replication Controller之间的关系识别,但对这些单元本身进行操作时得使用name标签。

Node

节点是是物理或者虚拟机器,作为Kubernetes worker,通常称为Minion。

Services

Service 是后端真实服务的抽象,一个 Service 可以代表多个相同的后端服务,Services是Kubernetes最外围的单元,通过虚拟一个访问IP及服务端口,可以访问我们定义好的Pod资源。

Kubernetes Master

集群拥有一个Kubernetes Master。Kubernetes Master提供集群的独特视角,并且拥有一系列组件,比如Kubernetes API Server。API Server提供可以用来和集群交互的REST端点。master节点包括用来创建和复制Pod的Replication Controller。

举例

没有容器编排

我们按照水闸来举例,在没有容器编排前,我们先做下定义,container=docker镜像=一个水库,先前没有容器编排前,是这样子的。ABC三个城市(三个用户)共用一个水库(container),经常遇到的问题是这个水库流量达不到ABC三个城市的要求,供给A,B没水喝,供给B,C没水喝,夏天用水较大时,水库不堪重负,那么,如何解决这个问题呢?我能不能设置设置一个调度站呢?

有容器编排

那么,调度站就是kubernetes,调度站如何解决这个问题?我们向下看

现在,我们把水库做下划分,把多个水库按地区划分出来,这个地区可能是城市A,城市A旁边有两个水库,那么我就把这个两个水库划分给城市A,这个地区划分我们就可以成为pod,一个pod可以包含多个水库(container)。

水库划分了,接下来就是定义标签了,所谓标签就是Labels,标签标示这个区域所在的位置所处的水资源的情况,比如含盐量,矿物量等。

接下来我们看看node,node直译是节点,我们可以理解为省,省里面包含了多少区域(城市),一个城市的含水量(水库)。

最后是Services,我们可以理解为水库调度管理员,他直接对接的是缺水的城市(用户),对用户来说,server后面是无感知的,我要多少水你就给我想办法,调度多少水资源,而且你要想到kubernetes是有魔法的,可以无限复制水库,区域水库等,所以对城市来说(用户)永远不会缺水。这就是kubernetes的魅力和优势。

以上是本人的理解,可能稍有偏差,希望不对的地方大家评论指出,谢谢!

MOISTG

发布于 2018-08-30 23:45:41

虽然对k8s理论不熟,但是我可以给大家写写如何部署Kubernetes,在你的电脑上运行Kubernetes

Kubernetes 是编配平台的首选。在开发过程中,您不妨在个人电脑上运行 Kubernetes,以便在本地启动和调试应用程序。本文提供了两种在 Mac OS X 机器本地运行 Kubernetes 的方法:常用的 MinikubeDocker for Mac 中新引入的 Kubernetes 支持。其他平台的操作指南可登录 Minikube 和 Docker 网站查找。我们开始吧!

安装 kubectl

Kubectl 是对 Kubernetes 集群运行命令的 CLI 命令行界面 (CLI)。首先安装:

在 Mac OS X 上安装 kubectl:

代码语言:javascript
运行
AI代码解释
复制
brew install kubernetes-cli

如果已经安装 kubectl,您可能需要对其进行升级:

代码语言:javascript
运行
AI代码解释
复制
brew upgrade kubernetes-cli

打印版本信息:

代码语言:javascript
运行
AI代码解释
复制
$ kubectl version --client --short=true
Client Version: v1.8.5

默认情况下,kubectl version 命令会打印客户端和服务器版本。 --client 确保只打印客户端版本,因为此时没有正在运行的集群。 --short 选项允许您仅打印版本号。

现在已经安装了 kubectl,我们来看一下这两种可以在本地机器上运行 Kubernetes 集群的方法。

使用 Minikube 设置 Kubernetes 集群

在笔记本电脑上,Minikube 在虚拟机 (VM) 内部运行单节点 Kubernetes 集群,为有兴趣使用 Kubernetes 的用户提供本地开发和测试环境。

Minikube VM 使用 VirtualBox 进行预置。如果您的机器上尚未安装 VirtualBox,则需要先执行以下操作:

代码语言:javascript
运行
AI代码解释
复制
brew cask install virtualbox

现在安装 Minikube:

代码语言:javascript
运行
AI代码解释
复制
brew cask install minikube

如果已经安装了 Minikube,可以使用以下命令进行升级:

代码语言:javascript
运行
AI代码解释
复制
brew cask reinstall minikube

查看 Minikube 的版本:

代码语言:javascript
运行
AI代码解释
复制
~ $ minikube version
minikube version: v0.24.1

启动 Minikube:

代码语言:javascript
运行
AI代码解释
复制
~ $ minikube start
Starting local Kubernetes v1.8.0 cluster...
Starting VM...
Downloading Minikube ISO
140.01 MB / 140.01 MB [============================================] 100.00% 0s
Getting VM IP address...
Moving files into cluster...
Downloading localkube binary
148.25 MB / 148.25 MB [============================================] 100.00% 0s
0 B / 65 B [----------------------------------------------------------] 0.00%
65 B / 65 B [======================================================] 100.00% 0sSetting up certs...
Connecting to cluster...
Setting up kubeconfig...
Starting cluster components...
Kubectl is now configured to use the cluster.
Loading cached images from config file.

该命令会下载 ISO 文件,创建 VM 并预置 Kubernetes 组件,以启动单节点集群。默认情况下,集群配置和凭证存储在 ~/.kube/config 文件中。可以使用以下命令查看不同集群的环境:

代码语言:javascript
运行
AI代码解释
复制
~ $ kubectl config get-contexts
CURRENT  NAME       CLUSTER     AUTHINFO NAMESPACE
*        minikube   minikube    minikube

如您所见,到目前为止我们只创建了一个 Kubernetes 集群。如果已经创建了多个集群,会在该命令下全部列出。

第一列中的 * 也表示这是当前环境;所有的 kubectl 命令将指向该集群。例如,您可以查看集群中的节点:

代码语言:javascript
运行
AI代码解释
复制
~ $ kubectl get nodes
NAME     STATUS ROLES   AGE   VERSION
minikube Ready  <none>  1m    v1.8.0

kubectl version 命令现在可以用于打印客户端和服务器版本:

代码语言:javascript
运行
AI代码解释
复制
~ $ kubectl version --short=true
Client Version: v1.8.5
Server Version: v1.8.0

所有常用的 kubectl 命令现在都可以在该集群中应用。

使用 Docker for Mac 设置 Kubernetes 集群

Docker for Mac/Docker for Windows 可帮助有兴趣使用 Docker 的开发人员迈出第一步。可以下载 Docker for Mac 的 Stable (稳定) 或 Edge (优势) 版。Stable (稳定) 版已经过全面检验和测试,并附带最新的 Docker GA 版本。正如其名,Edge (优势) 版提供最新的、最先进的功能。此类功能中的一项已作为 Docker CE Edge (优势) 版 17.12.0-Ce-rc2-mac41内部测试 的一部分引入,它支持开发和测试所用的单节点 Kubernetes 集群。

也就是说,无需 Minikube 等其他工具,您即可使用相同的 Docker for Mac 来创建 Docker 映像、启用 Kubernetes 集群并部署 pod。截至本文发表时,仅 Q1 中的 Docker for Mac 和 Docker for Windows 支持此功能。(Docker 企业版也支持 Kubernetes。)

我们来了解一下如何使用 Docker for Mac 设置本地 Kubernetes 集群。

要从 Docker for Mac 访问 Kubernetes,您需要注册 Docker Beta 项目。在您的 Docker ID 被批准用于 Kubernetes 访问之后,您会收到一个链接,供您下载并安装 Docker for Mac Edge (优势) 版。确保 “关于 Docker” 显示为 12.12.0-ce-rc2-mac31 或更高版本。现在,在 “首选项” 对话框中会出现一个新的选项卡,用于配置 Kubernetes 集群。

选择 “Enable Kubernetes”(启用 Kubernetes),然后点击 “Apply & Restart”(应用并重启), 启动一个单节点 Kubernetes 集群。

稍后,除了 Docker 之外,状态栏也会更新,说明 Kubernetes 正在运行。

还将在 ~/.kube/config的默认文件中为集群创建一个配置。kubectl CLI 会显示配置,如下所示:

代码语言:javascript
运行
AI代码解释
复制
~ $ kubectl config get-contexts
CURRENT  NAME               CLUSTER                    AUTHINFO            NAMESPACE
*        minikube           minikube                   minikube
         docker-for-desktop docker-for-desktop-cluster docker-for-desktop

更改 kubectl 使用的环境,验证当前环境,并获取节点列表:

代码语言:javascript
运行
AI代码解释
复制
~ $ kubectl config use-context docker-for-desktop
Switched to context "docker-for-desktop".
~ $ kubectl config get-contexts 
CURRENT NAME               CLUSTER                     AUTHINFO NAMESPACE 
*       docker-for-desktop docker-for-desktop-cluster  docker-for-desktop 
        minikube           minikube                    minikube 
~ $ kubectl get nodes 
NAME               STATUS  ROLES    AGE   VERSION 
docker-for-desktop Ready   master   23h   v1.8.2

现在, docker version 命令将 Kubernetes 显示为编配器:

代码语言:javascript
运行
AI代码解释
复制
~ $ docker version
Client:
 Version: 17.12.0-rc1-kube_beta
 API version: 1.35
 Go version: go1.9.2
 Git commit: a36c9215a7f8d5da5231d2cca353375bcb27efe3
 Built: Thu Dec 7 17:33:49 2017
 OS/Arch: darwin/amd64
 Orchestrator: kubernetes
 
Server:
 Engine:
  Version: 17.12.0-ce-rc2
  API version: 1.35 (minimum version 1.12)
  Go version: go1.9.2
  Git commit: f9cde63
  Built: Tue Dec 12 06:45:30 2017
  OS/Arch: linux/amd64
  Experimental: true

注意: Kubernetes 显示为编配器,与默认的 swarm相反。

您现在只需一个工具即可拥有最新的 Kubernetes 计划程序和最新的 Docker 运行时!

我们使用 kubectl version 命令查看客户端和服务器版本:

代码语言:javascript
运行
AI代码解释
复制
~ $ kubectl version --short=true
Client Version: v1.8.2
Server Version: v1.8.0

再重复一次,所有常用的 kubectl 命令都可以在此集群上运行。除了使用所有熟悉的 kubectl 命令外,您还可以将 Docker Compose 堆栈部署为最佳 Kubernetes 应用程序。

但是,对于生产环境,我推荐您使用腾讯云容器实例服务,容器实例服务(Container Instance Service , CIS)可以帮您在云上快捷、灵活的部署容器,让您专注于构建程序和使用容器而非管理设备上。无需预购 CVM,您就可以在几秒内启动一批容器来执行任务。您也可以通过 kubernetes API 把已有kubernetes 集群的 pod 调度到 CIS 上以处理突增业务。CIS 根据您实际使用的资源计费,可以帮您节约计算成本。使用 CIS 可以极大降低您部署容器的门槛,降低您执行 batch 型任务或处理业务突增的成本。更多Linux教程请前往腾讯云+社区学习更多知识。

参考文献:《OpenSource | 在你的电脑上运行Kubernetes》

BlackKnight

发布于 2018-08-31 04:19:53

Kubernetes 是Google开源的容器集群管理系统,基于Docker构建一个容器的调度服务,提供资源调度、均衡容灾、服务注册、动态扩缩容等功能套件。很有用!

和开发者交流更多问题细节吧,去 写回答
相关文章
kubernetes 容器编排系统介绍
小时光
2016/10/17
15K2
kubernetes 容器编排系统介绍
全面解析容器编排技术 Kubernetes
之所以有容器编排技术,其实是和业务量与系统复杂度与日俱增推动服务部署的演进方式息息相关的,下图是服务部署方式的演进过程。
架构精进之路
2022/03/29
4.3K0
全面解析容器编排技术 Kubernetes
Kubernetes运维之容器编排StatefulSet
StatefulSet是为了解决有状态服务的问题(对应Deployments和ReplicaSets是为无状态服务而设计),其应用场景包括
王先森sec
2023/04/24
3390
Kubernetes vs. Mesos:选择容器编排工具
容器编排在今天风靡一时并不是什么大秘密。作为许多文章和会议的主题,它有时似乎是唯一值得讨论的话题。
February
2018/11/27
1.6K0
Kubernetes运维之容器编排Deployment详解
一个 Deployment 为 Pods 和 ReplicaSets提供声明式的更新能力
王先森sec
2023/04/24
2400
Kubernetes运维之容器编排Deployment详解
01 . 容器编排简介及Kubernetes核心概念
``docker run -H " 我的 Swarm 集群 API 地址 " " 我的容器 "`
iginkgo18
2020/09/27
1.2K0
01 . 容器编排简介及Kubernetes核心概念
Kubernetes运维之容器编排基础Pod编写
Pod (就像在鲸鱼荚或者豌豆荚中)是一组(一个或多个) 容器; 这些容器共享存储、网络、以及怎样运行这些容器的声明。 Pod 中的内容总是并置(colocated)的并且一同调度,在共享的上下文中运行。 Pod 所建模的是特定于应用的“逻辑主机”,其中包含一个或多个应用容器, 这些容器是相对紧密的耦合在一起的。 在非云环境中,在相同的物理机或虚拟机上运行的应用类似于 在同一逻辑主机上运行的云应用。
王先森sec
2023/04/24
3860
Cycle推出裸机容器编排器以取代Kubernetes
Cycle.io正在将其新开发的裸机容器编排平台应用于Packet的裸机计算、网络和存储资源,该组合针对的是那些既希望享受容器的所有优势,又不想陷入Kubernetes泥潭的企业。 与传统的容器编排器
SDNLAB
2018/06/11
9800
Kubernetes(K8s) —— 容器编排管理技术
kubeadm 是官方社区推出的一个用于快速部署 kubernetes 集群的工具,这个工具 能通过两条指令完成一个 kubernetes 集群的部署:
时间静止不是简史
2021/08/12
11.9K1
Kubernetes(K8s) —— 容器编排管理技术
Kubernetes运维之容器编排高级Pod编写
创建 Pod 时,可以为其下的容器设置环境变量。通过配置文件的 env 或者 envFrom 字段来设置环境变量。
王先森sec
2023/04/24
6900
Kubernetes解析:从基础到实践,掌握容器编排的艺术
Kubernetes(通常简称为K8s)是一个强大的容器编排平台,用于自动化、扩展和管理容器化应用程序。它已经成为现代云原生应用开发和部署的标准工具。本文将深入探讨Kubernetes,从基础知识到实际实践,为您提供全面的了解,并提供带有实际代码示例的指南。
海拥
2023/09/17
2520
K8S & Kubernetes 谷歌开源容器编排工具
本质是:一组服务器集群,他在每个服务器的节点上运行特定的程序,来对节点中的容器管理。实现资源管理的自动化!
收心
2022/01/19
5050
Kubernetes VS Docker:了解2021年的容器
几个星期前,Kubernetes开发团队宣布,他们正在弃用docker。这则新闻通过科技界和社交网络广为流传。Kubernetes 群集是否会中断,如果是,我们将如何运行我们的应用程序?我们现在该怎么办?今天,我们将审查所有这些问题和更多。
玄姐谈AGI
2021/07/06
1.6K0
Kubernetes VS Docker:了解2021年的容器
Kubernetes 编排系统
1.1 Kubernetes简介 1.1.1 什么是Kubernetes Kubernetes (通常称为K8s,K8s是将8个字母“ubernete”替换为“8”的缩写) 是用于自动部署、扩展和管理
惨绿少年
2018/03/30
3.1K1
走马观花云原生技术(10):容器编排Kubernetes (下)
大约在几年以前,容器编排还存在一些竞争,比如Kubernetes,Docker Swarm等。但是,从现在的情况来说,Kubernetes几乎占据绝对的主流,成为了容器编排事实上的标准。
御剑
2022/11/18
4060
走马观花云原生技术(9):容器编排Kubernetes(上)
其实,严格说来,容器编排Kubernetes,简称K8S,是CNCF(云原生计算基金会)的最核心的项目。几乎其它所有技术都是建立在K8S基础之上,丰富与扩展K8S的能力。
御剑
2022/11/18
3990
走马观花云原生技术(9):容器编排Kubernetes(上)
Kubernetes运维之容器编排Deployment动态扩缩容
HPA(Horizontal Pod Autoscaler)的实现是一个控制循环,由controller manager的–horizontal-pod-autoscaler-sync-period参数指定周期(默认值为15秒)。每个周期内,controller manager根据每个HorizontalPodAutoscaler定义中指定的指标查询资源利用率。controller manager可以从resource metrics API(pod 资源指标)和custom metrics API(自定义指标)获取指标。
王先森sec
2023/04/24
1.2K0
Kubernetes运维之容器编排Deployment动态扩缩容
【容器云架构】了解 Kubernetes 网络模型
Kubernetes 网络使您能够在 k8s 网络内配置通信。它基于扁平网络结构,无需在主机和容器之间映射端口。 Kubernetes 网络支持容器化组件之间的通信。这种网络模型的主要优点是不需要在主机和容器之间映射端口。然而,配置 Kubernetes 网络模型并不是一件容易的事。在本文中,您将了解什么是 Kubernetes 网络,探索常见的实现,并发现关键的 Kubernetes 网络变化。 什么是 Kubernetes 网络? Kubernetes (k8s) 是一个开源容器编排平台。您可以使用
架构师研究会
2022/03/08
9060
通过重新构建Kubernetes来实现更具弹性的容器编排系统
译自:rearchitecting-kubernetes-for-the-edge
charlieroro
2022/09/21
5110
Kubernetes运维之容器编排Deployment更新机制
滚动升级是默认的更新策略,它在删除一部分旧版本Pod资源的同时,补充创建一部分新版本的Pod对象进行应用升级,其优势是升级期间,容器中应用提供的服务不会中断,但要求应用程序能够应对新旧版本同时工作的情形,例如新旧版本兼容同一个数据库方案等。不过,更新操作期间,不同客户端得到的响应内容可能会来自不同版本的应用。
王先森sec
2023/04/24
5230
Kubernetes运维之容器编排Deployment更新机制

相似问题

微服务(容器服务)发布编排?

0474

如何把容器实例服务接入到用户自建的kubernetes集群?

1243

关于梯度下降函数有没有比较通俗易懂的解释?

1129

可以用通俗的话来解释JSONP是什么吗?

2875

有哪些通俗易懂的例子可以解释 IAAS、SAAS、PAAS 的区别?

11.7K
相关问答用户
新浪微博 | 高级总监擅长4个领域
萃橙科技 | 合伙人擅长4个领域
腾讯 | 技术专家擅长2个领域
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档