三、k8s快速入门之Kubectl 命令基础操作

news/2024/11/1 19:50:07/
⭐️创建Pod
[root@master ~]# kubectl run nginx --image=harbor.tanc.com/library/ngix:latest 
kubectl run --generator=deployment/apps.v1 is DEPRECATED and will be rmoved in a future version. Use kubectl run --generator=run-pod/v1 or kbectl create instead.
deployment.apps/nginx created

⭐️查看容器状态

[root@master ~]# kubectl run nginx --image=harbor.tanc.com/library/ngix:latest 
kubectl run --generator=deployment/apps.v1 is DEPRECATED and will be rmoved in a future version. Use kubectl run --generator=run-pod/v1 or kbectl create instead.
deployment.apps/nginx created         
⭐️开放端口
kubectl expose [pod名] --port [端口号]     
⭐️查看服务service
kubectl get svc              

⭐️ 增加副本数

kubectl scale deployment [pod名] --repolicas=[副本数]

⭐️删除pod-如果你的删除后你设定的副本数大于你当前pod数,rs就会给你在重新创建一个

kubectl delete pod [pod名]   

🌟 实列

创建nginx pod,端口映射为80-->8000,期待副本数为3个

kubectl run nginx --image=harbor.tanc.com/library/nginx:latest 
kubectl scale deployment nginx --replicas=3
kubectl expose deployment nginx --port=8000 --target-port=80

查看一下有几个副本数

[root@master ~]# kubectl get pod -o wide
NAME                     READY   STATUS     RESTARTS   AGE   IP           NODE    NOMINATED NODE   READINESS GATES
nginx-6b48575596-bsdt2   1/1     Running   0          16m   10.244.2.3   node2   <none>           <none>
nginx-6b48575596-fbdjf   1/1     Running   0          22m   10.244.2.2   node2   <none>           <none>
nginx-6b48575596-g892j   1/1     Running   0          22m   10.244.1.3   node1   <none>           <none>

删除一个副本试一下

[root@master ~]# kubectl delete pod nginx-6b48575596-g892j
pod "nginx-6b48575596-g892j" deleted

在来查看一下 它又重新运行了一个

[root@master ~]# kubectl get pod
NAME                     READY   STATUS    RESTARTS   AGE
nginx-6b48575596-bsdt2   1/1     Running   0          22m
nginx-6b48575596-fbdjf   1/1     Running   0          27m
nginx-6b48575596-wzmdp   1/1     Running   0          44s

由于我们映射了一个端口号我们可以试着访问一下

[root@master ~]# kubectl get pod -o wide
NAME                     READY   STATUS    RESTARTS   AGE     IP           NODE    NOMINATED NODE   READINESS GATES
nginx-6b48575596-bsdt2   1/1     Running   0          23m     10.244.2.3   node2   <none>           <none>
nginx-6b48575596-fbdjf   1/1     Running   0          29m     10.244.2.2   node2   <none>           <none>
nginx-6b48575596-wzmdp   1/1     Running   0          2m34s   10.244.1.4   node1   <none>           <none>
⭐️增加\减少副本期望数
kubectl scale deploy [deploy名] --replica=[副本数]
⭐️隔离和恢复隔离
kubectl cordon <node_name>
kubectl uncordon <node_name>
⭐️驱逐
kubectl drain <node>
🌟 滚动更新

创建一个deploy在创建三个nginx:v1pod

[root@master test]# cat apply.yaml 
apiVersion: extensions/v1beta1
kind: Deployment
metadata:name: dp-test1labels:test: dp1
spec:replicas: 3template:metadata:name: weblabels:app: webappspec:containers:- name: nginx-appimage: harbor.tanc.com/library/nginx:v1imagePullPolicy: IfNotPresentports:- name: webcontainerPort: 80

执行

kubectl apply -f apply.yaml --record=true

–record的作用是将当前命令记录到revision中,可以知道每个revision对应的是哪个配置文件。

查看deploy信息

kubectl describe dp-test1

把镜像换成v2在试一下

 kubectl describe deploy dp-test1
