序Kubectl 是 Kubernetes 的命令行配置工具,可与 Kubernetes API server通信。使用 Kubectl 可以创建、检查、更新和删除 Kubernetes 对象。这里列举一些对Pod、Service等对象常用的命令。集群管理显示集群中 master 和 服务 的端点信息kubectl cluster-info kubectl cluster-info dump --namespaces <namespace_name> --output-directory=<dir>显示客户端和服务器上运行的 Kubernetes 版本kubectl version获取集群的配置kubectl config view列出可用的 API 资源kubectl api-versions列出所有内容kubectl get all --all-namespacesDeploymentdeployment 可以简写成 deploy列出一个或多个Deploymentkubectl get deployment -n <namespace_name>
什么是 Kubernetes 对象?在k8s中管理员与平台交互的最重要方式之一就是创建和管理 Kubernetes 对象,对象有助于帮助用户部署应用程序和维护集群。理解 Kubernetes 对象的另一种方法是将它们视为类实例。每个创建的对象都引用一个预定义的类,该类告诉 api server 如何处理系统资源并与特定组件进行通信。那么这些对象都包含哪些呢?这篇文章就通过一些实例来说明对象怎么使用,或者怎么去定义对象。在Kubernetes 中对象都包含namespaces、pod、deployments、volumes以及secrets等。要查看 Kubernetes 集群中可用对象列表,可通过 kubectl 命令查看:kubectl api-resources执行命令后,可以看到如下一部分对象列表。这里只是截取了一小部分。那么这些对象都是怎么产生的呢,或者怎么创建的呢?继续看。首先我们在创建对象的时候,一般都是使用 YAML 或 JSON 在文件中描述想要的内容(所需状态),它称为对象规范。下面先来一个Pod对象规范示例(YAML):# Pod spec apiVersion:
序前面介绍了k8s组件和对象的一些基本概念,了解了k8s具体是做什么的以及架构,那么接下来我们开始介绍怎么去安装k8s,这里我们以windows为例,其他平台可以参考Kubernetes官方文档,其实安装方式都是类似的。先决条件要在系统中安装 Kubernetes,以下是一些需要特别注意的先决条件。软件要求如下:已启用 Hyper-V确保系统已安装 Docker上面两个条件如果你还不满足的话,可以参考网上有很多安装教程,当然这里后面也会出一个比较详细的安装说明文章。Kubernetes 安装实践因为我的系统很早之前就已经安装好了Docker,所以我们直接来看怎么通过Docker去安装Kubernetes。首先打开Docker Desktop,然后在电脑右下角右键单击 Docker 托盘图标并选择setting,或者点击Docker面板右上角的设置图标:弹出软件setting面板,在面板的左菜单中选择Kubernetes, 勾选启用Kubernetes并点击“应用”:Docker 在安装过程中会安装额外的包和依赖项。安装可能需要 5 到 10 分钟,具体取决于你的网络速度和电脑的性能
在Docker Desktop里面直接去安装启用Kubernetes会一直处在Starting...状态中,这是因为镜像默认是从Kubernetes提供的官方地址下载,该地址在国内是被墙的,如果你没有类似Vpn的翻墙工具的话,可以通过下面这种方式更快一点。准备好安装镜像镜像地址:https://github.com/AliyunContainerService/k8s-for-docker-desktop通过git clone将镜像clone到本地的工作目录,我这里在F:\work\k8s目录下面:查看docker支持的Kubernetes版本,在电脑右下角右键打开Docker选项,选择About Docker Desktop,弹出如下面板:可以看到我们这里的版本是v1.21.2进入到k8s-for-docker-desktop目录,检出对应版本分支:git checkout v1.21.2设置执行脚本权限Set-ExecutionPolicy RemoteSigned出现选项后直接输入: Y执行下载镜像脚本./load_images.ps1关闭执行脚本权限Set-ExecutionP
序上一篇我们介绍了 k8s 的基本架构,我们在这篇文章将介绍 Kubernetes 关键组件和概念。还是先来一张图:根据上图我们分别对Deployment、ReplicaSet、Pod详细的介绍,其他的几个在上一篇也做了介绍:DeploymentDeployment 是 Kubernetes 中的资源对象,为应用程序提供声明性更新。部署允许你描述应用程序的生命周期。也就是说他的主要作用就是管理和控制 Pod 和 ReplicaSet,监控它们运行在用户所期望的状态中。例如应用程序使用哪些镜像像、应该有的 Pod 数量以及更新它们的方式。ReplicaSetReplicaSet 是一个运行 Pod 的多个实例并保持指定的 Pod数量不变的进程。目的就是在任何时间内维持集群中运行的指定数量的 Pod 实例,以防止用户在 Pod 发生故障或无法访问时失去对其应用程序的访问权限,如果监控到某一个Pod不能继续服务的时候,他会确保我们的应用程序Pod总体服务数量保持在我们期望的数量,然后再重新启动一个Pod。这里说一下Replication Controller 与 ReplicaSet,Rep
Kubernetes 概述当下,我们很多项目于都在Cloud Native(云原生)的上面,这种方法旨在使组织能够确保可用性并快速响应和适应变化,云原生其实就是一组本质上支持在不同云环境(公共云、私有云或混合云)上大规模构建、运行和管理应用程序的实践和技术。云原生离不开两个概念:容器和微服务,这两个概念是任何云原生应用程序的构建块:微服务是小型、独立的服务(软件)的集合,可以在容器中轻松打包和执行。容器基于容器镜像, 容器是一个标准的软件单元,它打包代码及其所有依赖项,无论基础设施如何, 都允许应用程序快速可靠地运行容器镜像是一个轻量级的、独立的、可执行的软件包,其中包含运行应用程序所需的一切,容器镜像在运行时成为容器使用微服务架构是确保应用程序速度、敏捷性、增长和可用性的基础,因此,它改善了用户体验。例如,随着网络流量的增加或减少,放置在单体专用服务器上的整体应用程序比一组微服务更难扩展和缩减。然而,微服务架构的快速采用导致生产环境中容器数量的增加,这使得容器的管理和维护变得非常困难。并且,如果服务的请求量上来,已部署的服务响应不过来的时候怎么办呢?传统的做法是,如果请求量、内存、C
青丝南开
文字、摄影、骑行爱好者