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密码

下载文件

  1. 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
Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