Kubernetes 实战教学,手把手教您设置拥有5个节点的 K8S 群集(无需搭建任何基础设施) ...

screenshot

出品丨Docker公司(ID:docker-cn)
编译丨小东
每周一、三、五,与您不见不散!


您是 Kubernetes新手吗?想用 Kubernetes 开创自己的事业吗?如果想,那么欢迎您,您来对地方了。本系列文章将为您提供帮助您使用 Kubernetes 获得实践经验的教程。在这里,您可以找到各种实验和教程,无论您是初学者、系统管理员、IT 专业人员还是开发人员,都可以为您提供帮助。而且,这是一个基于浏览器的免费学习平台,已经为您安装了 kubenetes 工具,如kubeadm、kompose 和 kubectl,您不需要额外增加任何基础设施,因为大多数教程都在 Play with K8s Platform 上(https://labs.play-with-k8s.com)运行。

Kubernetes(通常缩写为K8S)用于管理云平台中多个主机上的容器化的应用。Kubernetes 是自动化容器操作的开源平台,这些操作包括部署、调度和节点集群间扩展。在Kubernetes中,我们可以创建多个容器,每个容器里面运行一个应用实例,然后通过内置的负载均衡策略,实现对这一组应用实例的管理、发现和访问,而这些细节都不需要运维人员去进行复杂的手工配置和处理。

Kubernetes可以通过简单、自动化的部署、更新(滚动更新)以及几乎零停机时间来管理我们的应用程序和服务,大大加速开发过程。它还提供自我修复,当进程在容器内崩溃时,Kubernetes 可以检测并重新启动服务。任何开发人员都可以使用基本的 Docker 知识,打包应用程序并将其部署在 Kubernetes 上。

在一分钟内,Kubernetes 就可以在物理或虚拟机集群上安排和运行应用程序容器。Kubernetes还允许开发人员“切断”物理机和虚拟机的联系,从以主机为中心的基础设施转移到以容器为中心的基础设施,从而为您提供容器本身固有的全部优势。Kubernetes 提供了构建真正以容器为中心的开发环境基础设施。K8s 为容器分组、容器编排、健康检查、服务发现、负载平衡、水平自动扩展、隐私、配置管理、存储编排、资源使用监控、CLI和仪表板提供了丰富的功能。

这是第一篇针对设置5节点 Kubernetes 集群的文章。要开始使用 Kubernetes,请按照以下步骤操作:

在浏览器上打开 https://labs.play-with-k8s.com

点击“Start”按钮,进入PWK实例,如下图所示:

screenshot

点击“Add Instances” 来设置第一个 k8s 节点。

screenshot

克隆镜像仓库

git clone https://github.com/ajeetraina/kubernetes101/

cd kubernetes101/install

引导第一个节点集群

sh bootstrap.sh

添加新的 K8s 群集节点

  • 点击“Add Instances” 来设置第一个 k8s 集群节点。
  • 等待1分钟直到完成。
  • 复制以“kubeadm join”开头的命令,我们需要在工作节点上运行它。

设置工作节点

单击“Add New Instance”并将最后一个 kubeadm 命令粘贴到这个新的新工作节点上。

[node2 ~]$ kubeadm join --token 4f924f.14eb7618a20d2ece 192.168.0.8:6443 --discovery-token-ca-cert-hash sha256:a5c25aa4573e06a0c11b11df23c8f85c95bae36cbb07d5e7879d9341a3ec67b3

您将看到以下输出结果:

[kubeadm] WARNING: kubeadm is in beta, please do not use it for production clusters.

[preflight] Skipping pre-flight checks[discovery] Trying to connect to API Server "192.168.0.8:6443"

[discovery] Created cluster-info discovery client, requesting info from "https://192.168.0.8:6443"

[discovery] Requesting info from "https://192.168.0.8:6443" again to validate TLS against the pinned public key

[discovery] Cluster info signature and contents are valid and TLS certificate validates against pinned roots, will use API Server "192.168.0.8:6443"[discovery] Successfully established connection with API Server "192.168.0.8:6443"

[bootstrap] Detected server version: v1.8.15

[bootstrap] The server supports the Certificates API (certificates.k8s.io/v1beta1)

Node join complete:

  • Certificate signing request sent to master and response

received.

  • Kubelet informed of new secure connection details.

Run 'kubectl get nodes' on the master to see this machine join.

[node2 ~]$

验证 Kubernetes 集群

在主节点上运行以下命令:

[node1 ~]$ kubectl get nodes

NAME STATUS ROLES AGE VERSION

node1 Ready master 15m v1.10.2

node2 Ready 1m v1.10.2

[node1 ~]$

添加工作节点

[node1 ~]$ kubectl get nodes

NAME STATUS ROLES AGE VERSION

node1 Ready master 58m v1.10.2

node2 Ready 57m v1.10.2

node3 Ready 57m v1.10.2

node4 Ready 57m v1.10.2

node5 Ready 54s v1.10.2

[node1 ]$ kubectl get po

No resources found.

[node1 ]$ kubectl get svc

NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE

kubernetes ClusterIP 10.96.0.1 443/TCP 1h

[node1 ]$

在下一篇文章,我将展示如何在5节点的 Kubernetes 集群上构建一个简单的 Nginx 应用程序。

来源:https://yq.aliyun.com/articles/680865


智能推荐

【kubernetes/k8s 部署】minikube 与 kubernetes 搭建

前言 准备工作  1. docker       安装 Docker              分为开源免费的 CE(Community Edition)版本和收费的 EE(Enterprise Edition)版本。      配置 Docker ...

《企业级K8s集群运维实战:Kubernetes基础组件》

文章目录 一、kubernetes架构图 二、kubernetes基础组件 2.1、Master组件 2.1.1、kube-apiserver 2.1.2、kube-controller-manager 2.1.3、kube-scheduler 2.1.4、etcd 2.1.5、cloud-controller-manager 2.2、Node组件 2.2.1、kubelet 2.2.2、kube...

【生产环境K8S从搭建到运维的实录(四)】Kubernetes Cluster

【生产环境K8S从搭建到运维的实录(四)】Kubernetes Cluster的设计 1.前言 Kubernetes Cluster无疑是我们系统里的主角了,毕竟最终我们的服务都是要运行在它上边。所以在搭建kubernetes Cluster前 ,做好规划是非常重要的。这次我们就说一说设计Kubernetes Cluster的时候要考虑哪些东西。 2.一个简单的Kubernetes Cluster...

k8s基础-2-Kubernetes的整体架构(Master Node)

1、Kubernetes的整体架构 Kubernetes属于主从分布式架构,主要由Master Node和Worker Node组成,以及包括客户端命令行工具kubectl和其它附加项。 Master Node:作为控制节点,对集群进行调度管理;Master Node由API Server、Scheduler、Cluster State Store和Controller-Man...

进击的K8S(一) - Kubernetes基础概念(上)

欢迎访问我的个人博客:https://midoq.github.io/ Kubernetes简介 Kubernetes简称K8S(因为k和s中间有8个字母),是一个开源的容器集群管理平台,基于Go语言编写。 使用K8S,将简化分布式系统上的容器应用部署,使得开发人员可以专注于业务软件,而非较为底层的负载均衡、服务监控等。因此,可以认为它是介于操作系统软件和应用软件之间的”中间件&ldq...

猜你喜欢

【生产环境K8S从搭建到运维的实录(二)】K8S Control System自动搭建和管理Kubernetes Cluster

【生产环境K8S从搭建到运维的实录(二)】Control System自动搭建和管理Kubernetes Cluster 1.前述 在现在这个自动化火热的时代,任何事情似乎都会考虑能否自动化,减少人工作业。软件开发和系统搭建也不例外,产生了很多自动化的工具,当我们想要搭建一个几十台甚至几百台服务器的大型系统的时候,使用自动化工具也确实会提高工作效率、减少人为错误,这使得我们似乎没有理由不去使用它。...

centos7.6搭建K8s(Kubernetes)

基于kubeamd方式部署K8s解决方案 Master:192.168.0.26 node1:192.168.0.191 node2:192.168.0.94 一、初始化操作 1、首先关闭三台服务器的防火墙 systemctl stop firewalld #永久关闭 systemctl disable firewalld #永久关闭 永久关闭selinux sed -i ‘s/enf...

无意中发现看书也是一种美

2012年4月25日晚,翻翻自己喜欢的一门语言学习书(python参考手册),无意中发现书中夹着之前的明信片(有一次和同事一起去前门邓丽君音乐生活馆留下来的),感觉学习也是一种美!于是乎拍下这不经意的时刻,哈哈!...

香橙派OrangePi PC Plus开发板连接USB以太网卡测试说明

1) 目前测试过能用的 USB 以太网卡如下所示,其中 RTL8153 USB 千兆网卡插入开 发板的 USB 2.0 Host 接口中测试可以正常使用,但是速率是达不到千兆的,这点请 注意   2) 首先将 USB 网卡插入开发板的 USB 接口中,然后在 USB 网卡中插入网线,确 保网线能正常上网,如果通过 dmesg 命令可以看到下面的 log 信息,说明 USB 网卡...

