使用sealos 快速部署生产可用的k8s环境
sealos 是一个很不错的k8s 部署工具,内部实际上也是基于了kubeadm ,但是sealos 做了不少方便的扩展
比如自己搞了一层基于lvs 的ha ,可以简化我们k8s 环境ha 的问题(但是如果需要外部访问还是需要一层ha 方案的)
同时sealos 提供了自己的一套容器镜像仓库,离线部署也比较简单,升级也比较方便
参考部署配置
我们可以直接基于yaml 定义文件就可以了
参考
apiVersion: apps.sealos.io/v1beta1
kind: Cluster
metadata:
creationTimestamp: null
name: default
spec:
hosts:
- ips:
- xxxx:22
- xxxx:22
- xxxx:22
roles:
- master
- amd64
- ips:
- xxxx:22
- xxxx:22
- xxxx:22
roles:
- node
- amd64
image:
- labring/kubernetes:v1.24.0
- labring/helm:v3.8.2
- labring/flannel:v0.21.4
- labring/ingress-nginx:v1.5.1
- labring/kubernetes-dashboard:v2.7.0
ssh:
passwd: xxxxxxx
pk: /root/.ssh/id_rsa
port: 22
user: root
status: {}
---
apiVersion: kubeadm.k8s.io/v1beta2
kind: ClusterConfiguration
networking:
podSubnet: 10.244.0.0/16
serviceSubnet: "10.96.0.0/22"
---
apiVersion: apps.sealos.io/v1beta1
kind: Config
metadata:
name: flannel
spec:
path: charts/flannel/values.yaml
strategy: merge
data: |
podCidr: "10.244.0.0/16"
flannel:
backend: "vxlan"
注意helm 是必须的
说明
对于升级sealos 也支持了方便的操作,我们只需要通过sealos run labring/kubernetes:v1.25.0 就可以了,但是注意不能跨minor 版本,如果需要到
其他版本,需要通过间接升级(因为使用了kubeadm,这个也是kubeadm的限制 ),基于sealos 部署k8s 环境是一个很不错的选择,很值得使用
参考资料
https://sealos.io/zh-Hans/docs/Intro
https://github.com/labring/sealos
https://sealos.io/zh-Hans/docs/examples/how-to-upgrade-cluster
https://kubernetes.io/docs/tasks/administer-cluster/kubeadm/kubeadm-upgrade/