文章目录
-
- 一、前言
-
- 1.1 什么是AKS
- 二、AKS集群部署
-
- 2.1 点击浏览器界面cloud shell
- 2.2 选择bash进行操作
- 三、部署应用测试
- 四、提供外部访问
一、前言
1.1 什么是AKS
AKS是托管Kubernetes服务平台,能让您快速部署和管理集群,Kubernetes的master节点由Azure因此,我们只需要创建和维护node只需支付节点。node节点成本。
官方参考手册:https://docs.microsoft.com/zh-cn/azure/aks/
二、AKS集群部署
部署AKS集群的方式有很多种,我们在这里通过Azure CLI来进行部署
2.1 在浏览器界面点击cloud shell
2.2 选择bash进行操作
jw@Azure:~$ az group create --name k8sGroup --location southeastasia --name 指定资源组的名称 --location 指定所属区域 {
"id": "/subscriptions/0f2e81dd-a3d2-4cf4-af28-dffea5b2c315/resourceGroups/k8sGroup", "location": "southeastasia", "managedBy": null, "name": "k8sGroup", "properties": {
"provisioningState": "Succeeded" }, "tags": null, "type": "Microsoft.Resources/resourceGroups" }
jw@Azure:~$ az aks create -g k8sGroup -n k8s-cluster --node-count 1 --enable-addons monitoring --generate-ssh-keys --node-vm-size Standard_DC2ds_v3 | Running .. 等待执行完成,执行完成会有一串json字符串输出 --node-count 1 指定node节点数量 --enable-addons 指定安装的插件 --generate-ssh-key 生成公钥并存放在一起~/.ssh目录下 --node-vm-size 指定node的大小 连接到集群 配置在Azure CLI上配置kubectl,便于管理和操作 jw@Azure:~$ az aks get-credentials -n k8s
-cluster
-g k8sGroup Merged
"k8s-cluster" as current context in
/home
/jw
/
.kube
/config 检验连接情况 jw@Azure
:
~$ kubectl get node NAME STATUS ROLES AGE VERSION aks
-nodepool1
-
11362444
-vmss000000 Ready agent
3m28s v1
.
22.6
三、部署应用测试
简单的部署一个nginx服务来测试
jw@Azure:~$ vi nginx.yaml
apiVersion: v1
kind: Pod
metadata:
name: nginx
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:latest
ports:
- containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
name: svc-nginx
spec:
selector:
app: nginx
type: ClusterIP #类型设置为ClusterIP,表示仅供内部访问
ports:
- port: 80
执行查看效果
jw@Azure:~$ kubectl apply -f nginx.yaml
pod/nginx unchanged
service/svc-nginx configured
jw@Azure:~$ kubectl get all
NAME READY STATUS RESTARTS AGE
pod/nginx 1/1 Running 0 13m
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/kubernetes ClusterIP 10.0.0.1 <none> 443/TCP 25m
service/svc-nginx ClusterIP 10.0.37.84 <none> 80/TCP 13m
四、对外提供访问
我们只需将SVC下的Type类型设置为:LoadBalancer即可
jw@Azure:~$ cat nginx.yaml
......
selector:
app: nginx
type: LoadBalancer #类型修改为LoadBalancer
ports:
- port: 80
-
重新执行,更新状态
jw@Azure:~$ kubectl apply -f nginx.yaml
pod/nginx unchanged
service/svc-nginx unchanged
jw@Azure:~$ kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.0.0.1 <none> 443/TCP 47m
svc-nginx LoadBalancer 10.0.37.84 20.43.148.228 80:32065/TCP 34m
上面会多出一个EXTERNAL-IP,外部IP地址。