首页 > 其他分享 >3.声明式API及指令式命令创建namespace、pod、service

3.声明式API及指令式命令创建namespace、pod、service

时间:2023-07-30 17:04:58浏览次数:34  
标签:kubectl service get -- demo namespace demoapp API

应用编排运行在kubernetes上的条件
1、以容器化形式,得有可用的Image
2、编排、调度、运行应用的最小单元是pod
3、Controller模式(控制器模式)
4、声明式API
声明式API
声明式API:声明资源对象的终态,达成终态的依赖项是Controller

     声明多个资源终态:以应用为中心
        工作负载型Controller资源对象: Deployment 
            应用更新 
            扩容和缩容
            ……
        服务的固定访问入口,负载均衡功能:Service
            ClusterIP 
            NodePort

声明式API资源类型
~# kubectl api-resources(列出所有资源类型,不够用,可扩展资源类型)
         NAME         SHOUTNAMES  APIVERSION    NAMESPACED              KIND
资源类型的名字,都是复数形式  简写形式    版本    是否是名称空间级别类型   资源类型标示:单数每个首字母大写

~# kubectl api-versions(查看组,相近的资源类型,会被划分至同一个组中;不同的功能,会被分类到不同的组合)
 每个的组的版本号,独立演进
        alpha: 内测
        beta:公测   (v1beta1)公测版
        stable:稳定 (v1)稳定版

声明式API资源范式:五个一级字段
                apiVersion: GROUP/VERSION     (类型源数据/对应资源所属群组)
                Kind: Kind                    (类型源数据/类型类型,对应表的名称)
                metadata:                     (对象源数据)
                  name:
                  namespace:
                  lables:                    (标签)
                    key1: value1         
                spec: {}                      (对象源数据/定义资源对象的终态)
                  containers:     (容器将共享同一组pause的network、IPC、和UTS名称空间)
                  - name:   
                    image:  
                status: <Object>, 资源的实际状态,由系统组件自行负责维护

~# kubectl explain <Kind>  查看特定资源规范
指令式命令:
创建deployment,编排一个无状态应用
指令式命令
                create namespace, deployment, service
                get <TYPE> <NAME> ...
                get <TYPE1>/<NAME1> <TYPE2>/<NAME2> ...
                exec
                describe
                ...
创建名称空间
kubectl create namespace <NAME>
如  kubectl create namespace demo
namespace/demo created
后面不跟<NAME>, 为默认使用的名称空间 default
系统级的名称空间
kube-system
kube-node-leases
kube-public

查看或列出资源对象
kubectl get namespace
创建pod
创建一个pod放在指定的名称空间下
kubectl create deployment demoapp --image=ikubernetes/demoapp:v1.0 --replicas=2 -n demo

查看deployment自动创建出来的pods
kubectl get pods -n demo

查看pods详细信息
kubectl describe deployments demoapp -n demo

查看单个pod的详细信息
kubectl describe pod demoapp-64794886fd-rn9xl -n demo

查看pods的IP地址
kubectl get pods -o wide -n demo
         
查看pods的日志
kubectl logs demoapp-64794886fd-rn9xl -n demo
           
删除pods
kubectl delete deployment demoapp -n demo

持续监视
kubectl get pods -w

手动扩缩容
kubectl scale deployment/demoapp ----replicas=6 -n demo
kubectl scale deployment/demoapp ----replicas=4 -n demo
创建service
类型:
ClusterIP:仅支持集群内部的客户访问
NodePort:支持集群内部客户端访问;同时,支持集群外部的客户端通过任何一个的节点IP地址进行访问,但要使用特定端口
分配的范围:30000-32768

ClusterIP形式创建方法
kubectl create service clusterip NAME [--tcp=<port>:<targetPort>] [--dry-run=server|client|none]

NodePort形式创建方法
kubectl create service nodeport NAME [--tcp=port:targetPort] [--dry-run=server|client|none] [options]
                   
显示pod内部的接口和接口的ip地址状态信息
kubectl exec -it demoapp-64794886fd-wmn59 -n demo -- ifconfig
进入交互式接口
kubectl exec -it demoapp-64794886fd-wmn59 -n demo -- /bin/sh
交互式接口下查看监听端口
[root@demoapp-64794886fd-wmn59 /]# netstat -ntl
示例:
kubectl create service nodeport demoapp --tcp=80:80 -n demo
service/demoapp created
查看service
kubectl get service -n demo
查看service的IP地址和端口号
kubectl get svc -n demo
交互式访问: kubectl exec -it demoapp-64794886fd-wmn59 -n demo -- /bin/sh
curl 10.111.252.250:8080
集群内部可用名称访问 demoapp:8080
外部访问: curl 10.111.252.250:30483
创建一个专用的交互式测试客户端:
~# kubectl run client-$RANDOM --image=ikubernetes/admin-box:v1.2 --restart=Never -it --rm --command -- /bin/bash

