通过 microk8s使用Kubernetes结合Azure pipeline实现CD工作
折腾了几天MS的Azure pipeline在build阶段的任务终于配置好了,但是在release阶段一直没搞定。今天用了1元券在MS的Azure上面开了一个虚拟机,准备装个大名鼎鼎的k8s,世纪互联上总是比国外的慢不少,虽然是官方在11月中旬已经宣布登陆中国市场,但是在国内Azure上还没找到,自己手动装一个吧。前面坑不少,这几天总算把Azure DevOps的部署环境搞明白了,界面比Travis-CI高大上,但是感觉坑比那个多一些,没办法先当小白吧,一个一个坑爬过去,先把经验写到这里以便给自己给可能需要的人一些帮助…
- 在Azure世纪互联建立Ubuntu LTS虚拟机,通过Snap安装microk8s。
microk8s是一个简化版的kube用于测试和单机部署,一行命令即可完成安装。
1 | snap install microk8s --classic |
- 为了不和已经安装的 kubectl 产生冲突,microk8s 有自己的 microk8s.kubectl 命令
1 | microk8s.kubectl get services |
- 如果本地没有 kubectl 命令可以增加一个别名
1 | snap alias microk8s.kubectl kubectl |
- 或者取消
1 | snap unalias kubectl |
- API 服务监听 8080 端口,如果是在Azure云上面的虚拟机上面安装,需要安全配置里面打开端口
1 | microk8s.kubectl config view |
- 查看附加组件。
1 | Kubernetes Addons |
- microk8s 只是最精简的安装,所以只有 api-server, controller-manager, scheduler, kubelet, cni, kube-proxy 被安装运行。额外的服务比如 kube-dns, dashboard 可以通过microk8s.enable 启动
1 | microk8s.enable dns dashboard |
- 禁用
1 | microk8s.disable dns dashboard |
- 可用的扩展
dns
dashboard
storage
ingress
gpu
istio
registry
metrics-server
- 停止或重启 microk8s
1 | snap disable microk8s # 停止 |
- 移除
1 | microk8s.reset |
- 安装完环境后,定义pod,首先要用vi新建一个hello-world-pod.yaml,保存
1 | apiVersion: v1 |
- 字段解释
1 | apiVersion: 声明K8s的API版本 |
- 定义和创建pod
1 | kubectl create -f hello-world-pod.yaml |
- 查询pod信息
1 | kubectl get pod hello-world |
- 输出pod信息
1 | kubectl get pod hello-world --output json |
- 状态和生命周期查询
1 | kubectl describe pod hello-world |
更多参考:https://github.com/ubuntu/microk8s