开发-测试-运维
1.传统的IT系统
结构:开发-测试-运维
运维难度和运维成本
服务扩容: 涉及资源分配-实例部署-启动环节
服务升级:
服务监控
服务治理:故障处理模块开发
2.从单机走向集群
系统的可伸缩性(scalability
横向扩容-水平可伸缩性(Horizontal scalability)就是添加多台内存和CPU差不多的服务器
是一种通过增加多个相同的节点来扩展应用程序的方法 更好地解决资源分配不均的问题
纵向--垂直可伸缩性(Vertical scalability)就是对单个一台服务器添加更多的内存和CPU,也叫做纵向扩容(scale up)。纵向扩容适用在数据库层
kind
docker exec -it kind-control-plane crictl images
crictl 是 CRI 兼容的容器运行时命令行接口。 你可以使用它来检查和调试 Kubernetes 节点上的容器运行时和应用程序
crictl 是 CRI 兼容的容器运行时命令行对接客户端, 你可以使用它来检查和调试 Kubernetes 节点上的容器运行时和应用程序。
由于该命令是为k8s通过CRI使用containerd而开发的(主要是调试工具),
CoreDNS # DNS ==外部
ConfigMap 无侵入的配置中心
k8s 命令行
抽象--服务--service
基于Service的虚拟IP地址-ClusterIP的设计思路
隔离--pod
屏蔽
service 通过 label selector 联系pod
一个人就是一支队伍,
kubectl apply -f
kubectl get deployments
kubectl get rs
kubectl get pods
kubectl describe deployments
kubectl edit deployment/redis-deployment
kubectl rollout status deployment/redis-deployment
kubectl rollout history deployment/nginx-deployment
kubectl logs 命令查看多个容器
k8s 客户端
python : k8s client使用相对比较简单,有官方推荐的client sdk,安装使用:pip install kubernetes
先复制k8s的配置文件:配置文件里面包含了具体的认证信息
cp ~/.kube/config kubeconfig.yaml
这三个 API 都是 Kubernetes Python 客户端库中的 API,它们分别用于不同的 Kubernetes API 对象。
AppsV1Api:用于管理 Kubernetes 应用程序的 API 对象,如 Deployment、StatefulSet、DaemonSet 和 ReplicaSet 等。
管理 Kubernetes 应用程序
BatchV1Api:用于管理 Kubernetes 批处理作业的 API 对象,如 Job 和 CronJob 等。
管理 Kubernetes 批处理作业
CoreV1Api:用于管理 Kubernetes 核心 API 对象,如 Pod、Service、Namespace、Node 和 PersistentVolume 等。
管理 Kubernetes 核心 API 对象
1.拼接python数据结构创建的方法
2.可以使用yaml模块读取文件来创建:
import yaml
import json
with open('ali3.yaml','r',encoding='utf8') as file:#utf8可识别中文
fff=yaml.safe_load(file)
#然后创建
示例
#使用
from kubernetes import client, config
from kubernetes.stream import stream
import yaml
# kubeconfig.yaml保存的路径
config_file="kubeconfig.yaml"
config.kube_config.load_kube_config(config_file=config_file)
#获取API的CoreV1Api和BatchV1Api版本对象
Api_Instance = client.CoreV1Api()
Api_Batch = client.BatchV1Api()
# 指定命名空间
namespace = 'default'
# 获取 Pod 列表
pod_list = Api_Instance.list_namespaced_pod(namespace)
# 遍历 Pod 列表
for pod in pod_list.items:
print(f'{pod.metadata.namespace}/{pod.metadata.name}')
帮助系统
查看各组件和简写
kubectl api-resources
### 全部命名空间下所有 某命名空间下所
kubectl get all -A
kubectl get all -n dev
参考
kubernetes之Deployment详解 https://blog.csdn.net/qq_36551991/article/details/134406068
https://github.com/kubernetes-client/python