您的当前位置:首页正文

K8S简要操作手册

2024-09-07 来源:好走旅游网
K8S简要操作⼿册

基本概念

架构

node

Node是Pod真正运⾏的主机,可以物理机,也可以是虚拟机。为了管理Pod,每个Node节点上⾄少要运⾏container runtime(⽐如docker或者rkt)、kubelet和kube-proxy服务。

pod

在Kubernetes中,最⼩的管理元素不是⼀个个独⽴的容器,⽽是Pod,Pod是最⼩的,管理,创建,计划的最⼩单元, ⼀个pod中可以定义多个容器, 多个容器共享存储和⽹络apiVersion: v1kind: Podmetadata: name: redisspec:

containers: - name: redis image: redis volumeMounts:

- name: redis-storage mountPath: /data/redis volumes:

- name: redis-storage emptyDir: {}

service

Kubernetes中⼀个应⽤服务会有⼀个或多个实例(Pod,Pod可以通过rs进⾏多复本的建⽴),每个实例(Pod)的IP地址由⽹络插件动态随机分配(Pod重启后IP地址会改变)。为屏蔽这些后端实例的动态变化和对多实例的负载均衡

namespace

Namespace是对⼀组资源和对象的抽象集合,⽐如可以⽤来将系统内部的对象划分为不同的项⽬组或⽤户组。常见的pods, services, replication controllers和deployments等都是属于某⼀个namespace的(默认是default),⽽node, persistentVolumes等则不属于任何namespace。Namespace常⽤来隔离不同的⽤户,⽐如Kubernetes⾃带的服务⼀般运⾏在kube-system namespace中。

deployment

Deployment为Pod和ReplicaSet提供了⼀个声明式定义(declarative)⽅法,⽤来替代以前的来⽅便的管理应⽤。典型的应⽤场景包括:

定义Deployment来创建Pod和ReplicaSet滚动升级和回滚应⽤扩容和缩容

暂停和继续Deployment

k8s基本结构图

K8S基本操作命令(命令+截图)

取个别名, 替换kubectl -n test-center-12345678910alias kk='kubectl -n test-center-12345678910' ## 不⽤每次都输那么⼀长串的namespace了kk get pod

kk get deployment

如何查看运⾏的POD

kubectl get pod --all-namespaceskubectl -n ns-account get pod

kubectl get pods --all-namespaces | grep xdr9n # 查找所有namespace下的pod 然后筛选出某个pod

如何启动⼀个PODkubectl apply -f pod.yaml

如何停⽌⼀个POD

kubectl scale --replicas=0 pod/

如何查看POD的状态(CPU/状态/内存)kubectl top pod

CPU 单位: 1核 = 1000m, 0.5核=500m, 通常⽤m单位, 直接填1表⽰1核

如何查看POD挂载的⽂件⽬录kubectl describe pod

如何进⼊POD执⾏命令

kubectl exec -it /bin/bash

如何查看POD的运⾏配置

kubectl exec -it /bin/bash # 进⼊容器cd /app/app/remote/ # 进⼊容器内部的应⽤⽬录, ⽬前我们⼤部分中⼼化应⽤⽤的⽬录是 /app/app/remote

如何查案运⾏Servicekubectl get svc

因篇幅问题不能全部显示,请点此查看更多更全内容