Events:Type    Reason             Age   From                   Message----    ------             ----  ----                   -------Normal  ScalingReplicaSet  10m   deployment-controller  Scaled up replica set dp-test1-688f6479b to 3Normal  ScalingReplicaSet  7s    deployment-controller  Scaled up replica set dp-test1-b5bc484f9 to 1Normal  ScalingReplicaSet  7s    deployment-controller  Scaled down replica set dp-test1-688f6479b to 2Normal  ScalingReplicaSet  7s    deployment-controller  Scaled up replica set dp-test1-b5bc484f9 to 2Normal  ScalingReplicaSet  5s    deployment-controller  Scaled down replica set dp-test1-688f6479b to 1Normal  ScalingReplicaSet  5s    deployment-controller  Scaled up replica set dp-test1-b5bc484f9 to 3Normal  ScalingReplicaSet  5s    deployment-controller  Scaled down replica set dp-test1-688f6479b to 0上面的日志信息就描述了滚动升级的过程:
① 启动一个新版Pod。
② 把旧版Pod数量降为2。
③ 再启动一个新版,数量变为2。
④ 把旧版Pod数量降为1。
⑤ 再启动一个新版,数量变为3。
⑥ 把旧版Pod数量降为0。

查看revision历史记录,

kubectl rollout history deployment dp-test1
deployment.extensions/dp-test1 
REVISION  CHANGE-CAUSE
1         kubectl create --filename=apply.yaml --record=true
2         kubectl create --filename=apply.yaml --record=true      

回滚

kubectl rollout undo deployment  dp-test1 --to-revision=1 ##这样他就会到v1了

查看

[root@master test]# kubectl get deploy -o wide
NAME       READY   UP-TO-DATE   AVAILABLE   AGE   CONTAINERS   IMAGES                             SELECTOR
dp-test1   3/3     3            3           27m   nginx-app    harbor.tanc.com/library/nginx:v1   app=webapp
⭐️ 进入容器
kubectl exec -it [pod]

​ 未仅允许禁止转载


http://www.ppmy.cn/news/1543675.html

相关文章

jlink识别不到gd32@

jlink识别不到gd32 SW Device 1、原因可能是jlink硬件HW版本过低&#xff0c;或者PC端jlink工具安装包版本过低&#xff1b; 通过jlink configuration.exe升级HW固件版本&#xff1b; PC端上位机jlink工具版本下载 2、上电默认一些选项导致的低级识别不到 诸如此类的&#xff0…

WPF+MVVM案例实战(九)- 霓虹灯字效果控件封装实现

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 1、运行效果2、主菜单与界面实现1、主菜单2、霓虹灯字界面实现3、字体资源获取3、控件封装1.创建自定义控件2、依赖属性实现3、封装控件使用4、运行效果4、源代码获取1、运行效果 2、主菜单与界面实…

《Python游戏编程入门》注-第4章2

《Python游戏编程入门》的“4.2.2 键盘事件”中介绍了通过键盘事件来监听键盘按键的方法。 1 键盘事件 玩家点击键盘中某个按键实际上包含了两个动作&#xff1a;点击按键和释放按键&#xff0c;也就是按键按下和松开。按键按下的对应的事件是KEYDOWN&#xff0c;按键松开对应…

使用 fzf 实现文件快速查找、打开及执行

使用 fzf 实现文件快速查找、打开及执行 本文将介绍如何安装 fzf&#xff0c;配置文件&#xff0c;以便使用 cdf 和 cdd 函数来快速查找、打开、编辑、编译并运行文件或快速进入指定目录。cdf 是一个文件查找和执行工具&#xff0c;cdd 是一个目录查找工具。默认情况下&#x…

JIME智创:抖音创作者的AI绘画与视频生成创作神器

在短视频和社交内容创作的时代&#xff0c;创意和速度成了成功的关键。无论是视频博主、图文创作者还是品牌推广人&#xff0c;他们都面临着如何快速生成高质量图片与视频素材的挑战。JIME智创正是针对这一需求推出的AI创作工具&#xff0c;专为抖音的图文和视频创作者设计&…

go语言中defer用法详解

defer 是 Go 语言中的一个关键字&#xff0c;用于延迟执行某个函数或语句&#xff0c;直到包含它的函数返回时才执行。defer 语句在函数执行结束后&#xff08;无论是正常返回还是由于 panic 返回&#xff09;都将执行。 defer 的基本用法 延迟执行&#xff1a; 当你在一个函数…

计算机网络(Ⅴ)网络核心

电路交换 为源主机分配了独享的线路。有资源浪费是缺点。 优点是保障了性能&#xff0c;但是资源共享的能力较差&#xff08;计算机的通讯不是持续的&#xff0c;具有突发性&#xff0c;不适用于电路交换&#xff09; 频分&#xff08;FDM&#xff09;&#xff1a;交换节点与交…

2024不可不会的StableDiffusion

需要Stable Diffusion整合包可以扫描下方,免费获取 01 引言 这是我在学习StableDiffusion (稳定扩散模型 简称SD)的第一篇入门文章&#xff0c;主要用于介绍稳定扩散模型和该领域的其他研究。在本文中&#xff0c;我想简要介绍一下如何使用Diffusers 扩散库&#xff0c;来创建…