飞天使-k8s基础组件分析-对象管理

文章目录

以文件或文件夹的方式对kubernetes对象管理

复制代码
此种方法也叫做使用配置文件对K8S对象声明式的 管理。
通过在一个目录中存储多个对象配置文件并使用kubectl apply按需递归地创建和更新这些对象,可以创建、更新和删除Kubernetes对象。

创建对象

使用kubectl apply创建所有对象,除了那些已经存在的,由配置文件定义在指定的目录
# kubectl apply --f <directory>

显示将会创建的对象
# kubectl diff --f simple_deployment.yaml

创建对象
# kubectl apply --f simple_deployment.yaml

更新对象
更新复本数量为2
# kubectl scale deployment/nginx-deployment --replicas=2

显示实时的配置
# kubectl get --f simple_deployment.yaml

然后更新simple_deployment.yaml文件,内容参考update_deployment.yaml

应用配置文件的改变
# kubectl diff --f update_deployment.yaml
# kubectl apply --f update_deployment.yaml

显示实时配置
# kubectl get --f simple_deployment.yaml

删除对象
# kubectl delete --f <filename>
或:
# kubectl apply --f <directory/> --prune --l your=label

查看对象
# kubectl get --f <filenmame|url> -o yaml

显示实时的配置
# kubectl get --f simple_deployment.yaml

2. 更新对象
更新复本数量为2
# kubectl scale deployment/nginx-deployment --replicas=2

显示实时的配置
# kubectl get --f simple_deployment.yaml

然后更新simple_deployment.yaml文件,内容参考update_deployment.yaml

应用配置文件的改变
# kubectl diff --f update_deployment.yaml
# kubectl apply --f update_deployment.yaml

其它小知识点
导出实时的对象到本地配置文件
# kubectl get <kind>/<name> -o yaml > <kind>_<name>.yaml

手工移除status字段(可选的,不移使用kubectl apply也没无关紧要)

在对象上设置kubectl.Kubernetes.io/last-applied-configuration注释
# kubectl replace --save-config  -f <kind>_<name>.yaml

使用kubectl apply改变处理。

[root@k8s-01 chapter09]# cat simple_deployment.yaml 
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
spec:
  selector:
    matchLabels:
      app: nginx
  minReadySeconds: 5
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.7.9
        ports:
        - containerPort: 80

使用Kustomize方式管理kubernetes对象

复制代码
 此处略,待实际需要的话在了解

使用命令行的方式管理kubernetes对象

复制代码
创建对象
run: 创建一个新的deployment对象,在一个或多个Pods中运行容器
expose: 创建一个新的服务对象,在pods间负载均衡流量。
autoscale: 创建一个新的自动扩容对象去自动化水平扩容一个控制器,比如Deployment.
有些对象类型可以在create中指定,比如服务对象的几个子类型ClusterIP,LoadBalancer和NodePort。
# kubectl create service nodeport <myservicename>

更新对象
Scale
Annotate
Label
Set
Edit
Patch

删除对象
Delete

显示关于对象的信息
Get
Describe
Logs

statefulset 原理篇

复制代码
 Statefulset使用
状态集的应用往往遵循以下规则:
稳定的,唯一的网络标识
稳定的持久化存储
有序,优雅的部署扩容
有序,自动化的滚动更新

举例:比如部署MySQL的集群,那么每个MySQL有一个唯一和固定的主机名是相当重要的,并且它们的启动和终止应该是按顺序来的。

参考文档

复制代码
https://edu.csdn.net/learn/27763/375923?spm=3001.4143
相关推荐
虎头金猫1 天前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
分布式存储与RustFS1 天前
MinIO 官方 Docker 镜像被移除:依赖它的项目该怎么办
docker·云原生·devops·对象存储·minio·分布式存储
玉&心1 天前
通过Arthas在线诊断K8S中的内存及JVM等使用情况
docker·k8s·arthas
xing-xing1 天前
Docker容器中Nginx站点根目录网页配置访问
nginx·docker
赵文宇(温玉)1 天前
CoreDNS的hosts插件的缺行配置导致k8s集群异常
容器·kubernetes·rancher
guo_wen_qiang1 天前
上传本地镜像到harbor中
docker·容器·持续部署
张洛闻Eren1 天前
k8s云原生【第十课】:水平 Pod 自动扩缩容
运维·数据库·云原生·kubernetes·github
羑悻的小杀马特1 天前
Dockerfile 全景指南:从入门编写dockerfile到生产环境镜像优化实战,一步步带你从啃透制作指令到镜像制作落地!
docker·dockerfile·镜像制作
BianHuanShiZhe1 天前
docker常见命令
docker
正经教主2 天前
【FDE系列】阶段2:Day 43:Docker Compose — 多容器一键编排
人工智能·docker·fde