K8S 使用(1)- 基本命令

这篇具有很好参考价值的文章主要介绍了K8S 使用(1)- 基本命令。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

根据上文完成部署k8s后,我们需要了解如何使用k8s.首先我们需要了解如何使用K8S的一些基础命令及主要概念。

尚不清楚如何部署的请参考:单master部署简要步骤

如果您熟悉了k8s基本命令,可以跳过此章节。

目录

先看一下这张图

2. 节点  node

3. pod - 最小可部署的计算单元

4. 服务  service

5. 部署控制器 deployment

4. 任务/作业  job


先看一下这张图

K8S 使用(1)- 基本命令

1. 命名空间  namespace

此处的命名空间就如同代码语言中命名空间,主要起分组的作用。

  • 创建一个namespace
kubectl create namespace <namespace名称>

执行后,系统会提示:
namespace/dev created

  • 获取namespace
kubectl get ns

运行结果示例:

NAME              STATUS   AGE
default           Active   18h
kube-flannel      Active   59m
kube-node-lease   Active   18h
kube-public       Active   18h
kube-system       Active   18h

大家可以看到,此处ns就是namesapce的缩写

默认的namespace是default

2. 节点  node

node是k8s主要的载体单位,承载1个或多个pod。有master和子节点的区分。常规master节点不安装业务pod。

节点信息通过k8s api控制(增删查改),并保存在etcd上。

节点可以是真是主机,也可以是虚拟设备。

Pod、容器与Node的关系图:

K8S 使用(1)- 基本命令

查看节点信息

kubectl describe node <节点名称>

3. pod - 最小可部署的计算单元

1 pod = 1 Pause容器 + n * User Container  

Pod里的多个业务容器:共享Pause容器的IP、共享Pause容器挂接的Volume(数据卷)

  • 在此namespace下创建并运行一个nginx的Pod
kubectl run pod --image=nginx:latest -n dev


kubectl run --generator=deployment/apps.v1 is DEPRECATED and will be removed in a future version. Use kubectl run --generator=run-pod/v1 or kubectl create instead.
deployment.apps/pod created

  • 查看namespace ( 这里是dev)下的pod
kubectl get pod -n dev


NAME  READY   STATUS    RESTARTS   AGE
pod-xx   1/1     Running   0          21s

此外常用参数还有--show-labels,显示pod标签

[root@n22 ~]# kubectl get pods --show-labels
NAME                   READY   STATUS      RESTARTS   AGE    LABELS
hello-28104718-2v2xp   0/1     Completed   0          5m8s   controller-uid=ee2cf0e0-59de-4656-8713-ae0c182edae5,job-name=hello-28104718

  • 删除指定的pod
kubectl delete pod nginx-7cbb8cd5d8-b28pc

成功提示:pod "nginx-7cbb8cd5d8-b28pc" deleted

  • 删除指定的namespace,这里是dev
kubectl delete ns dev

成功提示:namespace "dev" deleted

4. 服务  service

service引入主要是解决pod的动态变化,提供统一的访问入口。

K8S 使用(1)- 基本命令

5. 部署控制器 deployment

一个 Deployment 为 Pod 和 ReplicaSet 提供声明式的更新能力。

使用场景:
    1、创建一个Deplyment对象来生成对应的ReplicaSet,并完成Pod副本的创建过程。
    2、检查Deployment的状态来看部署动作是否完成(Pod副本的数量是否达到预期的值)。
    3、更新Deployment以创建新的Pod(eg:镜像升级)。
    4、如果当前Deployment不稳定,则回滚到一个早先的Deployment版本。
    5、暂停和恢复Deployment,以便于一次性修改多个PodTemplateSpec 的配置项,之后再恢复Deployment,进行新的发布。
    6、扩容和所容。扩容情况下,Deployment可以应对更高的负载。
    7、查看Deployment的状态,以此作为发布是否成功的指标。
    8、清理不再需要的旧版本ReplicaSets。

这里需要说明几点:

     1、development不是必须的

     2、development可以被用来管理多个pod,避免用户单独维护pod

  • 查看创建的deployment
kubectl get deployments
  • 创建deployment

        一般采用yaml配置文件的方式创建development ,配置文件参考:集群管理 | Kubernetes

kubectl apply -f nginx-deployment.yaml 
  • 更新deployment

        更新版本

kubectl set image deployment/nginx nginx=nginx:1.22.1

        查看更新进度

kubectl rollout status deployment/nginx

        编辑deployment来更新,编辑保存后会自动更新配置

kubectl edit deployment/nginx
  • 删除deployment

如果同一个配置文件中包含多个资源对象,可以批量删除

kubectl delete -f https://k8s.io/examples/application/nginx-app.yaml

单个deployment删除

kubectl delete deployment/nginx

4. 任务/作业  job

任务是定时执行指定任务的一个功能,比较常用的。Linux服务之前通常使用crontab完成。 

使用yanml文件进行配置

应用配置文件:

kubectl apply -f k8scron-job-cron.yaml 

删除job

# 删除指定job

kubectl delete job <job-name>

# 删除已完成job
kubectl delete job $(kubectl get jobs | awk '$3 ~ 1' | awk '{print $1}')

# 删除未完成job
kubectl delete job $(kubectl get jobs | awk '$3 ~ 0' | awk '{print $1}')

可以看作资源对象的有:Node、Pod、Replication Controller、Service

