kubernetes第九天
1.statefulsets
有状态服务面临的三大问题:
1.启动顺序,
2.每个pod有独立存储
3.ip地址动态变化
使用statefulsets可以解决这三个问题
2.部署metric-server
1.下载起源清单:
wget https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/high-availability-1.21+.yaml
2.修改资源清单,如图所示,增加- --kubelet-insecure-tls,修改镜像,
3.创建应用:kubectl apply -f high-availability-1.21+.yaml
4.检查状态:kubectl -n kube-system get pods| grep metrics-server
5.验证 metrics-server是否正常
kubectl top pods
kubectl top node
3.HPA
Kubernetes的 HPA (Horizontal Pod Autoscaler) 是一种用于自动扩缩(伸缩)Pod副本数的机制,根据指标(如 CPU 使用率、内存使用率或自定义指标)动态调整部署的Pod数量,从而保证应用程序的性能和资源的高效使用。
简单来讲就是根据pod的性能指标,动态调整pod的数量
响应式创建HPA:kubectl autoscale deployment deployment资源名字 --min=2 --max=5 --cpu-percent=80
hpa的使用:(声明式创建HPA)
# 指定Api的版本号
apiVersion: autoscaling/v2
# 指定资源类型
kind: HorizontalPodAutoscaler
# 指定hpa源数据信息
metadata:
# 指定名称
name: deploy01-hpa
# 指定名称空间
namespace: default
# 用户的期望状态
spec:
# 指定最大的Pod副本数量
maxReplicas: 5
# 指定监控指标
metrics:
# 指定资源限制
- resource:
# 指定资源限制的名称
name: cpu
# 指定限制的阈值
target:
averageUtilization: 80
type: Utilization
type: Resource
# 指定最小的Pod副本数量
minReplicas: 2
# 当前的hpa规则应用在哪个资源
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: deploy-hpa
上述代码,动态调整部署的Pod数量为2-5,关联的是名字为deploy-hpa的Deployment,限制的是cpu资源为百分之八十
下面创建一个名字为deploy-hpa的Deployment
apiVersion: apps/v1
kind: Deployment
metadata:
name: deploy-hpa
spec:
replicas: 3
selector:
matchExpressions:
- key: apps
operator: Exists
template:
metadata:
labels:
apps: hpa
spec:
containers:
- name: web
image: harbor.lxcedu.com/base-img/nginx:1
resources:
requests:
cpu: 500m
memory: 200M
limits:
cpu: 1
memory: 500M
值得注意的是:Pod 的资源请求(requests
)需要为 CPU 设置一个值。HPA 需要根据 CPU 的请求量来计算当前的 CPU 使用率。否则hpa功能无法实现
使用两个yaml文件创建资源文件
分别进去各个pod,进行压力测试:
kubectl exec deploy-hpa-5bd868655c-7kdwl -it -- sh
dd if=/dev/zero of=/dev/null bs=100M count=100000
如图所示,pods消耗资源超过限定的值,pod数量弹性扩展至5个
4.helm
helm的安装:
1.下载:wget https://get.helm.sh/helm-v3.9.0-linux-amd64.tar.gz
2.解压到指定目录:tar xf helm-v3.9.0-linux-amd64.tar.gz -C /usr/local/sbin/ linux-amd64/helm --strip-components=1
3.验证helm安装成功:helm version
4.配置helm自动补全:helm completion bash > /etc/bash_completion.d/helm
helm的初体验:
1.创建chart:helm create lxc-linux
2.安装chart:
创建名称空间:kubectl create namespace lxc
将chart安装到该名称空间下: helm install mychart01 lxc-linux -n lxc
查看chart: helm list -n lxc
3.卸载chart:
helm uninstall mychart01 -n lxc
4.升级:
先查看: helm list -n lxc
修改变量升级:vim values.yaml (修改tags的值)
helm upgrade mychart01 lxc-linux -f lxc-linux/values.yaml -n lxc
原文地址:https://blog.csdn.net/ccnnlxc/article/details/145146333
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!