Kubernetes入门级教程

Kubernetes入门级教程
- 1. Introduction
- 1.1 概述
- 1.2 关键字介绍
- 2. Cluster Install
- 2.1 Big Data -- Postgres
- 3. 基础知识
- 3.1 Pod
- 3.2 控制器
- 3.3 通讯模式
- 3.4 服务发现
- 4. Command
- 4.0 编辑文件
- 4.1 在宿主机执行命令
- 4.2 创建资源对象
- 4.3 查询资源对象
- 4.4 查询资源描述
- 4.5 修改资源
- 4.6 删除资源对象
- 4.7 查看log日志
- 5. Awakening
3.43开始执行
1. Introduction
1.1 概述
Kubernetes(简称K8S) 是Google开源的分布式的容器管理平台,方便我们在服务器集群中管理我们容器化应用。
1.2 关键字介绍
- 架构图
左面的master架构
右边是node架构- 关键字介绍
kubectl:
命令行工具
Pod:
kubernetes的最小控制单元,容器都是运行在pod中的,一个pod中可以有1个或者多个容器
controller:
负责维护集群的状态,比如副本期望数量、故障检测、自动扩展、滚动更新等
api server:
所有服务访问的唯一入口,提供认证、授权、访问控制、API 注册和发现等机制
scheduler:
负责资源的调度,按照预定的调度策略将 Pod 调度到相应的机器上
etcd:
键值对数据库,保存了整个集群的状态,官方将它定义成一个可信赖的分布式键值存储服务
kubelet:
负责维护容器的生命周期,同时也负责 Volume 和网络的管理
kube-proxy:
负责为 Service 提供 cluster 内部的服务发现和负载均衡
Container runtime:
负责镜像管理以及 Pod 和容器的真正运行
label:
标签,用于对pod进行分类,同一类pod会拥有相同的标签
NameSpace:
命名空间,用来隔离pod的运行环境- 过程
scheduler(调度器)将任务写进api server,api server再将任务写进etcd
2. Cluster Install
2.1 Big Data – Postgres
3. 基础知识
3.1 Pod
3.2 控制器
3.3 通讯模式
3.4 服务发现
4. Command
4.0 编辑文件
# 进入某个容器
kubectl exec mypod -c ruby-container -it -- bash# 编辑名为docker-registry的service
kubectl edit svc/docker-registry
4.1 在宿主机执行命令
# 执行 pod 的 date 命令,默认使用 pod 的第一个容器执行
kubectl exec mypod -- date
kubectl exec mypod --namespace=test -- date# 指定 pod 中某个容器执行 date 命令
kubectl exec mypod -c ruby-container -- date
4.2 创建资源对象
# yaml
kubectl create -f xxx-rc.yaml
kubectl create -f xxx-service.yaml# json
kubectl create -f ./pod.json
cat pod.json | kubectl create -f -# yaml2json
kubectl create -f docker-registry.yaml --edit -o json# 一次性创建
kubectl create -f xxx-service.yaml -f xxx-rc.yaml# 根据目录下所有的 yaml 文件定义内容进行创建
kubectl create -f <目录># 使用 url 来创建资源
kubectl create -f https://git.io/vPieo
4.3 查询资源对象
# 查看所有 Node 或 Namespace 对象
kubectl get nodes
kubectl get namespace# 查看子命令帮助信息
kubectl get --help# 列出默认namespace中的所有pod
kubectl get pods# 列出指定namespace中的所有pod
kubectl get pods --namespace=test# 列出所有namespace中的所有pod
kubectl get pods --all-namespaces# 列出所有pod并显示详细信息
kubectl get pods -o wide
kubectl get replicationcontroller web
kubectl get -k dir/
kubectl get -f pod.yaml -o json
kubectl get rc/web service/frontend pods/web-pod-13je7
kubectl get pods/app-prod-78998bf7c6-ttp9g --namespace=test -o wide
kubectl get -o template pod/web-pod-13je7 --template={{.status.phase}}# 列出该namespace中的所有pod包括未初始化的
kubectl get pods,rc,services --include-uninitialized
# 查看所有 RC 对象
kubectl get rc
# 查看所有 Deployment 对象
# 查看全部deployment
kubectl get deployment# 列出指定deployment
kubectl get deployment my-app
# 查看所有 Service 对象
kubectl get svc
kubectl get service
# 查看不同 Namespace 下的 Pod 对象
kubectl get pods -n default
kubectl get pods --all-namespace
4.4 查询资源描述
# 显示 Pod 详细信息
kubectl describe pods/nginx
kubectl describe pods my-pod
kubectl describe -f pod.json# 查看 Node 详细信息
kubectl describe nodes c1# 查看 RC 关联的 Pod 信息
kubectl describe pods <rc-name>
4.5 修改资源
# 滚动更新 pod frontend-v1
kubectl rolling-update frontend-v1 -f frontend-v2.json# 更新资源名称并更新镜像
kubectl rolling-update frontend-v1 frontend-v2 --image=image:v2# 更新 frontend pod 中的镜像
kubectl rolling-update frontend --image=image:v2# 退出已存在的进行中的滚动更新
kubectl rolling-update frontend-v1 frontend-v2 --rollback# 强制替换; 删除后重新创建资源; 服务会中断
kubectl replace --force -f ./pod.json# 添加标签
kubectl label pods my-pod new-label=awesome# 添加注解
kubectl annotate pods my-pod icon-url=http://goo.gl/XXBTWq# 部分更新节点
kubectl patch node k8s-node-1 -p '{"spec":{"unschedulable":true}}'# 更新容器镜像;spec.containers[*].name 是必须的,因为这是合并的关键字
kubectl patch pod valid-pod -p \'{"spec":{"containers":[{"name":"kubernetes-serve-hostname","image":"new image"}]}}'
4.6 删除资源对象
# yaml文件名字按照你创建时的文件一致
kubectl delete -f xxx.yaml# 删除包括某个 label 的 pod 对象
kubectl delete pods -l name=<label-name># 删除包括某个 label 的 service 对象
kubectl delete services -l name=<label-name># 删除包括某个 label 的 pod 和 service 对象
kubectl delete pods,services -l name=<label-name># 删除所有 pod/services 对象
kubectl delete pods --all
kubectl delete service --all
kubectl delete deployment --all
4.7 查看log日志
# 不实时刷新kubectl logs mypod
kubectl logs mypod --namespace=test# 查看日志实时刷新
kubectl logs -f mypod -c ruby-container
5. Awakening
在一秒钟内看到本质的人和花半辈子也看不清一件事本质的人,自然是不一样的命运。
相关文章:

