NipGeihou's blog NipGeihou's blog
  • Java

    • 开发规范
    • 进阶笔记
    • 微服务
    • 快速开始
    • 设计模式
  • 其他

    • Golang
    • Python
    • Drat
  • Redis
  • MongoDB
  • 数据结构与算法
  • 计算机网络
  • 应用

    • Grafana
    • Prometheus
  • 容器与编排

    • KubeSphere
    • Kubernetes
    • Docker Compose
    • Docker
  • 组网

    • TailScale
    • WireGuard
  • 密码生成器
  • 英文单词生成器
🍳烹饪
🧑‍💻关于
  • 分类
  • 标签
  • 归档

NipGeihou

我见青山多妩媚,料青山见我应如是
  • Java

    • 开发规范
    • 进阶笔记
    • 微服务
    • 快速开始
    • 设计模式
  • 其他

    • Golang
    • Python
    • Drat
  • Redis
  • MongoDB
  • 数据结构与算法
  • 计算机网络
  • 应用

    • Grafana
    • Prometheus
  • 容器与编排

    • KubeSphere
    • Kubernetes
    • Docker Compose
    • Docker
  • 组网

    • TailScale
    • WireGuard
  • 密码生成器
  • 英文单词生成器
🍳烹饪
🧑‍💻关于
  • 分类
  • 标签
  • 归档
  • Linux

  • Docker

  • 云原生

  • Kubernetes

    • kubectl - 常用命令
    • 概念
    • 安装
    • 操作
      • 资源创建方式
        • 命令行
        • YAML
      • Namespace 名称空间
        • 查看
        • 创建
        • 删除
      • Pod 应用
        • 查看
        • 创建
        • 描述
        • 删除
        • 查看日志
        • 进入
      • 部署
        • 查看
        • 创建
        • 删除
        • 扩缩容
        • 版本更新
        • 版本历史
        • 版本回滚
      • 服务
        • 查看
        • 创建(暴露)
      • PV
        • 查看
    • 负载均衡
    • Service
    • Ingress(网关)
    • 存储抽象
    • 网络
    • 笔记

    • helm

    • 示例

  • KubeSphere

  • K3S

  • 笔记

  • PVE

  • 维修

  • DevOps

  • 云服务

  • 路由器

  • Hyper-V

  • Windows

  • macOS

  • 运维
  • Kubernetes
NipGeihou
2022-10-21
目录

操作

前置条件

已拥有 Kubernetes 单机或集群

# 资源创建方式

# 命令行

# YAML

宿主机方式:

  • 在主节点中创建对应的 yaml 文件
  • 执行应用 / 删除命令操作 yaml 中的内容

可视化:

  • 可视化网页中,右上角 “+” 创建
  • 输入 yaml 文件内容(注意名称空间)

# Namespace 名称空间

名称空间用来隔离资源,如 dev1 、 qa1 、 uat1 、 prod 。

默认:只隔离资源,不隔离网络。

YAML

apiVersion: v1
kind: Namespace
metadata:
  name: <名称空间>

# 查看

kubectl get ns
# 等价
kubectl get namespce

# 创建

kubectl create ns <名称空间>

YAML

kubectl apply -f <YAML文件>

# 删除

会把命名空间下的资源一同删除

kubectl delete ns <名称空间>

YAML

kubectl delete -f <YAML文件>

# Pod 应用

YAML

apiVersion: v1
kind: Pod
metadata:
  labels:
    run: <自定义的Pod名称>
  name: <自定义的Pod名称>
#  namespace: default
spec:
  containers:
  - image: <镜像名称>
    name: <自定义的Pod名称>

示例:

点击查看
apiVersion: v1
kind: Pod
metadata:
  labels:
    run: mynginx
  name: mynginx
#  namespace: default
spec:
  containers:
  - image: nginx
    name: mynginx

containers 可以有多个

# 查看

kubectl get pods	# 查看default命名空间的应用
kubectl get pods -A	# 查看所有名称空间的应用
kubectl get pods -n <名称空间>	# 查看指定命名空间的应用

kubectl get pod -owide # 查看所有pod的IP

-A:所有的,不带时止可以查询 default 名称空间的

# 创建

kubectl run <自定义的Pod名称> --image=<镜像名称> #创建在default命名空间
#kubectl run mynginx --image=nginx

YAML

kubectl apply -f <YAML文件>

# 描述

kubectl describe pod <Pod名称>

# 删除

kubectl delete pod <Pod名称>

YAML

kubectl delete -f <YAML文件>

# 查看日志

kubectl logs <Pod名称>
kubectl logs -f <Pod名称> # 自动刷新

# 进入

kubectl exec -it <Pod名称> -- /bin

# 部署

# 查看

kubectl get deploy

# 创建

具备自愈能力,pod 被删了,会自动创建一个新的

# 单副本
kubectl create deployment <自定义的Pod名称前缀> --image=<镜像名称> 

# 多副本
kubectl create deployment <自定义的Pod名称前缀> --image=<镜像名称> --replicas=<副本数量>  

Dashboard

  1. 右上角 “+”
  2. 从表单创建

# 删除

kubectl delete deploy <自定义的Pod名称前缀>

# 扩缩容

kubectl scale deployment/<自定义的Pod名称前缀> --replicas=<扩缩容后数量>   

Dashboard

  • 工作负载
  • Deployments
  • 找到部署的项目
  • 更多(...)
  • 缩放

YAML

kubectl edit deployment/<自定义的Pod名称前缀>
  • 修改 replicas 参数为 扩缩容后数量
  • :wq

# 版本更新

滚动更新

kubectl set image deployment/<自定义的Pod名称前缀> <镜像名称>=<镜像名称>:<版本号> --record
# kubectl set image deployment/my-dep nginx=nginx:1.16.1 --record

# 版本历史

kubectl rollout history deployment/<自定义的Pod名称前缀>

# 查看某个历史详情
kubectl rollout history deployment/<自定义的Pod名称前缀> --revision=<历史版本号>

# 版本回滚

滚动回滚(更新)

# 回滚到上一个版本
kubectl rollout undo deployment/<自定义的Pod名称前缀>

# 回滚到指定版本
kubectl rollout history deployment/<自定义的Pod名称前缀> --revision=<历史版本号>

版本号:在版本历史中查看,而非镜像版本号

# 服务

# 查看

可查看服务的 ip

kubectl get service

其他 pod 内部可通过 <服务名>.<命名空间>.svc 作为域名访问服务,代替 ip 地址。

# 创建(暴露)

    kubectl expose deploy <自定义的Pod名称前缀> --port=<外部访问端口> --target-port=<pod内部端口>
    
    apiVersion: v1
    kind: Service
    metadata:
      labels:
        app: <自定义的Pod名称前缀>
      name: <自定义的Pod名称前缀>
    spec:
      selector:
        app: <自定义的Pod名称前缀>
      ports:
      - port: <外部访问端口>
        protocol: TCP
        targetPort: <pod内部端口>
    
    // Make sure to add code blocks to your code group

    type

    • ClusterIP:默认,集群内部的访问
    • NodePort:集群外也可以访问

    # PV

    # 查看

    kubectl get pv
    
    上次更新: 2023/06/15, 00:16:52
    安装
    负载均衡

    ← 安装 负载均衡→

    最近更新
    01
    iSCSI服务搭建
    05-10
    02
    磁盘管理与文件系统
    05-02
    03
    网络测试 - iperf3
    05-02
    更多文章>
    Theme by Vdoing | Copyright © 2018-2025 NipGeihou | 友情链接
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式