计算机网络基础:Vlan,网关,dns吗,子网掩码等!面试必备!

很多朋友多次问到什么是网关、dns、子网掩码,三层交换机,它们定位的用途;确实,因为网络技术在弱电中确实应用非常广泛,我们平时在 vip 技术群中也是不断的讨论到网关、vlan、三层交换机或子网掩码等问题,今天我们就一起用通俗方式一次性了解清楚。 一、什么是 vlan? VLAN 中文是 “虚拟局域网”。LAN 可以是由少数几台家用计算机构成的网络,也可以是数以百计的计算机...

问答精选

How to extract beta coefficients for interaction effect in R?

I am examining the interaction between a continuous variable (bloodq) and a categorical variable with three levels (ER, RB, and WB). In order to see how the betas differ across tissue types, I would l...

what is the difference between Flatten() and GlobalAveragePooling2D() in keras

I want to pass the output of ConvLSTM and Conv2D to a Dense Layer in Keras, what is the difference between using global average pooling and flatten Both is working in my case. That both seem to work d...

How to invoke a test step with inputs at runtime from groovy script in SOAP UI?

I am writing a validation groovy script for a test step, intended to test a SOAP Web Service. Now, I want to call the same test step, with different input value from the groovy script. Is it possible?...

Wicket pagestore results wrong page

I have a problem with my web application with wicket. I am using wicket 6.14. I can't say exactly what the problem is, but I can describe the problem. I am using a self written pagestore, which uses h...

Unity load files from outside of resources folder

In unity is it possible to load a resource that is out side of the resources folder. I want the user to be able to set a textAsset variable from a file outside of the Assets directory entirely. You ca...

相关问题

相关文章

热门文章

推荐文章

相关标签

推荐问答