参考文章:

 K8S核心概念及名词讲解(kubernetes 前言篇)_爵影子的博客-CSDN博客 k8s之Service_k8s service_江南道人的博客-CSDN博客文章来源地址https://www.toymoban.com/news/detail-511642.html

到了这里,关于K8S 使用(1)- 基本命令的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • k8s服务部署核心流程:以Jenkins为核心,从Gitee拉取代码,然后进行maven构建,之后使用docker命令打镜像,并推送镜像到harbor仓库,之后远程调用k8s命令创建服务

    前提是我们在自己电脑上模拟整个流程。 假设我们需要搭建一主一从的k8s集群,那就需要安装VMvare和Centos7(点击我查看安装文档), 然后就可以在这两个虚拟机上搭建k8s集群了(点击我查看安装文档), 一个最简单的devops流程已经在标题中写明了, 其中可以搭建gitlab(点

    2024年02月02日
    浏览(57)
  • CI/CD—K8S 基本理解与部署

    Kubernetes 是一款容器的编排调度工具,来源于 Google 开源的 Brog 系统。Kubernetes简称K8S,是用8代替8个字符 “ubernete” 而成的缩写,用于管理云平台中多个主机上的容器化的应用,Kubernetes 的目标是让部署容器化的应用简单并且高效,Kubernetes提供了应用部署,规划,更新,维护

    2024年02月13日
    浏览(53)
  • K8S - 架构、常用K8S命令、yaml资源清单部署、Ingress、故障排查、存储卷

    K8S官网文档:https://kubernetes.io/zh/docs/home/ 学习东西还是要从官方文档入手; 用于管理、扩展、自动部署容器; 其实就是 对多个跨机器的Docker集群; 服务发现和负载均衡 Kubernetes 可以使用 DNS 名称或自己的 IP 地址来暴露容器。 如果进入容器的流量很大, Kubernetes 可以负载均

    2024年02月09日
    浏览(65)
  • 超详细~使用shell脚本完成用kubeadm工具对k8s集群的搭建

    目录 1.环境规划 2.my_ssh.sh脚本: 1.修改/etc/hosts文件部分: 2.生成本地ssh公钥部分: 3.复制ssh公钥部分: 4.复制本地的hosts文件部分: 5.完整脚本: 3.my_env.sh脚本: 1.尝试连接主机部分: 2.升级内核部分 3.关闭防火墙,禁止使用selinux部分: 4.配置chrony服务器部分: 5.禁用swap分区

    2023年04月22日
    浏览(44)
  • K8S容器编排基本使用

    物理单机 – 虚拟机(VMware)-- IAAS(基础设施即服务 比如够买jsp主机模式)-- OPENSTACK(多个机器分片使用思想)-- docker(容器化) – K8S(云原生自动化部署自动化编排) kubernetes k和s之间有8个字母所以命名为K8S,用于自动部署、扩展、统一管理容器化应用集群,支持云平台

    2024年01月22日
    浏览(50)
  • 使用kubekey部署k8s集群和kubesphere、在已有k8s集群上部署kubesphere

    环境: centos 7.6、k8s 1.22.17、kubesphere v3.3.0 本篇以kubesphere v3.3.0版本讲解。 kubesphere 愿景是打造一个以 kubernetes 为内核的云原生分布式操作系统,它的架构可以非常方便地使第三方应用与云原生生态组件进行即插即用(plug-and-play)的集成,支持云原生应用在多云与多集群的统一

    2024年02月04日
    浏览(69)
  • 【k8s完整实战教程4】使用kubesphere部署项目到k8s

    系列文章:这个系列已完结,如对您有帮助,求点赞收藏评论。 读者寄语: 再小的帆,也能远航! 【k8s完整实战教程0】前言 【k8s完整实战教程1】源码管理-Coding 【k8s完整实战教程2】腾讯云搭建k8s托管集群 【k8s完整实战教程3】k8s集群部署kubesphere 【k8s完整实战教程4】使用

    2023年04月18日
    浏览(61)
  • k8s包管理工具helm简介及基本使用

     helm是k8s的包管理工具,类似于centos 的yum;  当前版本有helm2、helm3 相对来说helm3功能更加完善,使用更加方便 主要作用是相较于传统的k8s部署应用需要手工编排yaml文件(比如Deployment.yml、service.yml、ingress.yml等),使用helm可以快速部署应用。 helm3与helm2 的区别在于helm3删除了

    2024年02月14日
    浏览(36)
  • K8S学习指南(2)-docker的基本使用

    Docker 是一款开源的容器化平台,允许开发者将应用程序及其依赖项打包为一个轻量级、可移植的容器。这种容器化技术使得应用程序在不同环境中能够更加一致、可靠地运行。本教程将深入介绍 Docker 的使用方法,包括容器的创建、管理、网络配置、数据卷使用以及 Docker C

    2024年02月04日
    浏览(42)
  • Jenkins使用k8s部署应用

    1、jenkins在k8s内部署(请参考其他人的文章) 2、jenkins安装kubenents相关插件 3、配置k8s云         非常重要,目的是实现jenkins可以远程调用k8s进行部署,并可实现安装jenkins-slave进行构建。使得不再依赖jenkins单机能力进行构建,比较适合一定规模的公司。  插件安装后,打开

    2024年02月15日
    浏览(61)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包