一、内网互通问题
集群创建时强烈建议,选择已有网络,集群创建后VPC不可更改;交换机可以随意选择;
集群自动创建的VPC,在RDS MYSQL处,切换不了(亲测,切换时网络,搜索不到)
二、ECI连接公网、ip问题
连接公网必须开通NAT网关,否则镜像拉取都是不成功的(这里有个迷惑性,在管理端创建时,可以搜索到镜像和对应版本,拉取总是失败)。
很多时候我们需要使用服务器的ip,比如:微信授权获取token,需要配置ip白名单,NAT网关地址即是所有ECI容器的访问ip。这里要注意,集群和ECI的弹性公网ip均不是;
当然我们也可以进入容器内部,使用curl命令访问一些ip查询网站进行查询公网ip;
例如:
curl icanhazip.com
三、ASK服务发现DNS
需要安装插件:CoreDNS 或者PrivateZone(也可以,创建集群后在插件管理里安装)
安装后,您可在该VPC网络环境中通过私有域名访问Service。
长域名访问:$svc.$ns.svc.cluster.local.$clusterId,通过这种方式也可以访问其他集群中同步到PrivateZone的Service。
短域名访问:您可以通过$svc访问本Namespace下的Service,通过$svc.$ns访问其他Namespace中的Service。
此处无特殊需求建议使用CoreDNS。
四、Nginx Ingress 和 ALB Ingress
负载均衡产品的介绍:阿里云SLB包含面向4层(TCP/UDP)的传统型负载均衡CLB 和 面向7层(HTTP/HTTPS/QUIC)的应用型负载均衡ALB,网络型负载均衡NLB(Network Load Balancer )是阿里云面向万物互联时代推出的新一代四层负载均衡,支持超高性能和自动弹性能力,单实例可以达到1亿并发连接,帮您轻松应对高并发业务。
ASK集群中支持使用,CLB(就是SLB)和 ALB;
1.Nginx Ingress 只能使用 SLB (CLB) 不可购买 资源包 ;
安装后,自动创建两个实例,默认实例大小是2核4G,对于nginx来说这个配置是超配额,所以我们进行了减配,点击编辑,选择0.25核0.5G的最小配置
如图:
附带nginx监控:
Nginx Ingress 创建后,后自动生成一个SLB实例,打开后发现,集群管理也创建了一个实例;
并且这个两个实例都是,按配置进行收费,这里建议修改成
2.ALB Ingress 阿里云自研产品 跟 应用型负载均衡ALB (收费更贵,亲测);
ALB Ingress概述 - 容器服务 ACK - 阿里云
必须使用k8s脚本进行创建,如下
配置AlbConfig - 容器服务 ACK - 阿里云
这里创建后,会自动生成一个标准版ALB实例,附带基础版和标准版价格截图:
高频率访问系统,推进使用。在本次项目中,没有使用该功能;
附带,阿里云对比:Nginx Ingress与ALB Ingress对比 - 容器服务 ACK - 阿里云
五、服务发现--直接对公网开放
在进行对服务开放公网端口访问时,例:websocket 服务,需要开放TCP协议端口;
发现不可复用原有SLB实例,每次都要进行实例创建,了解后发现,集群自动创建的SLB实例不可复用。想要复用必须使用自己创建的实例。(负载均衡收费标准,实例费用+用量费用)
六、监控和HPA
1.使用HPA,指标伸缩,必须安装监控组件,来监控CPU和内存使用情况;
2.遇到的问题
在测试使用HPA时,发现部署的项目,无法使用该功能;报错如下:
监控不到内存?排查发现,组件安装没问题,内存监控可以直接控制台查看,也做了内存限制。
最后发现是项目中使用sidecar模式部署,一个服务中有多个容器共存,部署脚本中只限制了主容器内存,没有对日志容器进行限制。更改后使用没问题;
apiVersion: apps/v1
kind: Deployment
metadata:
name: test-hpa
namespace: test
labels:
app: test-hpa
spec:
minReadySeconds: 10 #最小等待时间,单位秒。默认是 0秒
progressDeadlineSeconds: 600 #进度截至时间,默认10分钟
replicas: 1
revisionHistoryLimit: 10
selector:
matchLabels:
app: test-hpa
strategy: #升级缩放策略
type: RollingUpdate #RollingUpdate 滚动更新(默认值) Recreate 重新启动
rollingUpdate: #滚动策略
maxSurge: 25% #最大浪涌:可以是数字,也可以是百分比,意为可以超出的最大的数量。如果是 0,则表示不新增,即为先停止旧pod再启动新pod。
maxUnavailable: 0 #最大不可用数量:可以是数字,也可以是百分比。deploy 在更新过程中,Pod 数量可以低于定义的数量,低于定义的数量最大值。
template:
metadata:
labels:
app: test-hpa
spec:
containers:
- name: test-hpa
image: rabbitmq:3.9.9-management
resources:
requests:
memory: "128Mi"
limits:
memory: "512Mi"
ports:
- containerPort: 5672
protocol: TCP
imagePullPolicy: IfNotPresent #镜像拉取策略:IfNotPresent:如果没有则拉取 Always:一直拉取
lifecycle:
preStop:
exec:
command: ["sleep","15"]
readinessProbe:
failureThreshold: 3
initialDelaySeconds: 15
periodSeconds: 30
successThreshold: 1
tcpSocket:
port: 5672
timeoutSeconds: 1
env:
- name: TZ
value: Asia/Shanghai
- name: filebeat
image: elastic/filebeat:6.2.4
resources:
requests:
memory: "128Mi"
limits:
memory: "512Mi"
imagePullPolicy: IfNotPresent
args: ["-c", "/opt/filebeat/filebeat.yml", "-e"]
volumeMounts:
- name: logdata
mountPath: /var/logdata
- name: filebeat-config
mountPath: /opt/filebeat/
volumes:
- name: logdata
emptyDir: {}
- name: filebeat-config
configMap:
name: test-filebeat-yml
items:
- key: filebeat.yml
path: filebeat.yml
最后的废话
阿里云对于收费是想尽一切招数,上诉一些改动(降低容器实例配置,减少使用SLB,更换按量收费)就是为了减少收费。文章来源:https://www.toymoban.com/news/detail-500334.html
此外,阿里云对于长期使用用户,提供了,NAT资源包,ECI节省计划等,购买后,费用会大幅度降低文章来源地址https://www.toymoban.com/news/detail-500334.html
到了这里,关于阿里云ASK集群使用问题小结的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!