暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Azure Kubernetes Service (AKS) GA

漫谈云原生 2021-07-13
1420

Azure Kubernetes Service (AKS) 经过半年多的预览终于昨天宣布 GA,同时也意味着全球三朵云的托管 Kubernetes 服务已全面上线。

AKS 优势

既然全球三大云厂商都推出了托管 Kubernetes 服务,那么 Azure 在这边与其他云厂商有什么不同或者优势呢?

首先,普通用户第一次接触 Kubernetes 时可能会觉得它太过复杂而产生怯意。Azure 发布了一些列的产品和工具极大简化了 Kubernetes 的门槛,比如

  • 用于简化 Kubernetes 应用管理的开源项目 Helm

  • 用于简化 Kubernetes 应用开发和部署的开源项目 Draft

  • 用于创建和管理工作流的开源项目 Brigade 和 Kashti

  • 用于集成和管理无服务器容器产品(如 Azure Container Instance 和 AWS Fargate 等)的开源项目 Virtual Kubelet

  • 用于在 Visual Studio 和 Visual Studio Code 中管理 Kubernetes 应用的插件

  • 用于构建云原生应用的标准库 Metaparticle

  • 原生的 CI/CD 工具支持(如 Jenkins 和 VSTS 等)

其次,AKS 提供了托管的控制平面,在保证控制平面可用性的同时还免费提供给用户。用户无需关心 Kubernetes 集群本身的管理和维护,只需要关注其上的应用即可。

最后,在应用需要集成 Azure 已有的服务时,还可以通过 Open Service Broker 简化这些服务的访问。

在 AKS 发布 GA 的第一时间,Tirumarai Selvan 对 AKS、EKS 以及 GKE 等三个主流托管 Kubernetes 服务做了简单对比,如下图所示

AKS 入门

AKS 本身的使用非常简单,甚至都无需用户本地安装任何工具就可以开始使用。

打开 Azure Cloud Shell(https://shell.azure.com/),直接运行下面的命令即可

$ az group create -n myResourceGroup
$ az aks create --resource-group myResourceGroup --name myAKSCluster

稍等一会,就部署好了一个 3 节点的 Kubernetes 集群。接着配置 kubectl 客户端

$ az aks get-credentials -g myResourceGroup -n myAKSCluster

然后就可以使用 kubectl 来管理 Kubernetes 应用了,比如最简单的 nginx 服务

$ kubectl run nginx --image=nginx
$ kubectl expose deployment nginx --type=LoadBalancer --port=80

$ kubectl get pod
NAME                   READY     STATUS    RESTARTS   AGE
nginx-8586cf59-c62l2   1/1       Running   0          38s

$ kubectl get svc
NAME         TYPE           CLUSTER-IP   EXTERNAL-IP   PORT(S)        AGE
kubernetes   ClusterIP      10.0.0.1     <none>        443/TCP        5h
nginx        LoadBalancer   10.0.2.198   <pending>     80:30266/TCP   21s

如果实际使用中 3 个节点不够不满足实际需要,那可以使用 az 命令扩展节点数,比如

$ az aks scale --name myAKSCluster --resource-group myResourceGroup --node-count 5

当然了,如果想进一步节省成本,还可以使用 Virtual Kubelet 将容器运行在 ACI 中,即先将节点数收缩到 1 个,然后部署 Virtual Kubleet:

$ az aks scale --name myAKSCluster --resource-group myResourceGroup --node-count 1
$ az aks install-connector --resource-group myAKSCluster --name myAKSCluster --connector-name virtual-kubelet --os-type Both
$ $ kubectl get nodes
NAME                                    STATUS    ROLES     AGE       VERSION
aks-nodepool1-23443254-0                Ready     agent     10m       v1.9.6
virtual-kubelet-virtual-kubelet-linux   Ready     agent     4m        v1.8.3
virtual-kubelet-virtual-kubelet-win     Ready     agent     4m        v1.8.3

Virtual Kubelet 会创建 2 个无限节点,分别用于 Linux 容器和 Windows 容器。

参考文档

  • Azure Kubernetes Service (AKS) GA – New regions, more features, increased productivity

  • GKE vs AKS vs EKS: The state of managed Kubernetes by industry’s top cloud providers

  • Azure Kubernetes Service (AKS) documentation


文章转载自漫谈云原生,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论