首页 > 其他分享 >k8s基础

k8s基础

时间:2023-11-14 15:25:29浏览次数:32  
标签:容器 kubectl Kubernetes get -- 基础 应用程序 k8s

k8s基础

Kubernetes(通常称为K8s)是一个开源的容器编排和管理平台,它的主要目标是简化和自动化容器化应用程序的部署、扩展、维护和运维。以下是对Kubernetes的简单理解:

  1. 容器编排:Kubernetes帮助您有效地管理和编排容器,确保它们在集群中的部署和运行。容器是轻量级的应用程序包装,包括应用程序和其所有依赖项,因此它们可以在任何环境中一致地运行。

  2. 自动化:K8s允许您定义应用程序的期望状态,然后自动管理集群,以使其达到该状态。这包括应用程序的部署、复制、负载均衡、自动扩展和故障处理等。

  3. 高可用性:Kubernetes提供高可用性,即使节点或容器出现故障,它也可以自动替代它们,并确保应用程序保持可用。

  4. 服务发现和负载均衡:K8s允许应用程序发现并与其他应用程序和服务通信,同时提供负载均衡以均匀分配流量。

  5. 配置管理:您可以定义应用程序的配置和环境变量,并轻松地对其进行更新,而无需重新部署应用程序。

  6. 多云支持:Kubernetes可以在不同的云提供商、数据中心和物理服务器上运行,允许跨多个云环境部署和管理容器化应用程序。

  7. 监控和日志:K8s提供监控和日志记录功能,以帮助您了解应用程序的性能和状态。

  8. 扩展性:Kubernetes具有强大的扩展性,可以集成各种插件和自定义资源,以满足特定需求。

总的来说,Kubernetes是一种用于自动化和管理容器化应用程序的工具,可以显著简化复杂的容器部署和维护任务。它适用于各种规模的应用程序和环境,并已成为容器编排领域的标准解决方案。

常用命令

以下是一些常用的Kubernetes(K8s)命令,用于管理和操作K8s集群:

  1. 基本信息查询

    • kubectl version:查看Kubernetes客户端和服务器的版本信息。
    • kubectl cluster-info:查看Kubernetes集群信息。
    • kubectl get nodes:列出集群中的所有节点。
    • kubectl get pods:列出所有运行中的Pod。
    • kubectl describe node <node-name>:查看特定节点的详细信息。
  2. 创建和管理资源

    • kubectl create -f <yaml-file>:使用YAML文件创建资源。
    • kubectl apply -f <yaml-file>:使用YAML文件创建或更新资源。
    • kubectl delete <resource-name>:删除资源。
    • kubectl edit <resource-name>:编辑资源的定义。
    • kubectl replace -f <yaml-file>:用新的YAML文件替换资源。
    • kubectl scale deployment <deployment-name> --replicas=<replica-count>:调整部署的副本数。
    • kubectl expose deployment <deployment-name> --type=NodePort:将Deployment暴露为NodePort服务。
  3. 查看和日志

    • kubectl logs <pod-name>:查看Pod的日志。
    • kubectl describe pod <pod-name>:查看Pod的详细信息。
    • kubectl get services:列出所有服务。
    • kubectl get deployments:列出所有部署。
  4. 扩展和自动伸缩

    • kubectl autoscale deployment <deployment-name> --min=2 --max=5 --cpu-percent=80:设置自动伸缩规则。
    • kubectl get hpa:查看水平自动伸缩(HPA)状态。
  5. 命名空间

    • kubectl create namespace <namespace-name>:创建新的命名空间。
    • kubectl get namespaces:列出所有命名空间。
    • kubectl config set-context --current --namespace=<namespace-name>:设置默认命名空间。
  6. 存储管理

    • kubectl get pv:列出持久卷(Persistent Volumes)。
    • kubectl get pvc:列出持久卷声明(Persistent Volume Claims)。
    • kubectl exec -it <pod-name> -- /bin/sh:在Pod中打开一个终端。
  7. 安全和身份验证

    • kubectl create sa <service-account-name>:创建服务帐户。
    • kubectl create clusterrolebinding <name> --clusterrole=cluster-admin --serviceaccount=<namespace>:<service-account>:将服务帐户绑定到角色。
    • kubectl auth can-i list pods:检查权限。
  8. 升级和回滚

    • kubectl set image deployment/<deployment-name> <container-name>=<new-image>:升级Deployment中的容器镜像。
    • kubectl rollout status deployment/<deployment-name>:检查升级状态。
    • kubectl rollout undo deployment/<deployment-name>:回滚升级。