Kubernetes入门级教程
Kubernetes入门级教程1. Introduction1.1 概述1.2 关键字介绍2. Cluster Install2.1 Big Data -- Postgres3. 基础知识3.1 Pod3.2 控制器3.3 通讯模式3.4 服务发现4. Command4.0 编辑文件4.1 在宿主机执行命令4.2 创建资源对象4.3 查询资源对象4.4 查询资源描述4.5 修改资源4.6…...
15个顶级思维模型
今天给大家分享几个思维模型,无论是数分、数开还是其他岗位,都会有所启发。 查理芒格认为,每个学科都是从一个独特的角度去切入了解这个世界,都是一个摸象的瞎子。 要超越普通人的认知决策,就必须掌握多个核心思维模…...

外贸谷歌优化,外贸google SEO优化费用是多少?
本文主要分享关于做外贸网站的谷歌seo成本到底需要投入多少这一件事。 本文由光算创作,有可能会被剽窃和修改,我们佛系对待这种行为吧。 那么外贸google SEO优化费用是多少? 答案是:2w~25w。 好,看到这个答案先别激…...
华为OD机试 - 统计匹配的二元组个数(Python) | 机试题算法思路
最近更新的博客 华为OD机试 - 招聘(Python) | 备考思路,刷题要点,答疑 【新解法】华为OD机试 - 五键键盘 | 备考思路,刷题要点,答疑 【新解法】华为OD机试 - 热点网络统计 | 备考思路,刷题要点,答疑 【新解法】华为OD机试 - 路灯照明 | 备考思路,刷题要点,答疑 【新解…...

Java 日志简介
目录1、Slf4j2、Log4j3、LogBack4、Logback 优点5、ELK1、Slf4j slf4j 的全称是 Simple Loging Facade For Java,即它仅仅是一个为 Java 程序提供日志输出的统一接口,并不是一个具体的日志实现方案,就比如 JDBC 一样,只是一种规则…...

