使用easzup快速搭建K8S 集群
安装相关依赖, master/node 均需要执行 ubuntu系统apt-get update && apt-get upgrade -y && apt-get dist-upgrade -yapt-get install python2.7ln -s /usr/bin/python2.7 /usr/bin/pythonmaste配置免密码登录# 更安全 Ed25
·
master配置免密码登录
# 更安全 Ed25519 算法
ssh-keygen -t ed25519 -N '' -f ~/.ssh/id_ed25519
# 或者传统 RSA 算法
ssh-keygen -t rsa -b 2048 -N '' -f ~/.ssh/id_rsa
ssh-copy-id $IPs #$IPs为所有节点地址包括自身,按照提示输入yes 和root密码
下载文件
- x86 架构
export release=2.2.2
curl -C- -fLO --retry 3 https://github.com/easzlab/kubeasz/releases/download/${release}/easzup
chmod +x ./easzup
2. ARM 架构
curl -C- -fLO --retry 3 https://gitee.com/JokerPom/kubeasz/attach_files/584446/download/easzup.tar.gz
tar -xf easzup.tar.gz
cd easzup
chmod +x ./easzup
使用工具下载
./easzup -D
# 举例使用 k8s 版本
v1.18.2,docker 19.03.5
./easzup -D -d 19.03.5 -k v1.18.2
上述脚本运行成功后,所有文件(kubeasz代码、二进制、离线镜像)均已整理好放入目录/etc/ansible
- /etc/ansible 包含 kubeasz 版本为 ${release} 的发布代码
- /etc/ansible/bin 包含 k8s/etcd/docker/cni 等二进制文件
- /etc/ansible/down 包含集群安装时需要的离线容器镜像
- /etc/ansible/down/packages 包含集群安装时需要的系统基础软件
安装集群
-容器化运行
./easzup -S
- 使用默认配置安装 aio 集群 该文件为/etc/ansible/example 目录下的 hosts.allinone
docker exec -it kubeasz easzctl start-aio
验证安装
$ kubectl version # 验证集群版本
$ kubectl get node # 验证节点就绪 (Ready) 状态
$ kubectl get pod -A # 验证集群pod状态,默认已安装网络插件、coredns、metrics-server等
$ kubectl get svc -A # 验证集群服务状态
安装calico 网络
- 安装前必须确保各节点主机名不重复 ,calico node name 由节点主机名决定,如果重复,那么重复节点在etcd中只存储一份配置,BGP 邻居也不会建立。
添加node 节点
docker exec -it kubeasz easzctl add-node 192.168.xx.xx
安装HELM
1. x86架构
wget https://get.helm.sh/helm-v3.2.1-linux-amd64.tar.gz
tar -xf helm-v3.2.1-linux-amd64.tar.gz
mv ./linux-amd64/helm /usr/bin
helm repo add stable https://kubernetes-charts.storage.googleapis.com/
2. ARM 架构
wget https://get.helm.sh/helm-v3.2.1-linux-arm64.tar.gz
tar -xf helm-v3.2.1-linux-arm64.tar.gz
mv ./linux-arm64/helm /usr/bin
helm repo add stable https://kubernetes-charts.storage.googleapis.com/
安装kuborad
- 安装
# x86 架构
kubectl apply -f https://kuboard.cn/install-script/kuboard.yaml
# 可选
#kubectl apply -f https://addons.kuboard.cn/metrics-server/0.3.6/metrics-server.yaml
# ARM 架构
kubectl apply -f https://kuboard.cn/install-script/kuboard-arm.yaml
- 删除
kubectl delete -f https://kuboard.cn/install-script/kuboard.yaml
kubectl delete -f https://addons.kuboard.cn/metrics-server/0.3.6/metrics-server.yaml
- token
echo $(kubectl -n kube-system get secret $(kubectl -n kube-system get secret | grep kuboard-user | awk '{print $1}') -o go-template='{{.data.token}}' | base64 -d)
- 访问
http://任意一个Worker节点的IP地址:32567/
创建secret
kubectl create secret generic harborsecret \
--from-file=.dockerconfigjson=/root/.docker/config.json \
--type=kubernetes.io/dockerconfigjson
安装ingress
kubectl label nodes 192.168.xx.xx ingress-node=ingress-node
helm install ingress --namespace kube-system -f ingressvalues.yaml stable/traefik
清理
以上步骤创建的K8S开发测试环境请尽情折腾,碰到错误尽量通过查看日志、上网搜索、提交issues等方式解决;当然你也可以清理集群后重新创建。
在宿主机上,按照如下步骤清理
- 清理集群
docker exec -it kubeasz easzctl destroy
- 清理运行的容器
./easzup -C
- 清理容器镜像
docker system prune -a
- 停止docker服务
systemctl stop docker
- 删除docker文件
umount /var/run/docker/netns/default
umount /var/lib/docker/overlay
rm -rf /var/lib/docker /var/run/docker
更多推荐
已为社区贡献1条内容
所有评论(0)