这只是一些常见的Kubernetes命令示例。Kubernetes具有丰富的命令和功能,你可以根据需要查阅官方文档或运行 kubectl --help 以获取更多详细信息和命令选项。

标签:容器,kubectl,Kubernetes,get,--,基础,应用程序,k8s
From: https://www.cnblogs.com/mio1221/p/17831671.html

相关文章

  • 结合大语言模型与亚马逊云科技基础服务,构建知识库智能搜索问答方案
     背景 本篇主要介绍LangChain和开源大语言模型集成,结合亚马逊云科技的云基础服务,构建基于企业知识库的智能搜索问答方案。  LangChain介绍 LangChain是一个利用大语言模型的能力开发各种下游应用的开源框架,它的核心理念是为各种大语言模型应用实现通用的接口,简化大语言模型应......
  • k8s pod的共享资源有哪些?
    概述1)PID命名空间:Pod中的不同应用程序可以看到其他应用程序的进程ID;2)网络命名空间:Pod中的多个容器能够访问同一个IP和端口范围;3)IPC命名空间:Pod中的多个容器能够使用SystemVIPC或POSIX消息队列进行通信;4)UTS命名空间:Pod中的多个容器共享一个主机名;5)Volumes(共享存储卷):Pod......
  • 网络基础
    网络通信过程数据传递就像快递数据就是物品,寄件人发件人是源目IP地址或者MAC地址,中间的交换机和路由器就像快递站。网关的作用是对数据报文进行解封装,然后读取其目的信息,然后进行封装,根据目的信息把数据报文转发到可以到目的计算机所在网络的网关。计算机A发出数据-----数据到......
  • 秦疆的Java课程笔记:30 基础 三元运算符及小结
    扩展赋值运算符:+=,-=,*=,/=publicclassDome1{publicstaticvoidmain(String[]args){inta=10;intb=20;a+=b;//相当于a=a+bSystem.out.println("a="+(a));intc=30;intd=15;......
  • 【C 语言基础】double类型大小比较的方法——以Java为例
    问题在Java中,int类型数据的大小比较可以使用双等号,double类型则不能使用双等号比较大小(0,0==0.0 是不可以的),那若使用double类型时怎么进行比较呢? 方法(1)转换为字符串如果要比较的两个double数据的字符串精度相等,可以将数据转换成string然后借助string的equals方法来间接......
  • k8s中是如何计算pod的计算资源(cpu和内存)的requests和limits值的?
    1、结论 对于pod来说,cpu和内存的requests和limits的值,等于pod中所有容器的requests和limits的值的总和。 具体来说:pod的requests的大小,等于所有的容器的requests的大小的和,如果某个容器没有设置requests,则这个值是0.pod的limits的值的大小,等于所有容器的limits的值的大......
  • 【C 语言基础】C风格数组初始化”={a};方式”的特性
    当进行数组初始化的时候,可以采用={一个元素的值}的方式,例如:intintarr[10]={1};intchararr[20]={'a'};使用这种方式初始化,可以将数组所有成员都初始化,没有随机值,保证了安全。其中,数组第一个值为指定元素的值,其余成员的值全为0。 测试代码:#include"iostream"usi......
  • (十七)C#编程基础复习——数组
    和其他编程语言一样C#也支持数组,数据是一个用来存储相同类型数据的、固定大小的、具有连续内存位置的顺序集合。数组中的每个元素都对应一个索引值,索引从0开始依次递增,我们可以通过索引来访问数据中的指定元素。假如我们要存储100名学生的分数,若使用普通变量的话可能需要定义100......
  • k8s deploy资源更新与检查
    在k8s的资源对象中deployment类型的资源对象几乎是我们在集群运维中打交道最多的了,手动修改的话很方便命令也简单。但是如果想把这些操作放到脚本中形成自动化的过程就得想其他的方法了。下面介绍两个命令,直接在命令行修改deployment的镜像#kubectlsetimagedeploymentngin......
  • (十六)C#编程基础复习——可空类型
    一、可空类型在C#1.X的版本中,一个值类型的变量是不可以被赋值为null(空值)的,否则会产生异常。而在C#2.0中,新增了一个nullable类型,可以使用nullable类型定义包含null值的数据,例如,你可以在nullable<Int32>(可为空的int32类型)类型的变量中存储-2147483648到2147483647之间的任何只或......