搭建及使用K8s集群 <简介>

搭建及使用K8s集群 <简介>

  • 1. Docker
  • 2. Kubernetes
  • 3. Flannel—-docker网络解决方案
  • 4. ETCD—-高可用、强一致性的服务发现存储仓库
  • 5. k8s-dashboard—-webUI
  • 6. k8s-DNS——-服务发现
  • 7. k8s-ingress—–对外暴露访问的负载均衡

概述

docker是虚拟化引擎,kubernetes是管理docker集群的应用,flannel是打通docker集群通讯的应用,etcd是配合flannel使用的,用来存储flannel的配置,k8s-dashboard k8s-DNS k8s-ingress 都是基于pods部署的应用,dashboard 是可操作的web界面,dns为了解析service的ip,ingress 为了向外部提供服务。

1. Docker

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。 —— [ 转自-百度百科]

2. Kubernetes

Kubernetes是Google开源的容器集群管理系统。它构建Ddocker技术之上,为容器化的应用提供资源调度、部署运行、服务发现、扩容缩容等整一套功能,本质上可看作是基于容器技术的mini-PaaS平台。本文旨在梳理Kubernetes的架构、概念及基本工作流,并且通过运行一个简单的示例应用来介绍如何使用Kubernetes。 —— [ 转自博客-天外有菌]

Kubernetes 总体概览:
Kubernetes总体概览

Kubernetes 总体架构:
总体架构

相关文章
http://www.csdn.net/article/2014-10-31/2822393
https://kubernetes.io/docs/home/

3. Flannel—-docker网络解决方案

在Container Cloud环境中,跨机器的容器互连一直是讨论的热点;Kubernetes的官方网站也提供了几种备选方案,如 L2网络, Flannel, OpenVSwitch等。本文主要描述Flannel在Kubernetes网络中的应用。

Flannel是CoreOS团队针对Kubernetes设计的一个网络规划服务;简单来说,它的功能是让集群中的不同节点主机创建的Docker容器都具有全集群唯一的虚拟IP地址,并使Docker容器可以互连。

相关文章
http://geek.csdn.net/news/detail/65804

4. ETCD—-高可用、强一致性的服务发现存储仓库

ETCD是用于共享配置和服务发现的分布式,一致性的KV存储系统。该项目目前最新稳定版本为2.3.0. 具体信息请参考[项目首页]和[Github]。ETCD是CoreOS公司发起的一个开源项目,授权协议为Apache。

提供配置共享和服务发现的系统比较多,其中最为大家熟知的是[Zookeeper](后文简称ZK),而ETCD可以算得上是后起之秀了。在项目实现,一致性协议易理解性,运维,安全等多个维度上,ETCD相比Zookeeper都占据优势。

相关文章
https://yq.aliyun.com/articles/11035
https://coreos.com/etcd/
http://blog.csdn.net/shukebai/article/details/53464887

5. k8s-dashboard—-webUI

k8s集群的控制台,pod 方式部署

相关文章
https://kubernetes.io/docs/tasks/access-application-cluster/web-ui-dashboard/

6. k8s-DNS——-服务发现

因为docker 容器的ip是动态的,导致多个服务之间无法相互调用,k8s dns 就是为了解决该问题,服务地址采用以 k8s service的名称代替IP,调用服务时,dns会根据service的名称解析成对应pod的ip,这样应用就不用关心ip地址了

相关文章
http://blog.csdn.net/styshoo/article/details/69941606

7. k8s-ingress—–对外暴露访问的负载均衡

docker内部网络使用flannel打通了,各容易之间可以互相通信了,但是怎么向外提供服务呢,答:ingress

Ingress也是k8s中单独定义的对象(如下图所示),它的作用就是实现对外暴露访问的负载均衡,那么它和Service本身LoadBalancer有哪些区别呢?Ingress支持L4、L7负载均衡,LoadBalancer设计上只支持L4;Ingress基于Pod部署,并将Pod网络设置成external network;Ingress controller支持Nginx、Haproxy、GCE-L7,能够满足企业内部使用。

相关文章
http://blog.csdn.net/rancherlabs/article/details/53991992
http://www.cnblogs.com/ericnie/p/6965091.html
http://blog.csdn.net/yevvzi/article/details/53844512
http://blog.csdn.net/yevvzi/article/details/53858220

  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
搭建 Docker KubernetesK8s集群,你可以按照以下步骤进行操作: 1. 安装 Docker:在每个节点上安装 Docker,可以按照 Docker 官方文档的指引进行安装。确保所有节点上都安装了相同版本的 Docker。 2. 安装 Kubernetes:可以使用各个操作系统的包管理器(如 apt、yum 等)或者直接下载二进制文件来安装 Kubernetes。你可以参考 Kubernetes 官方文档中的安装指南。 3. 初始化 Master 节点:选择其中一个节点作为 Master 节点,运行以下命令初始化: ``` kubeadm init ``` 这将生成一个 Token 和一个命令,用于其他节点加入集群。 4. 加入 Worker 节点:在其他节点上运行初始化命令生成的加入命令,将它们加入集群。例如: ``` kubeadm join <master-ip>:<master-port> --token <token> --discovery-token-ca-cert-hash <hash> ``` `<master-ip>` 和 `<master-port>` 是 Master 节点的 IP 地址和端口,`<token>` 和 `<hash>` 是初始化命令生成的 Token 和哈希值。 5. 配置 Kubectl:在你的本地机器上安装并配置 Kubectl,可以按照 Kubernetes 官方文档中的指引进行操作。这将允许你与集群进行交互。 6. 部署应用:使用 Kubernetes 的 YAML 配置文件编写应用的部署描述,并使用以下命令在集群上部署应用: ``` kubectl apply -f <deployment-file> ``` `<deployment-file>` 是应用的部署描述文件的路径。 7. 扩展和管理集群使用 Kubectl 命令扩展、更新、删除应用,以及管理集群中的节点和资源。例如: - 扩展应用的副本数:`kubectl scale deployment <deployment-name> --replicas=<replica-count>` - 更新应用:`kubectl apply -f <updated-deployment-file>` - 删除应用:`kubectl delete deployment <deployment-name>` - 查看集群状态:`kubectl get nodes`、`kubectl get pods` 等 这些步骤可以帮助你搭建一个简单的 Docker KubernetesK8s集群。你可以根据实际需求进行配置和管理。如果需要更详细的指导,可以参考 Kubernetes 官方文档中的相关内容。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值