一,kubectl 命令行的语法如下:
kubectl [command] [TYPE] [NAME] [flags]
上面的命令是: kubectl命令行中,指定执行什么操作(command),指定什么类型资源对象(type),指定此类型的资源对象名称(name),指定可选参数(flags),后面的参数就是为了修饰那个唯一的对象
属于典型的英文语法,比如你是老师,你说,小明(kubectl)买(command)方便面(type)老坛酸菜方便面(name)桶装的(flag)。命令的根本原则是准确性,不能有异议!
(1) command: 子命令,用于操作k8s集群资源对象的命令,例如create,delete,describe ,get ,apply 等
(2) TYPE: 资源对象的类型,区分大小写,能以单数形式,复数形式或者简写形式表示。例如以下3种TYPE是等价的。
kubectl get pod pod1
kubectl get pods pod1
kubectl get po pod1
(3) NAME: 资源对象的名称,区分大小写。如果不指定名称,则系统将返回属于TYPE的全部对象的列表。例如$ kubectl get pods 将返回默认namespaces下所有的pod列表
(4) flags: kubectl 子命令的可选参数,例如使用"-s" 指定apiserver 的URL地址
在一个命令行中也可以同时对多个资源对象进行操作,以多个Type和NAME的组合表示,实例如下:
获取多个pod的信息:
kubectl get pods pod1 pod2
获取多个对象的信息:
kubectl get pod/pod1 rc/rc1
同时应用多个yaml文件,以多个-f file参数表示:
kubectl get pod -f pod1.yaml -f pod2.yaml
kubectl create -f pod1.yaml -f rc2.yaml -f servicel.yaml
二,常用的kubectl命令
kubectl get - 列出可用资源
列出所有的pod : kubectl get pods --all-namespaces
列出所有的job : kubectl get job --all-namespaces
kubectl describe - 显示有关资源的详细信息
kubectl describe pod nvjob-lnrxj -n default
-n default 是指定namespace为default里的pod,是语法中的flag
kubectl logs - 从 Pod 中的容器打印日志
这个特殊一点哦,这个不用指定TYPE,因为kubeclt logs 默认就是pod类型,所以 kubectl logs pod 会报错,“Error from server (NotFound): pods “pod” not found”
kubectl logs calijob -n calib
kubectl exec - 在 Pod 中的容器执行命令
和log一样,不用指明type,默认是pod : kubectl exec <pod_name> -n date
kubectl delete - 在 Pod 中的容器执行命令
kubectl delete pod cali-2 -n calib
批量删除namespace 是calib中 状态为Error的所有pod:kubectl get pods -n calib | grep Error | awk ‘{print $1}’ | xargs kubectl delete pod -n calib(注意 “Error”,“Completed”状态得首字母都是大写哦)
YAML配置文件管理对象
对象管理:
创建deployment资源
kubectl create -f nginx-deployment.yaml
查看deployment
kubectl get deploy
查看ReplicaSet
kubectl get rs
查看pods所有标签
kubectl get pods --show-labels
根据标签查看pods
kubectl get pods -l app=nginx
滚动更新镜像
kubectl set image deployment/nginx-deployment nginx=nginx:1.11
或者
kubectl edit deployment/nginx-deployment
或者
kubectl apply -f nginx-deployment.yaml
实时观察发布状态:
kubectl rollout status deployment/nginx-deployment
查看deployment历史修订版本
kubectl rollout history deployment/nginx-deployment
kubectl rollout history deployment/nginx-deployment --revision=3
回滚到以前版本
kubectl rollout undo deployment/nginx-deployment
kubectl rollout undo deployment/nginx-deployment --to-revision=3
扩容deployment的Pod副本数量
kubectl scale deployment nginx-deployment --replicas=10
设置启动扩容/缩容
kubectl autoscale deployment nginx-deployment --min=10 --max=15 --cpu-percent=80
对象管理实例:vim nginx.deployment.yaml
View Code
服务发现实例:vim nging.service.yaml
View Code
清理:
kubectl delete -f nginx-deployment.yaml
kubectl delete -f nginx-service.yaml
POD作用:
Pod状态 创建/查询/更新/删除 重启策略 健康检查 数据持久化和共享 hostPort 问题定位
Pod管理-创建/查询/更新/删除
基本管理:
创建pod资源
kubectl create -f pod.yaml
查看pods
kubectl get pods pod-test
查看pod描述
kubectl describe pod pod-test
替换资源
kubectl replace -f pod.yaml -force
删除资源
kubectl delete pod pod-test
支持三种策略:
Always:当容器终止退出后,总是重启容器,默认策略。
OnFailure:当容器异常退出(退出状态码非0)时,才重启容器。
Never:当容器终止退出,从不重启容器。
Pod实例:vim pod.yaml
View Code
Pod管理-健康检查:
提供Probe机制,有以下两种类型:
livenessProbe
如果检查失败,将杀死容器,然后根据Pod的重启策略来决定是否重启。
readinessProbe
如果检查失败,Kubernetes会把Pod从服务代理的分发后端剔除。
Probe支持以下三种检查方法:
httpGet
发送HTTP请求,返回200-400范围状态码为成功。
exec
执行Shell命令返回状态码是0为成功。
tcpSocket
发起TCP Socket建立成功。
实例:
vim pod2.yaml
View Code
Pod管理-数据持久化和共享:
vim pod3.yaml
View Code
Pod端口映射:
vim pod4.yaml
apiVersion: v1
kind: Pod
metadata:
name: nginx-pod
labels:
app: nginx
spec:
containers:
-name: nginx
image: nginx:1.10
ports:
- name: http
containerPort: 80
hostIP: 0.0.0.0
hostPort: 80
protocol: TCP
- name: https
containerPort: 443
hostIP: 0.0.0.0
hostPort: 443
protocol: TCP
文章浏览阅读1.2w次,点赞4次,收藏40次。打击违法直播 净化网络环境某天,我的一个朋友(这个朋友真不是我自己)发了我一款聚合直播App,大喜过望之后发现需要充值才能继续观看,我这种穷逼哪来的钱充值,所以就有了这次逆向之旅一、反编译用jadx-gui直接打开Apk,发现没有加固,源码如下:二、源码分析1. 打开app,通过adb查看当前activity的名称adb shelldumpsys a...
文章浏览阅读1.8w次,点赞2次,收藏25次。最新9月份饿了么电脑脚本薅羊毛+获取cookie教程+免费代挂,脚本交流,脚本分享,代挂饿了么豆子,免费_饿了么乐园币脚本
文章浏览阅读2.3k次,点赞3次,收藏6次。下载npm install mockjs --save-dev使用1、新建mock.jsimport Mock from 'mockjs'Mock.mock("/getTest",{ "name1|1-3": 'a', "name2|2": 'b',});2、新建vue文件<template> <div> ..._vebn mock
文章浏览阅读5.8k次。解决方法:1、vs2010 项目-> XXX属性-> 配置属性-> 常规-> 字符集 -> “使用unicode字符集” 改为 “未设置” 就去掉了unicode支持;(已经验证过)2、也可以在#include 之前加上一句#undef UNICODE 有时候好像不太管用3、你全部使用 TCHAR替换char字符串常_无法将参数 1 从“wchar [260]”转换为“const char *”
文章浏览阅读1.7k次。从网上找的,已经将用bc写的改成了vc的,由于对音乐的理解比乐盲还差,对于程序中转换是否有问题我也不得而知,反正用vc生成的midi文件听起来惨不忍睹。 对于制作midi音乐来说,比播放midi文件本身更复杂得多。我们得了解..._midi数据结构
文章浏览阅读1k次。客户需求分析:客户全国30个门店通过SDWAN线路访问阿里云服务器。 接入阿里云预计需求是100M带宽,每个门店10M带宽。 Telstra提供全国网络资源实现门店到阿里云的网络连通,搭建稳定可靠的SDWAN网络,客户SDWAN网络主要使用的应理类系统和销售应用系统。 解决方案说明1,客户共有阿里云和30个门店共31个节点的网络需求。2,Te..._4s店 sdwan
文章浏览阅读2.4k次。参考自John Hedengren的一门课,网址是apmonitor.com考虑这样一个反应:要求画出物质A和B的浓度时间曲线。其中A的反应速率如下:k=2.0,B的反应速率为 :代码:import numpy as np from scipy.integrate import odeintimport matplotlib.pyplot as pltdef rxt(C,t): Ca=C[0] Cb=C[1] k=2.0 dAdt = -k*Ca d._化学反应的常微分方程求解
文章浏览阅读1.9k次。前置条件安装Go下载对应安装包并安装。下载地址安装Node下载安装,如此便有了npm。下载地址安装GCC库Windows下需要安装GCC库用来编译。下载地址安装wailsgo get github.com/wailsapp/wails/cmd/wails wails初始设置wails setup 设置 用户名 和邮箱wails init 初始化一个项目 分别输入- 项目名称- 二进制名称- 文件夹名称完成之后就能运行 build 里面exe文件完美运行..._wails 下载地址
文章浏览阅读179次。目录一 树上差分:二 tarjan算法求割边三tarjan求割点四 康托展开 五 后缀数组模板:六 后缀自动机模板:七 求最大子矩阵八 异或空间,线性基九 极大团(回溯法 剪枝)十 斯坦纳树 求给定点的最小联通代价十一 FFT(多项式乘法)十二 NTT十三回文树(统计回文串的数量)十四广义后缀自动机十五 欧拉回路十..._若x是搜索树的根节点,则x是割点当且仅当搜索树上存在至少两个子节点
文章浏览阅读434次。数据结构实验之链表七:单链表中重复元素的删除Time Limit: 1000MS Memory Limit: 65536KBProblem Description按照数据输入的相反顺序(逆位序)建立一个单链表,并将单链表中重复的元素删除(值相同的元素只保留最后输入的一个)。Input第一行输入元素个数 n (1 第二行输入 n 个整数,保证在 int 范_2122数据结构式
文章浏览阅读1k次。桌面运维的工作非常繁杂,在完成日程工作以外还要应对各种突发事件。该职业要求具有极高的响应能力,以便快速的解决故障以保证它人的工作可以顺利进行。对于从事桌面运维的工程师来说,具备高度的计算机理论知识和和一些运维工具是必不可少的。而运维人员可能遇到以下一些问题,IT管理员常用的管理,运维工具有哪些计算机维护常用软件有哪些电脑桌面运维工程师需要做些什么?常用电脑维修工具都有那些?运维人员必备工具教程..._1.计算机维修与维护常用的工具有哪些? (最少写 五个)
文章浏览阅读1.1w次,点赞7次,收藏20次。背景业务功能的需要,要求要去生产一个带有数据校验的导入模板。了解工具XSSFDataValidationConstraint(XSSF数据有效性验证约束):创建约束的时候,可以指定数据类型,以及数据列。例如:String strFormula = hiddenSheetName + "!$"+colStr+"$1:$"+colStr+"$65535"; XSSFDataValidationConstraint constraint = new XSSFDat_xssfdatavalidationconstraint