K8s作为当下最受欢迎的云原生技术,市场应用非常广泛,很多公司和企业都在基于k8s部署程序,但是如果想要使用K8S,需要我们采购机器,搭建高可用的k8s集群,这就涉及到稳定性和成本等相关问题,如果k8s集群如果没做高可用,可能会带来灾难性的故障,所以当前很多公司会使用一些云端的K8s,按需购买,出现问题,直接找云厂商技术帮忙解决,这样自己公司内部只需要关注k8s使用,不需要花费更多时间和成本去搭建和维护k8s,这次受到阿里云的评测邀请,获取到了ACS产品内测权限,带着激动的心情开始了测试之旅,接下来给大家总结下ACS的一些使用流程和功能,让大家更好的认识ACS产品。
ACS是阿里云的容器计算服务:容器计算服务 ACS 是以 K8s 为使用界面的容器算力资源供给,提供符合容器规范的算力资源。算力交付模式为 Serverless 形态,用户无需关注底层节点及集群的运维管理。支持预留及按量付费的灵活付费模式。算力资源可同时支持用户的容器应用负载和云产品的负载。
一、用10分钟快速创建阿里云ACS
为了让大家体验ACS,先带领大家看看如何快速创建ACS服务。
访问-> https://acc.console.aliyun.com/#/overview
第一次使用,需要开通
勾选我已阅读并同意
创建关联角色
立即购买之后,看到如下界面:
点击管理控制台
点击前往授权
直接点击确认授权,对所有角色授权即可。
授权成功之后,直接返回控制台即可。
点击前往创建集群。
我们可以参考帮助手册:https://help.aliyun.com/document_detail/2590619.html
需要创建专有网络和虚拟交换机。
点击创建专有网络,出现如下,开始配置
创建专有网络和虚拟交换机之后,如下:
继续配置
选择高级配置:
选择安装coredns和nginx ingress
点击确认配置
点击创建集群
大概等待30分钟,ACS即可创建成功。
通过上面一些操作,我们就成功的创建了阿里云ACS服务。
二、ACS快速上手使用和优势
ACS创建成功之后,感受到了ACS确实优点很多,总结如下几点:
1、自带监控告警系统,无需单独搭建,可以监控集群状态
2、可以在任何装了kubectl命令的机器访问ACS搭建的k8s服务,灵活方便
选择连接信息->公网访问
打开自己虚拟机,安装kubectl最新版版本,按照上面提示进行如下操作:
[root@xianchaonode1 ~]# yum install kubectl* -y
[root@xianchaonode1 ~]# mkdir $HOME/.kube/ -p
把上面看到的内容复制到config文件:
经过上述操作,就可以通过kubectl访问阿里云专有版安装的好的k8s集群了
[root@xianchaonode1 ~]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
v-0e8fc82281b548e19045 Ready agent 14m v1.24.6-aliyun
3、极简易用,快速上手
K8s 与资源一体化,开发者无需运维管理集群和节点。通过 Yaml 文件或控制台简单配置,即可快速创建部署业务,大幅降低使用 K8s 和云的门槛。
我们写个YAML文件,通过kubectl apply 即可快速创建
1)创建Pod资源
[root@xianchaonode1~]# cat pod_test.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-nginx
spec:
selector:
matchLabels:
run: my-nginx
replicas: 2
template:
metadata:
labels:
run: my-nginx
spec:
containers:
- name: my-nginx
image: nginx
imagePullPolicy: IfNotPresent
ports:
- containerPort: 80 #pod中的容器需要暴露的端口
更新资源清单文件
[root@xianchaonode1 ~]# kubectl apply -f pod_test.yaml
查看刚才创建的Pod是否创建成功
[root@xianchaonode1 ~]# kubectl get pods
NAME READY STATUS RESTARTS AGE
my-nginx-7c864f4c45-85w9m 1/1 Running 0 5m3s
my-nginx-7c864f4c45-lnnc5 1/1 Running 0 5m3s
2)创建Service资源,对Pod进行四层代理
[root@xianchaomaster1 ~]# cat service.yaml
apiVersion: v1
kind: Service
metadata:
name: my-nginx
labels:
run: my-nginx
spec:
type: LoadBalancer
ports:
- port: 80
protocol: TCP
targetPort: 80
selector:
run: my-nginx
更新资源清单文件
[root@xianchaonode1 ~]# kubectl apply -f service.yaml
查看Service是否创建成功
[root@xianchaonode1 ~]# kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.0.0.1 443/TCP 25m
my-nginx LoadBalancer 10.0.19.11 8.146.201.179 80/TCP 21s
在浏览器访问8.146.201.179即可请求到k8s集群内部的nginx服务。
4、按需弹性,按量付费
支持灵活的Pod资源规格,秒级弹性,提供按需弹性和资源预留使用,秒级按量付费。同时支持节省计划,从而可以更经济、更从容的应对业务流量波动。登录阿里云控制台,可以实现秒级扩容,如下:
可以选择容器数量,如选择3,点击确定,即可快速扩容pod。
5、场景丰富,灵活调配
支持原生微服务&Web应用等通用业务负载,也支持大数据&AI等任务类负载,以及中间件&数据库等实时性能敏感类业务负载。通过创建资源配额,可将算力资源灵活调配给各类云产品负载,提升闲置资源利用率。
6、自由组合,高性价比
提供无需选择代际和机型的算力资源,自由搭配通用型、任务型、独享型实例,灵活匹配多类型业务负载场景,整体算力性价比更高。
四、ACS产品使用过程优化建议:
1、创建namespace,设置了资源配额,希望通过ACS自带的监控能采集到namespace名称空间的资源使用情况。
总结:通过测试阿里云ACS,发现很多优势,能帮我们快速创建k8s,并能实现自动扩缩容、故障自修复等等功能,而且不需要考虑底层硬件设备,只需开通ACS,我们关注的是使用K8s,更方便更灵活,让我们更能快速上手。