
kubernetes 初级篇
文章平均质量分 82
kubernetes 入门知识点
还是那片西瓜吗
博客个人笔记,不作为任何参考。
简单的事重复做,重复的事情一直做
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
kubernetes 集群的访问-Token方式
一、创建新的名称空间kubectl create ns k8s-token二、查看新名称空间的secrets 与serviceaccountkubectl get serviceaccounts -n k8s-token && \kubectl describe serviceaccounts -n k8s-token && \kubectl get secrets -n k8s-token && \kubectl descr原创 2021-09-12 22:54:37 · 1576 阅读 · 0 评论 -
Kubernetes 用户认证-证书签名请求
官方证书签名请求一、创建私钥普通用户为了让普通用户能够通过认证并调用 API,需要执行几个步骤。 首先,该用户必须拥有 Kubernetes 集群签发的证书, 然后将该证书作为 API 调用的 Certificate 头或通过 kubectl 提供。创建私钥下面的脚本展示了如何生成 PKI 私钥和 CSR。 设置 CSR 的 CN 和 O 属性很重要。CN 是用户名,O 是该用户归属的组。 你可以参考 RBAC 了解标准组的信息。openssl genrsa -out myuser.key 20原创 2021-08-15 10:27:07 · 995 阅读 · 0 评论 -
Kubernetes 部署Dashboard Web界面
涉及参考文档:Kubernetes Web 界面 (Dashboard)Kubernetes Dashboard 项目页面一、部署 Dashboard UI查看github上最新的Dashboard版本为v2.3.1,此次操作部署最新版本吧1、获取yaml文件wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.3.1/aio/deploy/recommended.yaml下载不了那就手动去获取yaml文件即原创 2021-08-01 19:18:50 · 656 阅读 · 0 评论 -
Kubernetes 管理内存与CPU资源
涉及参考文档:为命名空间配置默认内存请求和限制为命名空间配置默认 CPU 请求和限制为命名空间配置最小和最大内存约束为命名空间配置最小和最大 CPU 约束为命名空间配置内存和 CPU 配额为命名空间配置 Pod 配额前提条件Kubernetes 集群集群名称空间 mem-cpu测试总结小图一、为命名空间配置默认内存请求和限制作用: 命名空间中创建 Container,并且 Container 未指定自己的内存限制,则为 Container 分配默认内存限制。Kuberne原创 2021-07-10 17:43:33 · 793 阅读 · 1 评论 -
Kubernetes 节点预留计算资源
涉及参考文档:为系统守护进程预留计算资源节点可分配资源配置资源不足时的处理方式简介信息:Kubernetes 的节点可以按照 Capacity 调度。默认情况下 pod 能够使用节点全部可用容量。 这是个问题,因为节点自己通常运行了不少驱动 OS 和 Kubernetes 的系统守护进程。 除非为这些系统守护进程留出资源,否则它们将与 pod 争夺资源并导致节点资源短缺问题。kubelet 公开了一个名为Node Allocatable 的特性,有助于为系统守护进程预留计算资源。 Kuber原创 2021-05-20 19:49:32 · 1137 阅读 · 0 评论 -
Kubernetes DaemonSet控制器
涉及文档Kubernetes DaemonSet官方文档简介说明DaemonSet 确保全部(或者某些)节点上运行一个 Pod 的副本。 当有节点加入集群时, 也会为他们新增一个 Pod 。 当有节点从集群移除时,这些 Pod 也会被回收。删除 DaemonSet 将会删除它创建的所有 PodDaemonSet 涉及应用场景在每个节点上运行集群守护进程在每个节点上运行日志收集守护进程 (fluentd、logstash)在每个节点上运行监控守护进程一、创建 DaemonSetvim原创 2021-05-15 19:05:43 · 416 阅读 · 1 评论 -
kubernetes 学习章节
搭建kubernetes集群添加node节点原创 2020-10-13 23:08:42 · 206 阅读 · 0 评论 -
Kubernetes CronJob定时器
涉及文档Kubernetes CronJob官方文档Kubernetes 使用CronJob运行自动化任务Kubernetes CronJob限制 必读必看Kubernetes 编写Cron工作规范 必读必看编写Cron工作规范Cron 子参数名称注解schedule必填字段.spec,它采用Cron格式jobTemplate作业的模板,它是必需的。它具有与Job完全相同的架构startingDeadlineSeconds可选的。如果它由于任何原因错原创 2021-04-29 23:13:19 · 493 阅读 · 0 评论 -
kubernetes 持久化存储亲和性
涉及文档kubernetes storageClassName 名称指定kubernetes PersistentVolumeClaims selector节点调度[kubernetes local简介kubernetes 节点亲和性一、PVC绑定匹配PV名称每个 PV 可以属于某个类(Class),通过将其 storageClassName 属性设置为某个 StorageClass 的名称来指定。 特定类的 PV 卷只能绑定到请求该类存储卷的 PVC 申领。 未设置 storage原创 2021-04-10 21:57:28 · 722 阅读 · 0 评论 -
kubernetes Volume存储卷
涉及文档Kubernetes 存储概念Kubernetes 支持卷的类型configMap 卷卷的简介:Container 中的文件在磁盘上是临时存放的,这给 Container 中运行的较重要的应用 程序带来一些问题。问题之一是当容器崩溃时文件丢失。kubelet 会重新启动容器, 但容器会以干净的状态重启。第二个问题会在同一 Pod 中运行多个容器并共享文件时出现, Docker 卷是磁盘上或者另外一个容器内的一个目录。持久卷重点性:Kubernetes 支持很多类型的卷原创 2021-04-05 22:14:33 · 1218 阅读 · 0 评论 -
Kubernetes Ingress-Nginx 金丝雀发布
前提环境:kubernetesingress涉及参考文档:kubernetes 官方文档NGINX Ingress Controlle 官方手册kubernetes基于nginx-ingress进行蓝绿部署/金丝雀发布(canary)Kubernetes 使用Nginx-Ingress实现蓝绿发布/金丝雀发布/AB测试一、Ingress-Nginx-Annotation Canary 功能简介如果想启用Canary功能,要先设置nginx.ingress.kubernetes.io原创 2021-03-17 22:41:11 · 866 阅读 · 0 评论 -
Kubernetes Node节点篇
Kubernetes Node官方文档一、 手动节点管理节点上的标签和 Pod 上的选择算符来控制调度Kubernetes 污点和容忍度节点维护阶段二、 节点维护阶段简介信息:如果标记节点为不可调度(unschedulable),将阻止新 Pod 调度到该节点之上,但不会 影响任何已经在其上的 Pod。 这是重启节点或者执行其他维护操作之前的一个有用的准备步骤, 标记一个节点为不可调度命令格式:kubectl cordon $NODENAME注意: 被 DaemonSet 控制器原创 2021-03-04 23:31:17 · 2630 阅读 · 1 评论 -
Kubernetes 构建容器镜像 kaniko
Github kaniko简介 kaniko 是从容器或 Kubernetes 集群内部的Dockerfile构建容器映像的工具。kaniko 不依赖 Docker守护程序,而是完全在用户空间中执行 Dockerfile 中的每个命令。这样就可以在无法轻松或安全地运行Docker守护程序的环境(例如标准Kubernetes集群)中构建容器映像。一、入门测试实验kaniko 入门教程 一、先决条件1、Kubernetes集群2、映像仓库二、准备本地安装目录1、SSH进入集群,并创建一个本地原创 2020-11-25 21:35:29 · 1386 阅读 · 0 评论 -
kubernetes 部署Jenkins
一、部署Harbor镜像仓库1、 搭建Harbor镜像私仓2、node节点配置docker认证二、jenkins镜像打包1、书写dockerfile原创 2020-11-21 21:38:18 · 1047 阅读 · 2 评论 -
Kubernetes探针
官方Kubernetes探针Kubernetes 对于Pod 的健康状态可以通过两类探针来检查:livenessProbe 和 readinessProbe ,kubernetes定期执行这两类探针来诊断容器的健康状况。livenessProbe探针: 用于判断容器是否存活(Running状态), 如果livenessProbe探针探测到容器不健康,则kubelet将杀掉该容器,并根据容器的重启策略做相应的处理。readinessProbe: 用于判断容器服务是否可用(Ready状态),达到Read原创 2020-11-12 20:05:04 · 590 阅读 · 0 评论 -
kubernetes 标签Labels
kubernetes Labels标签简介:标签(Labels) 是 Kubernetes 对象(比如 Pods)上的键值对。 标签旨在用于指定对用户有意义且相关的对象的标识属性。标签可以在创建时附加到对象(Node、Pod、Service、RC、deployment等),一个资源对象可以任意数量的Label,同一个Lable可以添加到任意数量的资源对象上,随后可以随时添加和修改。 每个对象都可以定义一组键/值标签,每个键对于给定对象必须是唯一的。常用的Lable 示例如下:版本标签: “rel原创 2020-10-14 23:56:31 · 3715 阅读 · 0 评论 -
kubernetes Pod生命周期和重启策略
Pod 的生命周期官方简介一、Pod 生命期简介和一个个独立的应用容器一样,Pod 也被认为是相对临时性(而不是长期存在)的实体。 Pod 会被创建、赋予一个唯一的 ID(UID), 并被调度到节点,并在终止(根据重启策略)或删除之前一直运行在该节点。如果一个节点死掉了,调度到该节点 的 Pod 也被计划在给定超时期限结束后删除。Pod 自身不具有自愈能力。如果 Pod 被调度到某节点 而该节点之后失效,或者调度操作本身失效,Pod 会被删除;与此类似,Pod 无法在节点资源 耗尽或者节点维护期间继原创 2020-10-27 11:55:16 · 2712 阅读 · 0 评论 -
kubernetes Pod的手动扩缩容
一、书写资源清单文件vim deployment_shoudongpha.yamlapiVersion: apps/v1 #api版本kind: Deployment #控制器metadata: labels: app: nginx name: nginx #Pod名称spec: replicas: 3 #启动副本数 selector: .原创 2020-10-26 22:22:01 · 742 阅读 · 0 评论 -
kubernetes Downward API
kubernetes 官方Downward API有两种方式可以将Pod信息呈现:环境变量卷文件一、可提供的信息下面这些信息可以通过环境变量和 downwardAPI 卷提供给容器:fieldRef环境变量名称metadata.namePod 名称metadata.namespacePod 名称空间metadata.uidPod的UIDresourceFieldRef容器的 CPU 约束值容器的 CPU 请求值容器的内存约束值容器的内存原创 2020-10-26 17:48:22 · 1577 阅读 · 0 评论 -
kubernetes Deployment 详解 更新/回滚/缩放/暂停/恢复部署操作
Deployments 更新/回滚官方一、创建 Deployment对象1、创建Deployment Podvim nginx-deployment.yamlapiVersion: apps/v1kind: Deploymentmetadata: name: nginx-deployment labels: app: nginxspec: replicas: 3 selector: matchLabels: app: nginx templa原创 2020-10-18 17:28:45 · 12086 阅读 · 2 评论 -
kubernetes secret私密凭据
kubernetes Secret官方地址一、简介Secret 对象类型用来保存敏感信息,例如密码、OAuth 令牌和 SSH 密钥。 将这些信息放在 secret 中比放在 Pod 或者 容器镜像 中来说更加安全和灵活Secret原创 2020-10-17 13:41:50 · 1382 阅读 · 0 评论 -
Kubernetes Controller Manager原理解析
官方没有找到对应的文章介绍,本内容出自Kubernetes权威指南书籍一. Controller Manager简介Controller Manager 是 kubernetes 中各种操作系统的管理者,是集群内部的管理控制中心,也是Kubernetes 自动化功能的核心。Controller Manager 内部包含: Replication Controller、Node Controller、ResourceQuota Controller、Namespace Controller、Endpoi原创 2020-10-13 23:07:46 · 745 阅读 · 0 评论 -
kubernetes RBAC角色权限
kubernetes —— RBAC官方文档一、简介(1)Kubernetes的授权是基于插件形式的,常用的授权插件有以下几种:Node:node节点授权ABAC:基于属性的访问控制RBAC:基于角色的访问控制Webhook:自定义http回调方法基于角色的访问控制:如图,先让一个用户(Users)扮演一个角色(Role),让角色(Role)拥有权限,从而让用户拥有这样的权限,然后在授权机制当中,只需要将权限授予某个角色,此时用户将获取对应角色的权限,从而实现角色的访问控制(2)Rol原创 2020-10-02 21:21:05 · 317 阅读 · 0 评论 -
kubernetes 集群的访问-证书方式
集群的访问官方文档使用 kubeconfig 文件组织集群访问简介:在将集群、用户和上下文定义在一个或多个配置文件中之后,用户可以使用 kubectl config use-context命令快速地在集群之间进行切换用于配置集群访问的文件有时被称为 kubeconfig 文件。这是一种引用配置文件的通用方式,并不意味着存在一个名为 kubeconfig 的文件。准备开始前提:1、Kubernets集群2、kubectl 的版本应该与集群的 API 服务器使用同一次版本号(kubectl原创 2020-09-29 01:01:19 · 710 阅读 · 0 评论 -
kubernetes 安装Helm3.3.4版本
Helm官方文档安装Helm步骤注意点:Helm3 不再需要在集群中安装Tiller即可使用Helm。Helm和Kubernetes之间支持的最大版本偏差|头盔版本支持的Kubernetes版本3.3.x1.18.x-1.15.x3.2.x1.18.x-1.15.x3.1.x1.17.x-1.14.x3.0.x1.16.x-1.13.x2.16.x1.16.x-1.15.x2.15.x1.15.x-1.14.x2.14.x1.原创 2020-09-27 21:44:54 · 1799 阅读 · 0 评论 -
kubernetes 命令大全
一、查看Pod调度在哪个节点for i in 0 1 2; do kubectl get pod zk-$i --template {{.spec.nodeName}}; echo ""; done二、设置服务不可调度1、直接指定node节点不可调度kubectl cordon 2、指定同Pod的节点不可调度kubectl cordon $(kubectl get pod zk-0 --template {{.spec.nodeNmae}})三、逐步耗尽资源1、直接指定消耗nod原创 2020-09-22 20:39:48 · 842 阅读 · 0 评论 -
kubernetes 部署ZooKeeper分布式服务
K8s部署ZooKeeper 官方文档此实验可以了解到几个知识点StatefulSetsPodDisruptionBudgetsPodAntiAffinityApache Zookeeper推荐先去搭建下Zookeeper分布式服务。更加方便此次实验二进制部署Zookeeper分布式服务一、简介StatefulSets特性优点:稳定的唯一网络标识符。稳定,持久的存储。有序,顺畅的部署和扩展。有序的自动滚动更新。局限性:给定Pod的存储必须由PersistentVolu原创 2020-09-21 23:48:32 · 1910 阅读 · 2 评论 -
Kubernetes 污点和容忍度
Kubernetes官方文档——污点和容忍度建议先去看下官方文档下简介:Taint(污点),它使节点能够排斥一类特定的 Pod。容忍度(Tolerations)是应用于 Pod 上的,允许(但并不要求)Pod 调度到带有与之匹配的污点的节点上。污点和容忍度(Toleration)相互配合,可以用来避免 Pod 被分配到不合适的节点上。 每个节点上都可以应用一个或多个污点,这表示对于那些不能容忍这些污点的 Pod,是不会被该节点接受的。关键词注解NoSchedule不会将Po原创 2020-09-14 11:27:05 · 1315 阅读 · 0 评论 -
搭建kubernetes集群
官方网址:https://kubernetes.io/zh/docs/tasks/tools/install-kubectl/官方有详细的步骤可以进行参考搭建准备条件:您必须使用与集群小版本号差别为一的 kubectl 版本。例如,1.2版本的客户端应该与1.1版本、1.2版本和1.3版本的主节点一起使用。使用最新版本的 kubectl 有助于避免无法预料的问题一、准备工作 集群节点都需操作1)、关闭selinuxsetenforce 0 (临时修改)sed -i 's/^SELI原创 2020-05-08 23:28:18 · 543 阅读 · 0 评论 -
Kubernetes kubeadm join 工作节点并将其加入到集群
获取初始值:#!/bin/bash#字颜色变量BLACK="\033[30m" #黑色RED="\033[31m" #红色GREEN="\033[32m" #绿色YELLOW="\033[33m" #黄色BLUE="\033[34m" #蓝色PURPLE="\033[35m" #紫色SKY_GREEN="\033[36m " #天绿色WHITE="\033[37m" #白色#字背景颜色变量BLACK_WHITE="\033原创 2020-05-09 00:31:18 · 341 阅读 · 0 评论 -
Kubernetes Pod的调度策略
kubernetes 官方简介pod 间亲和与反亲和: pod 间亲和与反亲和使你可以基于已经在节点上运行的 pod 的标签来约束 pod调度到节点上,而不是基于节点上的标签Pod 亲和与反亲和的合法操作符有名称属性Inlable在某个列表中NotInlable不在某个列表中Exists某个lable存在DoesNotExist某个lable不存在注意事项:原则上,topologyKey 可以是任何合法的标签键。然而,出于性能和安全原因,top原创 2020-09-13 11:37:57 · 608 阅读 · 0 评论 -
Kubernetes 节点调度原理及调度策略
Kubernetes 调度器官方文档其他博主博客k8s调度器scheduler 简介对每一个新创建的 Pod 或者是未被调度的 Pod,kube-scheduler 会选择一个最优的 Node 去运行这个 Pod。然而,Pod 内的每一个容器对资源都有不同的需求,而且 Pod 本身也有不同的资源需求。因此,Pod 在被调度到 Node 上之前,根据这些特定的资源调度需求,需要对集群中的 Node 进行一次过滤。在一个集群中,满足一个 Pod 调度请求的所有 Node 称之为 _可调度节点。如果没有任原创 2020-09-12 12:29:38 · 4397 阅读 · 0 评论 -
kubernetes 自动扩容与缩容pod(metrics-server篇)
HPA官方文档获取HPA地址注释:从Kubernetes 1.11开始,不推荐从Heapster获取指标。一、下载HPAgit clone https://github.com/kubernetes-sigs/metrics-server.git二、修改下载下来的文件1)git clone 的原文件2)修改metrics-server-deployment.yaml文件...原创 2020-04-13 23:05:30 · 1869 阅读 · 0 评论 -
kubernetes 自动扩容与缩容pod(heapster篇)
HPA 官方文档:https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/简介:Horizontal Pod Autoscaler基于观察到的CPU利用率(或借助自定义指标 支持,基于其他一些应用程序提供的指标)自动缩放复制控制器,部署或副本集中的Pod数量 。请注意,水平窗格自动缩放不适用于无法缩...原创 2019-11-06 23:24:14 · 1318 阅读 · 0 评论 -
kubernetes imagePullSecrets认证拉取私仓
官方文档: https://kubernetes.io/docs/concepts/containers/images/认证方式有两种不过官方推介使用第二种:第一种(配置节点以对专用注册表进行身份验证)第二种(在Pod上指定ImagePullSecrets)部署方式第一种:一、创建登录认证:docker login -uadmin -pRoot123. https://192...原创 2020-03-15 18:31:47 · 1236 阅读 · 0 评论 -
kubernetes 持久化静态存储
kubernetes 官方简介:https://kubernetes.io/docs/concepts/storage/persistent-volumes/#volume-cloning提前须知几点:1、pv 的回收策略pv可以设置三种回收策略:保留(Retain),回收(Recycle)和删除(Delete)。保留策略:允许人工处理保留的数据。删除策略:将删除pv和外部关联的存储...原创 2019-10-30 00:16:13 · 813 阅读 · 0 评论 -
kubernetes pv与pvc持久化存储(动态)
一、搭建NFS二、安装nfs插件1)获取插件可选:这里实验我选择使用插件-1获取nfs插件-1获取nfs插件-22)安装gityum install -y git3)下载nfs插件:git clone https://github.com/kubernetes-incubator/external-storage/tree/v5.5.0/nfs-client/deploy...原创 2019-10-31 09:52:37 · 672 阅读 · 0 评论 -
kubernetes configmap类型卷
官方文档:https://kubernetes.io/zh/docs/concepts/configuration/configmap/简介:ConfigMap 是一种 API 对象,用来将非机密性的数据保存到健值对中。使用时可以用作环境变量、命令行参数或者存储卷中的配置文件一、查看帮助命令 kubectl create cm -h二、目录形式创建cm1、创建目录mkdir -p /root/kubernetes/configmap/dir2、生成2个文件cd /root/ku原创 2020-08-22 23:21:06 · 707 阅读 · 0 评论 -
kubernetes 搭建ingress篇章一
对于搭建此篇文章多亏几篇文章:1、https://www.cnblogs.com/dingbin/p/9754993.html (他人的博客)2、https://github.com/kubernetes/ingress-nginx/tree/master/deploy/static(github)3、https://kubernetes.io/docs/tasks/tools/instal...原创 2019-11-15 23:15:24 · 870 阅读 · 0 评论 -
kubernetes ingress篇章二
官方地址前提搭建分布式储存(NFS)入门可选。 分布式存储可选用ceph做为k8s的储存服务文件名pod1Deployments_svcandnfs.yamlpod2Deployments_svcandnfs2.yamlingressingress2.yaml一、创建服务一文件apiVersion: v1kind: PersistentVolume #控制器pvmetadata: namespace: default #默认名称空间原创 2020-08-01 00:50:13 · 179 阅读 · 0 评论