⚡4. Kubernetes焦点资源管理操作实战

打印 上一主题 下一主题

主题 1861|帖子 1861|积分 5583

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
kubectl [command] [TYPE] [NAME] [flags]



  • commad:对资源具体的操作,如create创建、 get获取 、 delete删除
  • TYPE:指定资源类型,巨细写敏感
  • NAME:指定资源的名称,巨细写敏感,如果省略名称则表现全部资源
  • flags:指定可选的参数,如可用-s或者-server指定Kubernetes API server的地址和端口
example:
  1. #获取全部节点
  2. kubectl get node
  3. #获取全部pod
  4. kubectl get pod
  5. #查看某个pod内容
  6. kubectl get pod pod_name
  7. #获取全部名称空间
  8. kubectl get ns
  9. #查看创建的资源
  10. kubectl get pod,svc,deploy
  11. # 删除nginx pod,如果是靠deploy控制器创建的pod, 直接删除则会自动创建新的;
  12. kubectl delete pod pod名称
  13. # 如果需要删除则直接删除depoly控制器即可,pod会被删除
  14. kubectl delete deploy xdclass-nginx
  15. kubectl delete svc xdclass-nginx
复制代码
kubectl run 资源名称 --image=镜像名称 --port=端口号

  1. kubectl run xdclass-nignx-pod --image=nginx:1.23.0 --port=80
  2. kubectl create deployment xdclass-nginx --image=nginx:1.23.0
复制代码
kubectl create -f 设置文件名称.yaml kubectl apply -f 设置文件名称.yaml

yaml 例子:
  1. apiVersion: apps/v1
  2. kind: Deployment
  3. metadata:
  4.    name: nginx-deployment
  5.    labels:
  6.       app: nginx-deployment
  7. spec:
  8.    replicas: 1
  9.    selector:
  10.       matchLabels:
  11.          app: nginx-pod
  12.    template:
  13.       metadata:
  14.            labels:
  15.               app: nginx-pod
  16.       spec:
  17.          containers:
  18.          - name: nginx
  19.              image: nginx:1.23.0
  20.              imagePullPolicy: IfNotPresent
  21.              ports:
  22.              - containerPort: 80
复制代码
  1. apiVersion: v1
  2. kind: Pod
  3. metadata:
  4.   name: nginx
  5. spec:
  6.   containers:
  7.   - image: nginx:1.23.0
  8.     name: pod
  9.     ports:
  10.     - name: nginx-port
  11.       containerPort: 80
  12.       protocol: TCP
复制代码
  **kubectl create 和 kubectl apply的区别: **
  

  • kubectl create 命令首次执行时会创建资源,当再次执行的时候会报错,由于资源名称在同一命名空间内是唯一的
  • kubectl apply在首次执行的时候也会创建对应的资源,当再次执行的时候会根据设置文件进行升级、扩容等操作,纵然设置文件没有厘革也不影响
  快速编写yaml文件,通过命令导出新的yaml文件

  1. #创建nginx资源文件并且不启动资源
  2. kubectl create deployment xdclass-nginx --image=nginx:1.23.0 -o yaml --dry-run=client > nginx.yaml
  3. #查看nginx.yaml
  4. cat nginx.yaml
复制代码
pod的yaml文件示例:
  1. # pod的最基础的yaml文件最少需要以下的几个参数
  2. apiVersion: v1 # API版本号,注意:具有多个,不同的对象可能会使用不同API
  3. kind: Pod  # 对象类型,pod
  4. metadata:  # 元数据
  5.   name: string # POD名称
  6.   namespace: string # 所属的命名空间
  7. spec: # specification of the resource content(资源内容的规范)
  8.   containers: # 容器列表
  9.     - name: string # 容器名称
  10.       image: string # 容器镜像
复制代码
必须存在的属性
参数名字段类型说明versionStringk8s API的版本,可利用kubectl api-versions命令查询kindString这里指定k8s资源的类型,好比Pod、DeploymentmetadataObject元数据对象,固定写值metadatametadata-nameString元数据对象的名字,好比命名pod的名字metadata-namespaceString元数据对象的命名空间specObject具体定义对象,固定值写Specspec.container[]listspec对象的容器列表定义spec.container[].nameString容器对象的名字spec.container[].imageString定义要用到的对象名称 Kubernetes常见资源类型和缩写

:::warning
常用资源分类和缩写


  • 节点 nodes ,缩写 no
  • 名称空间 namespaces,缩写ns
  • pod资源 pods, 缩写 po
  • pod控制器

    • replicasets,缩写rs
    • deployments,缩写 deploy

  • 服务发现

    • 同一pod对外接口 services ,缩写 svc
    • 同一pod对外接口ingress ,缩写 ing

  • 存储资源

    • persistentvolumes,缩写pv
    • persistentvolumeclaims,缩写pvc
      :::

常用资源操作命令
命令分类命令翻译基本命令create创建资源delete删除资源edit编辑资源get获取资源patch更新资源explain表明资源运行和调试run运行指定的镜像expose暴露服务describe形貌资源内部信息logs打印容器在 pod 中的日志attach进入运行中的容器exec执行容器中的一个命令cp在Pod表里复制文件scale扩容/缩容Pod的数目autoscale扩容/缩容Pod的数目高级命令applyrclabel标签其他命令cluster-info集群信息version版本
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

没腿的鸟

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表