IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> k8s-基本命令 -> 正文阅读

[系统运维]k8s-基本命令

我崇拜生命中的真诚,喜欢被岁月见证过的友情,感恩生命中的不离不弃的人。

kubectl命令

1、直接通过命令去操作k8s资源

kubectl是k8s集群的命令行工具。基本语法如下

kubectl [command] [type] [name] [flag]
  • command: 资源执行的操作,create get delete

  • type:指定资源类型 pod service deployment

  • name: 指定资源名称

  • flags: 额外可选参数

#查看所有pod
kubectl get pod

#查看所有node
kubectl get node

#查看wangzi 这个pod
kubectl get pod wangzi

#查看王子pod以json/yaml形式展示数据
kubectl get pod wangzi -o json
kubectl get pod wangzi -o yaml

#查看王子pod的详细信息
kubectl get pod wangzi -o wide

#描述资源信息(如果当前pod未启动成功,pullimageerror等就可以使用,查看报错信息)
kubectl describe pod wangzi
#创建一个wangzi的namespace
kubectl create ns wangzi

#查看当前的namespace
kubectl get ns
在这里插入图片描述
k8s在集群启动之后,集群中的组件也是通过pod方式运行的,kube-system是集群本身组件所占用的一些pod
在这里插入图片描述

#运行一个pod,命名空间指定刚创建的wangzi
kubectl run pod --image=nignx -n wangzi
在这里插入图片描述
#查看在wangzi命名空间下的pod
kubectl get pod -n wangzi
在这里插入图片描述#描述pod
kubectl describe pods pod -n wangzi
在这里插入图片描述#删除pod
kubectl delete pods pod -n wangzi
在这里插入图片描述

2、通过命令配置和配置文件去操作资源(增删改查资源)

kubectl create -f nginx.yaml
apiVersion:V1
kind:Namespace
matadata:
	name:wangzi
	
---

apiVersion:V1
kind: Pod
metadata:
	name:wangzi_nginx
	namespace:wangzi
spec:
	containers:
	-name:wangzi_container_nginx
	image:nginx:1.17.1

#创建了两个资源

kubectl create -f wangzi.yaml

#删除资源

kubectl delete -f wangzi.yaml

3、通过apply命令和配置文件操作资源(新增和更新资源)

kubectl apply -f wangzi.yaml

4、其他

删除pod,当前wangzi的pod被删除了,会重新创建一个新的pod

kubectl delete pod wangzi

查看控制器,需要删除对应的控制器,然后就不会自动重新创建了

kubectl get deployment -n wangzi

5、资源的类型

①label

  • 在资源上添加标识,对资源进行区分和选择。
  • 配置
apiVersion:V1
kind: Pod
metadata:
	name:wangzi_nginx
	namespace:wangzi
labels:
	version: "1.0"
	env: "test"
spec:
	containers:
	-name:wangzi_container_nginx
	image:nginx:1.17.1
  • 给wangzi pod 打标签
  kubectl label pod wangzi -n wangzi version=1.0
  • 覆盖之前的label
  kubectl label pod wangzi -n wangzi version=1.0 --overwrite
  • 展示wangzi pod的标签
  kubectl  get pod -n --show-label
  • 通过参数 -l 搜索对应的标签
    在这里插入图片描述
  kubectl get pod -l "pod-template-hash=74774dbd69" -n default --show-labels
  • 删除标签 tier-
  kubectl  label pod wangzi -n wangzi tier-

②deployment

k8s通过控制器来控制pod.

  • 文件配置
apiVersion: apps/v1
kind: Deployment
metadata:
  name: wangzi
spec:
  replicas: 3
  selector:
    matchLabels:
      run: wangzi
  template:
    metadata:
      labels:
        run: wangzi
  • --replicas=3 指定副本数量,维护当前容器的个数
kubectl run nginx --image=nginx:latest --port=80 --replicas=3

③Namespace

  • 主要用来实现资源隔离

④pod

  • pod是K8S集群进行管理的最小单元。一个pod中可以运行一个或则多个容器。

⑤service

pod重建之后ip会随之变化,ip是集群内部可见的虚拟ip,外部无法访问。service可以实现服务发现和负载均衡。service通过标签选择机制与控制器创建的pod关联起来。

  • 创建集群内部可以访问的service
#通过wangzi这个控制器找到对应的pod,暴露该pod 80端口,成功后会产生一个service的ClusterIP,这个地址在生命周期内不会变动 
- kubectl expose deployment wangzi --name=wangi1 --type=ClusterIP --port=80 --target-port=80 -n wangzi
  • 创建集群外部可以访问的service
- kubectl expose deployment wangzi --name=wangi1 --type=Nodeport--port=80 --target-port=80 -n wangzi

创建成功之后 PORT一栏显示如下:80:19998/TCP
可以通过当前主机的ip:19998 通过ClusterIP 转发到80端口

  • 配置方式
spec:
  type: ClusterIP
  ports:
    - port: 80
      targetPort: 80
      protocol: TCP
  selector:
    app: wangzi
    release: heihei

Pod 资源清单:

  • 查看容器一级属性
    在这里插入图片描述
  • 查看容器二级属性
    在这里插入图片描述
KIND:     Pod
VERSION:  v1

DESCRIPTION:
     Pod is a collection of containers that can run on a host. This resource is
     created by clients and scheduled onto hosts.

apiVersion: v1  #版本号
kind: Pod #资源类型
metadata: #元数据
  name:  #pod名称
  namespace:  #pod所属命名空间
  labels:  #标签列表
    key1: value1
    key2: value2
  annotations:  #资源注解,与label不同在于他不能用于挑选资源对象,仅用于为对象提供“元数据”。
    key1: value1
    key2: value2
spec:  #必选,pod中容器的详细定义
  containers: #pod中的容器列表,可以有多个容器
  - name:  #容器名称
    image: #容器的镜像名称
    imagePullPolicy:  (Always, Never, IfNotPresent) #获取镜像的策略,Alawys表示下载镜像 IfnotPresent表示优先使用本地镜像,否则下载镜像,Nerver表示仅使用本地镜像,如果镜像tag是lastest默认为Always,否则默认为IfNotPresent
    command: #容器的启动命令列表,如不指定,使用打包时使用的启动命令,需要指定bash shell,对应Dockerfile的ENTRYPOINT,定义command后,只会运行command下的命令(优先执行与其他子字段下的command)
    args: #容器的启动命令参数列表,向command中传参数
    workingDir: #容器的工作目录
    resources:#西元配额
      limits: #资源限制上线
        cpu: "2" #cpu限制
        memory: 10G  #内存限制
      requests:#资源限制下线
        cpu: "4"
        memory: 20G
    ports: #需要暴露的端口列表
    - name:  #端口号名称
      containerPort: #容器所在pod的IP地址上暴露的端口
      protocol:  #端口协议,支持TCP和UDP,默认TCP
    volumeMounts:  #挂载到容器内部的存储卷配置
    - name: #引用pod定义的共享存储卷的名称,需用volumes[]部分定义的的卷名
      mountPath:  #存储卷在容器内mount的绝对路径
      
  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-11-19 17:59:21  更:2021-11-19 17:59:29 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 0:26:06-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码