00-kubectl 命令之自动补全和快速切换 namespace 自动补全kubectl安装后,默认是没有比如自动补全等功能的,频繁使用比较不方便。目前已经有各类kubectl 小工具可以提高效率,还有 kubectl 专用的 shell 了。 官方推荐需要安装 bash_completion,添加自动补全脚本。 CentOS12345# 安装bash-completionyum install -y epel-release.noarchyum install 2023-03-01 Kubernetes #Kubernetes
01-Docker 之虚拟化技术发展历史 2013年发布至今,Docker一直广受瞩目,被认为可能会改变软件行业。 1、环境配置的难题软件开发最大的麻烦事之一,就是环境配置。用户的计算机环境都不相同,你怎么知道自己开发的软件,能在哪些机器跑起来? 要想跑起来,用户必须保证两件事:操作系统的设置,各种库和组件的正确。只有它们都正确,软件才能运行。举例来说,安装一个 Python 应用,计算机必须有 Python 引擎,还必须有各种依赖,可 2023-03-01 Docker #Docker
01-Kubernetes 诞生背景 背景在云原生技术发展的浪潮之中,Kubernetes 伴随着容器技术的发展,成为了目前云时代的操作系统。Kubernetes 作为容器编排领域的事实标准和云原生领域的关键项目,已经是云原生时代工程师最需要理解与实践的核心技术。 但技术的发展从来都不是一蹴而就,Kubernetes 的诞生与完善也有其对应的技术历史背景,了解其诞生与发展的过程,对于更加系统的理解其核心思想、架构设计、实现原理等内容 2023-03-01 Kubernetes #Kubernetes
01-kubectl 命令之基础命令 kubectl create:通过yaml/json 文件或者标准输入创建一个资源对象,支持很多子命令 例如namespace pod deployment service等 kubectl expose:将json/yaml文件中定义的资源对象的端口暴露给新的service资源对象 kubectl run:创建并运行一个或多个容器镜像 kubectl set:配置资源对象设 2023-03-01 Kubernetes #Kubernetes
02-Docker 容器和虚拟机的区别 1、虚拟机(VM)虚拟机是共享一个服务器的物理资源的操作系统。它是主机硬件上的 Guest,因此也被称为 Guest 虚拟机。 虚拟机由几层组成。支持虚拟化的层是 hypervisor。hypervisor 是一种虚拟化服务器的软件。 1.1、虚拟机是怎么工作的运行应用程序所需的一切都包在虚拟机里,如:虚拟化的硬件,操作系统以及任何所需的二进制文件和库。因此,虚拟机具有自己独立的基础架构。 1. 2023-03-01 Docker #Docker
02-Kubernetes 简介 KubernetesKubernetes 源于希腊语,意为“舵手”。kubernetes(简称K8s),k8s 缩写是因为 k 和 s 之间有八个字符的原因。它是 Google 在 2015 开源的容器调度编排的平台。它是建立在 Google 大规模运行生产工作负载(Borg系统)十几年经验的基础上,结合了社区中最优秀的想法和实践,已经成为了目前容器编排的事实标准。 其实看到 Docker 和 2023-03-01 Kubernetes #Kubernetes
02-kubectl 命令之部署命令 kubectl-rollout:资源管理对象的部署 kubectl-rollout-update:使用rc(replication controller)来做滚动恩星 kubectl-scale:扩容或者缩容deployment replicaset replication contrller等 kubectl-autoscale:自动设置在k8s系统中运行的pod数量(水平自动伸缩) kub 2023-03-01 Kubernetes #Kubernetes
03-Docker 简介 1、什么是 DockerDocker 的英文意思是 码头工人,意思就是搬运东西的意思,其实这和 Docker 的特点是一样的,Docker 提供的就是一种容器化搬运东西(我们的软件、程序)的过程。Docker 自己本来是运行在操作系统上一个程序软件,它会提供一个容器环境,使我们的程序独立地运行在容器中。 Docker 属于 Linux 容器的一种封装,提供简单易用的容器使用接口。它是目前最流行的 2023-03-01 Docker #Docker
03-kubectl 命令之集群管理命令 kubectl cetificate:修改证书资源对象 kubectl cluster-info:查看集群信息 kubectl top:显示资源 cpu 内存 存储使用情况 kubectl cordon:标记节点为不可调度 kubectl uncordon:指定节点为可调度 kubectl drain:安全的驱逐节点的所有pod kubectl taint:将一个或多个节点设置为污点 kube 2023-03-01 Kubernetes #Kubernetes
04-kubectl 命令之故障排查和调试命令 kubectl-describe:显示一个或多个资源对象的详细信息 kubectl-logs:输出pod资源对象中一个容器的日志 kubectl-attach:连接到一个运行的容器 kubectl-exec:在指定容器内执行命令 kubectl port-forward:将本机指定端口映射到pod资源对象的端口 kubectl proxy:将本机指定端口映射到kube-apiserver kub 2023-03-01 Kubernetes #Kubernetes
05-kubectl 命令之高级命令 kubectl-diff:对比本地json/yaml文件与kube-apiserver中运行的配置文件是否有差异 kubectl-apply:通过json/yaml文件 标准输入对资源进行配置更新或者创建 kubectl-patch:通过patch方式修改资源对象字段(补丁式) kubectl-replace:通过json/yaml文件或者标准输入来替换资源对象 k 2023-03-01 Kubernetes #Kubernetes
06-kubectl 命令之设置命令 kubectl-label:增删改资源的标签 kubectl-annotate:更新一个或者多个资源对象的注释(annotaion)信息 kubectl-completion:命令自动补全 kubectl label更新(增加、修改或删除)资源上的 label(标签)。 label 必须以字母或数字开头,可以使用字母、数字、连字符、点和下划线,最长63个字符。 如果–overwrite 为 2023-03-01 Kubernetes #Kubernetes
07-kubectl 命令之其他命令 kubectl configkubectl pluginkubectl versionkubectl api-versionskubectl api-resources本次分析的版本为1.17.4,使用Calico作为网络组件,总共有67种不同的api-resources。 Binding: 已弃用。用于记录一个object和另一个object的绑定关系。实际上主要用于将pod和node关系,所 2023-03-01 Kubernetes #Kubernetes
11-Helm 安装 Helm 文档:https://docs.helm.sh/zh/docs/ Helm 其他文档:https://www.coderdocument.com/docs/helm/v2/using_helm/kubernetes_distro_notes.html 一、Helm 客户端安装Helm 的安装方式很多,这里采用二进制的方式安装。更多安装方法可以参考 Helm 的官方帮助文档。 方式一: 2023-03-01 Helm #Helm
12-Helm 仓库 Helm 文档:https://docs.helm.sh/zh/docs/ Helm 其他文档:https://www.coderdocument.com/docs/helm/v2/using_helm/kubernetes_distro_notes.html 添加仓库1helm repo add 仓库名 仓库地址 例如 123456789# 配置微软源helm repo add stabl 2023-03-01 Helm #Helm
Docker 单进程模型理解 容器=应用+依赖的执行环境 容器不像虚拟机那样拥有独立的操作系统,容器只包括了操作系统的”躯壳”,并没有包括操作系统的内核。同一台机器上的所有容器,都会共享宿主机操作系统的内核。 容器只是通过 Linux 的 Namespaces、Cgroups 实现了进程级别的隔离。虽然在容器里看不见宿主机上的其他进程,但归根结底它还只是一个运行在宿主机上的进程,所以容器就不具备操作系统的进程管理能力。 每个容 2023-03-01 Docker #Docker
Kubernetes initContainer 初始容器 官方中文文档 1、理解 Init 容器Kubernetes 1.3 版本引入了 Alpha 版本的新特性 init container(初始化容器,在 Kubernetes 1.5 时被更新为 Bate 版本)用于在启动应用容器(app container)之前启动一个或多个初始化容器,init container 与应用容器本质上是一样的,但他们是仅运行一次就结束的任务,并且必须在成功执 2023-03-01 Kubernetes #Kubernetes
Kubernetes yaml 之 Deployment yaml 文件 Deployment 为 Pod 和 ReplicaSet 提供了一个声明式定义 (declarative) 方法,用来替代以前的 ReplicationController 更方便的管理应用。 作为最常用的 Kubernetes 对象,Deployment 经常会用来创建 ReplicaSet 和 Pod,我们往往不会直接在集群中使用 ReplicaSet 部署一个新的微服务,一方面是因为 Re 2023-03-01 Kubernetes #Kubernetes
Kubernetes yaml 之 Service yaml 文件 Service 有四种 type: ClusterIP(默认)、NodePort、LoadBalancer、ExternalName。其中 NodePort 和 LoadBalancer 两类型的 Services 可以对外提供服务。 Service yaml 文件包含四个部分: apiVersion:表示版本。版本查看命令:kubectl api-versions kind:表示资源 meta 2023-03-01 Kubernetes #Kubernetes
Kubernetes yaml 文件 1. yaml 文件概述Kubernetes 集群中对资源管理和资源对象的编排部署可以通过声明样式(yaml)文件的方式来解决,把需要对资源对象的操作都编辑到 yaml 格式的文件中,这种文件叫做 资源清单文件。 通过 kubectl 命令可以直接使用资源清单文件实现对大量的资源对象进行编排和部署。 2. yaml 文件书写格式yaml 的可读性非常高,它是用来表达 数据序列 的格式。它本身仍是一 2023-03-01 Kubernetes #Kubernetes