前言
随着云原生的普及,传统的fat微服务方式已经不符合日常的运营需求了,比如:业务写点业务代码,还需要配合架构升级测试验证,对业务本身是极大的影响。ServerLess应运而生,实际上就是把非业务能力剥离出来,独立运营。而现在大部分实现都依赖于容器,容器的管理主流技术是kubernetes即k8s。
安装docker desktop
开发平台可以直接安装docker desktop,服务器建议安装docker ce。
笔者的版本
安装kubernetes
使用docker desktop 安装单节点的集群kubernetes,点击apply & restart
笔者测试高版本的docker安装kubernetes失败,一直是starting,低版本可以成功安装。
这样安装,好处是一键安装,实际上云服务就是这种模式,浏览器一键申请容器,就是把很多操作封装起来,也可以使用命令一步步按照官网操作,中间会躺很多坑。
可以看到k8s是以容器方式运行的,见名知意,etcd、apiserver、controller-manager、scheduler等。
安装dashboard
见官方文档Deploy and Access the Kubernetes Dashboard | Kubernetes,实际上不安装dashboard也是可以直接使用的,有dashboard方便操作。
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.5.0/aio/deploy/recommended.yaml
当然也可以修改yaml,配置端口,X509证书等
安装dashboard,kubectl apply xxx.yaml,典型的k8s调度安装
kubectl proxy
然后访问:
需要配置token登录
根据github也可以
https://github.com/kubernetes/dashboard/blob/master/docs/user/access-control/creating-sample-user.md
这里以github为例,实际上就是一个执行指令,一个依赖yaml方式执行指令,本质一样
apiVersion: v1
kind: ServiceAccount
metadata:
name: admin-user
namespace: kubernetes-dashboard
执行yaml,创建账户
创建角色
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: admin-user
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: admin-user
namespace: kubernetes-dashboard
执行yaml
创建token
kubectl -n kubernetes-dashboard create token admin-user
就可以拿到token登录,就可以使用图形界面创建pod等
总结
k8s的架构实际上不是很复杂,关键还是在于管理和网络,安装的坑大概率是这些docker镜像下载不了,实际上还有其他容器替代,比如podman,因为k8s支持的接口是固定的,理论上还可以支持其他容器。