首页 > 其他分享 >k8s实战入门——Deployment

k8s实战入门——Deployment

时间:2022-11-09 14:11:06浏览次数:32  
标签:kubectl 入门 -- dev nginx master Deployment k8s root

Deployment

在kubernetes中,Pod是最小的控制单元,但是kubernetes很少直接控制Pod,一般都是通过Pod控制器来完成的。Pod控制器用于pod的管理,确保pod资源符合预期的状态,当pod的资源出现故障时,会尝试进行重启或重建pod。

在kubernetes中Pod控制器的种类有很多,这里只介绍一种:Deployment。

image-20200408193950807

命令操作
# 命令格式: kubectl create deployment 名称 [参数]
# --image 指定pod的镜像
# --port 指定端口
# --replicas 指定创建pod数量
# --namespace 指定namespace

[root@master ~]# kubectl run nginx --image=nginx:latest --port=80 --replicas=3 -n dev
注:在1.18版及以后,使用kubectl run时不能创建多副本
Flag --replicas has been deprecated, has no effect and will be removed in the future.
正确的创建方式
kubectl create deployment xxx [-n 命名空间] 或 kubectl create deploy xxx [-n 命名空间] kubectl scale deployment xxx [--replicas=正整数] [-n 命名空间] 注:要先创建一个deployment,才能创建多副本(多pod)

 

在命名空间dev下创建名为nginx1的deployment,此时会产生一个由deployment控制的pod
[root@master ~]# kubectl create deployment nginx1 --image=nginx:latest -n dev
[root@master ~]# kubectl get pods -n dev

在命名空间dev下根据名为nginx1的deployment扩展为3个Pod
[root@master ~]# kubectl scale deployment nginx1 --replicas=3 -n dev
[root@master ~]# kubectl get pods -n dev

查看deployment的信息
[root@master ~]# kubectl get deploy -n dev
# UP-TO-DATE:成功升级的副本数量
# AVAILABLE:可用副本的数量
[root@master ~]# kubectl get deploy -n dev -o wide

# 查看deployment的详细信息

[root@master ~]# kubectl describe deploy nginx1 -n dev

[root@master ~]# kubectl get pods --show-labels -n dev
# 删除
[root@master ~]# kubectl delete deploy nginx1 -n dev

yaml配置操作

创建一个deploy-nginx.yaml,内容如下:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx
  namespace: dev
spec:
  replicas: 3
  selector:
    matchLabels:
      run: nginx
  template:
    metadata:
      labels:
        run: nginx
    spec:
      containers:
      - image: nginx:latest
        name: nginx
        ports:
        - containerPort: 80
          protocol: TCP
然后就可以执行对应的创建和删除命令了:

创建

[root@master ~]# kubectl create -f deploy-nginx.yaml

查看

[root@master ~]# kubectl get pod -n dev

删除

[root@master ~]# kubectl delete -f deploy-nginx.yaml

参考

黑马B站k8s课程https://www.bilibili.com/video/BV1Qv41167ck/
https://gitee.com/yooome/golang/blob/main/k8s%E8%AF%A6%E7%BB%86%E6%95%99%E7%A8%8B-%E8%B0%83%E6%95%B4%E7%89%88/k8s%E8%AF%A6%E7%BB%86%E6%95%99%E7%A8%8B.md
https://www.yuque.com/fairy-era/yg511q/xyqxge

标签:kubectl,入门,--,dev,nginx,master,Deployment,k8s,root
From: https://www.cnblogs.com/gys001/p/16873380.html

相关文章

  • 超详细的QSS样式表入门Demo
    超详细的QSS样式表入门Demo_mahuifa的博客-CSDN博客_qss样式超详细的QSS样式表入门Demomahuifa已于 2022-08-0222:52:28 修改2717收藏165分......
  • 带你少走弯路:强烈推荐的Keras快速入门资料和翻译(可下载)
    上次写了TensorFlow和PyTorch的快速入门资料,受到很多好评,读者强烈建议我再出一个keras的快速入门路线,经过翻译和搜索网上资源,我推荐4份入门资料,希望对大家有所帮助。备注:另......
  • OpenCV官方免费视频教程->快速入门OpenCV与AI使用 (视频 + 源码)
    课程介绍  OpenCV官方发布的免费OpenCV速成视频教程。本课程将帮助您迈出使用OpenCV学习计算机视觉和AI的第一步。您将学习并接触到各种令人兴奋的主题,例如图像和......
  • K8S部署metrics-server
    K8S部署metrics-server前言在新版的K8S中,系统资源的采集均使用Metrics-Server服务,可以通过Metrics-Server服务采集节点和Pod的内存、磁盘、CPU和网络的使用率等信息。......
  • 使用OkHttp发送POST请求的快速入门指南
    英文原文:https://www.baeldung.com/okhttp-post1介绍本文将介绍OkHttp客户端的基本用法。在本篇简短的技术文章中,我们将特别介绍OkHttp3.x版本中发送Post请求的不......
  • 尚硅谷java入门b站零基础 异常处理 +多线程+部分项目三 2022.3.26
    380如何自定义异常/**如何自定义异常类?*1.继承于现有的异常结构:RuntimeException、Exception*2.提供全局常量:serialVersionUID*3.提供重载的构造器**/publicc......
  • 尚硅谷Java入门哔哩哔哩274p-289p(2022.3.12)
    274super调用属性和方法super关键字的使用1.super理解为:父类的2.super可以用来调用:属性,方法,构造器3.super的使用:调用属性和方法 3.1我们可以在子类的方法或构造器中,通过......
  • 尚硅谷java零基础入门从221p开始的笔记
    221***面向对象上四种权限修饰的理解封装性的体现需要权限修饰符来配合1.java规定的四种权限(从小到大排列)private,缺省,protected,publicpublic类可以在任意地方被访问pr......
  • 尚硅谷java入门bilibili(290p-303p)2022.3.13
    290p多态性练习:几何图形*定义三个类,父类GeometricObject代表几何形状,子类Circle代表圆形,MyRectangle代表矩形publicclassGeometricObject{//几何图形protectedSt......
  • 使用kubeadm方式搭建K8S集群
     kubeadm是官方社区推出的一个用于快速部署kubernetes集群的工具。这个工具能通过两条指令完成一个kubernetes集群的部署:#创建一个Master节点kubeadminit#将一......