HTTPS协议原理---详解六个加密方案
目录 一、HTTPS 1.加密与解密 2.我们为什么要加密? 3.常见加密方式 ①对称加密 ②非对称加密 4.数据摘要 5.数字签名 二、HTTPS的加密方案 1.只是用对称加密 2.只使用非对称加密 3.双方都使用非对称加密 4.非对称加密+对称加密 中间人攻…...
纯css实现坤坤经典动作-“铁山靠”
背景 2023年2月16日,晴,今天没有工作,一直在掘金摸鱼,摸的我好累。 不行!我得找点有意义的事情做! 此时间,我发的一条沸点竟然有小黑子给我评论,\ 我看到之后气不打一处来ÿ…...
Linux 操作系统原理 — NUMA 体系结构
目录 文章目录 目录NUMA 体系结构NUMA 的基本概念查看 Host 的 NUMA TopologyBash 脚本DPDK 脚步NUMA 体系结构 NUMA(Non-Uniform Memory Access,非一致性存储器访问)的设计理念是将 CPU 和 Main Memory 进行分区自治(Local NUMA node),又可以跨区合作(Remote NUMA nod…...

cesium学习记录01
1,将右弦GISer的cesium实战系列的大部分功能(25-110) 都又跟着走了一遍(大部分是CTRL CCTRL V) 2,代码SVN地址(用户名:liu 密码:123) (如果我没有遗漏上传…...

Linux延时队列工作原理与实现
当进程要获取某些资源(例如从网卡读取数据)的时候,但资源并没有准备好(例如网卡还没接收到数据),这时候内核必须切换到其他进程运行,直到资源准备好再唤醒进程。 waitqueue (等待队列) 就是内核…...
【Python】scipy稀疏矩阵的奇异值分解svds
文章目录基本原理scipy实现测试基本原理 当AAA是方阵时,可以很容易地进行特征分解:AWΣW−1AW\Sigma W^{-1}AWΣW−1,其中Σ\SigmaΣ是AAA的特征值组成的对角矩阵。如果WWW由标准正交基组成,则W−1WTW^{-1}W^TW−1WT,…...
网络安全等级保护基础知识汇总
等保 全称是网络安全等级保护,分为两个阶段 等保1.0 1994年国务院147令《中华人民共和国计算机信息系统安全保护条例》 等保2.0 2017年 网络安全法,21条规定的 国家实行网络安全等级保护制度,等保进入了有法可依阶段。 2019年国标22239-2019版…...
ros1使用过程中遇到的问题记录
Failed to fetch current robot state如果使用的是moveit助手生成的demo.launch文件启动机械臂的话,应该是其他在运行的自己写的节点代码中少了spin函数,因为getCurrentPose函数依赖于spin,也可以使用AsyncSpinner。具体看下面这个链接https:…...

centos7给已有分区进行扩容
1、背景 最近我在虚拟机上安装软件,发现磁盘空间不足,通过上网查找资料,发现可以通过如下方法进行磁盘扩容,此处进行记录一下。 2、实现扩容 1、虚拟机上添加一个新的硬盘 2、查看我们刚刚加入的硬盘 此处我们可以看到/dev/nvm…...
package.json
{"name": "project-name", 项目名字"version": "0.1.0", 版本号"private": true, 项目包,不需要发版"scripts": { 脚本"serve": "vue-cli-service serve", 运行命令后缀是 se…...

【项目精选】户籍管理系统(视频+论文+源码)
点击下载源码 当今社会人们生活质量越来越高,人们对生活品质的追求不断提升,对于孩子求学,变更住所等情况时有发生,因此对于户籍变动管理就显得十分重要,管理用户的户籍信息可以有效防止信息错乱,信息管理过…...
【IP技术】网络安全防护措施
网络安全威胁造成的形式主要包含运用系统软件缺点或侧门,运用网络防火墙安全隐患,内部结构客户的泄密、泄露和毁坏,动态口令进攻和拒绝服务式攻击等。针对该网络安全威胁,现阶段的预防措施主要有五种:1.访问控制技术&a…...
基于AIOT技术的智慧教室智能物联管控系统设计与实现(提纲)
摘要随着物联网技术的不断发展和智能化的不断推进,智慧教室已经成为现代教育中不可或缺的一部分。本文提出了一种基于AIOT技术的智慧教室智能物联管控系统设计与实现方案,该方案集成了物联网技术、人工智能技术、大数据技术和云计算技术等先进技术&#…...
C 指针的深造
C 指针1 关于内存那点事2 指针的概念3 指针变量的定义方法4 指针的分类5 指针和变量的关系6 指针和数组元素之间的关系7 指针数组8 指针的指针9 字符串和指针9.1 字符串的定义9.2 字符串的可修改性:9.3 初始化赋值9.4 使用时赋值9.5 字符串和指针总结10 数组指针11 …...

大数据之-Nifi-应用场景2-2_设置putfile处理器自动创建目标文件夹_以及存在重复文件时自动覆盖---大数据之Nifi工作笔记0006
上一节我们留了两个问题,一个是,如果我们没有创建putfile要写入的目标文件夹,会报错吗? 可以看到我们putfile目标文件夹是上面这个目录 我们来试一试,如果目标文件夹不存在,putfile处理器会自动创建吗 首先我们删除这个target目标文件夹 然后我们进入cd source目录,源文件夹目…...
【网络】每天掌握一个Linux命令 - iftop
在Linux系统中,iftop是网络管理的得力助手,能实时监控网络流量、连接情况等,帮助排查网络异常。接下来从多方面详细介绍它。 目录 【网络】每天掌握一个Linux命令 - iftop工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景…...
Spring Boot 实现流式响应(兼容 2.7.x)
在实际开发中,我们可能会遇到一些流式数据处理的场景,比如接收来自上游接口的 Server-Sent Events(SSE) 或 流式 JSON 内容,并将其原样中转给前端页面或客户端。这种情况下,传统的 RestTemplate 缓存机制会…...

AI Agent与Agentic AI:原理、应用、挑战与未来展望
文章目录 一、引言二、AI Agent与Agentic AI的兴起2.1 技术契机与生态成熟2.2 Agent的定义与特征2.3 Agent的发展历程 三、AI Agent的核心技术栈解密3.1 感知模块代码示例:使用Python和OpenCV进行图像识别 3.2 认知与决策模块代码示例:使用OpenAI GPT-3进…...
基于服务器使用 apt 安装、配置 Nginx
🧾 一、查看可安装的 Nginx 版本 首先,你可以运行以下命令查看可用版本: apt-cache madison nginx-core输出示例: nginx-core | 1.18.0-6ubuntu14.6 | http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages ng…...
蓝桥杯 2024 15届国赛 A组 儿童节快乐
P10576 [蓝桥杯 2024 国 A] 儿童节快乐 题目描述 五彩斑斓的气球在蓝天下悠然飘荡,轻快的音乐在耳边持续回荡,小朋友们手牵着手一同畅快欢笑。在这样一片安乐祥和的氛围下,六一来了。 今天是六一儿童节,小蓝老师为了让大家在节…...

微信小程序 - 手机震动
一、界面 <button type"primary" bindtap"shortVibrate">短震动</button> <button type"primary" bindtap"longVibrate">长震动</button> 二、js逻辑代码 注:文档 https://developers.weixin.qq…...

【SQL学习笔记1】增删改查+多表连接全解析(内附SQL免费在线练习工具)
可以使用Sqliteviz这个网站免费编写sql语句,它能够让用户直接在浏览器内练习SQL的语法,不需要安装任何软件。 链接如下: sqliteviz 注意: 在转写SQL语法时,关键字之间有一个特定的顺序,这个顺序会影响到…...
在鸿蒙HarmonyOS 5中使用DevEco Studio实现录音机应用
1. 项目配置与权限设置 1.1 配置module.json5 {"module": {"requestPermissions": [{"name": "ohos.permission.MICROPHONE","reason": "录音需要麦克风权限"},{"name": "ohos.permission.WRITE…...
2023赣州旅游投资集团
单选题 1.“不登高山,不知天之高也;不临深溪,不知地之厚也。”这句话说明_____。 A、人的意识具有创造性 B、人的认识是独立于实践之外的 C、实践在认识过程中具有决定作用 D、人的一切知识都是从直接经验中获得的 参考答案: C 本题解…...
Fabric V2.5 通用溯源系统——增加图片上传与下载功能
fabric-trace项目在发布一年后,部署量已突破1000次,为支持更多场景,现新增支持图片信息上链,本文对图片上传、下载功能代码进行梳理,包含智能合约、后端、前端部分。 一、智能合约修改 为了增加图片信息上链溯源,需要对底层数据结构进行修改,在此对智能合约中的农产品数…...