标签:kubectl,service,get,--,demo,namespace,demoapp,API
From: https://blog.51cto.com/lmm01/6901363

相关文章

  • RectTransform的两个设置大小的api
     varrtf=GetComponent<RectTransform>();rtf.SetSizeWithCurrentAnchors(RectTransform.Axis.Horizontal,200);SetSizeWithCurrentAnchors不会改变anchorMin和anchorMax设置大小会根据pivot的值,往两边扩充 varrtf=GetComponent<RectTransform>();rtf.SetInset......
  • 如何将百度翻译的API接入第三方插件或软件中?
      本文介绍获取百度翻译官方接口及其密钥,并将接口授权给自己或他人开发的软件或插件的方法。  首先,打开百度翻译开放平台网站,首先点击右上角进行登录。  登录后,选择“管理控制台”。  首次进入“管理控制台”,需要首先注册为百度翻译的开发者身份。在这里,我们选择“个......
  • [翻译] 如何在 Node.js 中使用 OpenAI 的 ChatGPT API
    人工智能(AI)一直在彻底改变我们与技术交互的方式,而聊天机器人是这一趋势最突出的例子之一。随着对能够理解自然语言并提供有用响应的聊天机器人的需求不断增加,OpenAI的ChatGPTAPI已成为开发人员的热门选择。在这篇博文中,我们将探讨如何在Node.js(一种用于构建Web应用......
  • PHP调用API接口的方法及实现
    随着互联网、云计算和大数据时代的到来,越来越多的应用程序需要调用第三方的API接口来获取数据,实现数据互通和协同工作。PHP作为一种常用的服务器端语言,也可以通过调用API接口来实现不同系统的数据交互和整合。本文将介绍PHP调用API接口的方法及实现过程。一、API接口简介API(Applica......
  • PHP调用API接口的方法及实现
    随着互联网、云计算和大数据时代的到来,越来越多的应用程序需要调用第三方的API接口来获取数据,实现数据互通和协同工作。PHP作为一种常用的服务器端语言,也可以通过调用API接口来实现不同系统的数据交互和整合。本文将介绍PHP调用API接口的方法及实现过程。一、API接口简介API(Appl......
  • HTML5 Api 获取网络地理信息
    定位(GPS):台式机几乎都没有GPS,笔记本绝大多数都没有GPS,智能手机几乎都有GPS。获取网络地理信息:navigator.geolocation.getCurrentPosition(successCallback:function(position),errorCallback:function(error));网络:来粗略的估计地理位置。总结:https协议,file协议可以获取,http协议......
  • 【jmeter系列】WebService(soap)请求
    一、SOAPWeb服务请求组成Envelope(信封):SOAP消息的最外层包装,用于标识SOAP消息的开始和结束。一个SOAP消息只包含一个Envelope元素。Header(头部):可选的部分,用于包含与消息相关的元数据信息,如身份验证信息、加密方法等。Header元素是Envelope元素的直接子元素。Body(消息体):必......
  • 1.6 PC、手机图形API介绍
    电脑的工作原理:电脑是由各种不同的硬件组成,由驱动软件驱使硬件进行工作。所有的软件工程师都会直接或者间接的使用到驱动。定义:是一个图形库,用于渲染2D、3D矢量图形的跨语言、跨平台的应用程序编程接口(API)。针对GPU。基础概念 应用端:即我们自己的程序段,相对于opengles,我们属......
  • solidworks api ch05
    打开一个现存的文件,并选择一个表面,执行下列代码:lettestSelectFace(swApp:ISldWorks)=letswModel=swApp.ActiveDoc|>unbox<ModelDoc2>letswSelMgr=swModel.SelectionManager:?>SelectionMgr//Dosomevalidationbeforerunning......
  • Java之Stream流的常用API
    Java之Stream流的常用APIStream流常见中间方法名称说明Stream<T>filter(Predicate<?superT>predicate)用于对流中的数据进行过滤Stream<T>limit(longmaxSize)获取前几个元素Stream<T>skip(longn)跳过前几个元素Stream<T>distinct()去除流中重复......