好用的K8S1.8.4 集群二进制安装指南

2023年 7月 9日 58.3k 0

利用Ansible部署kubernetes集群

本系列文档致力于提供快速部署高可用`k8s`集群的工具,并且也努力成为`k8s`实践、使用的参考书;基于二进制方式部署和利用`ansible-playbook`实现自动化:既提供一键安装脚本,也可以分步执行安装各个组件,同时讲解每一步主要参数配置和注意事项。项目地址:https://github.com/gjmzj/kubeasz

集群特性:`TLS` 双向认证、`RBAC` 授权、多`Master`高可用、支持`Network Policy`

二进制方式部署优势:有助于理解系统各组件的交互原理和熟悉组件启动参数,有助于快速排查解决实际问题

文档基于`Ubuntu 16.04`,其他系统如`CentOS 7`需要读者自行替换部分命令;由于使用经验有限和简化脚本考虑,已经尽量避免`ansible-playbook`的高级特性和复杂逻辑。

你可能需要掌握基本`kubernetes` `docker` `linux shell` 知识,关于`ansible`建议阅读 [ansible超快入门] 基本够用。

欢迎提`Issues`和`PRs`参与维护项目。

组件版本

  • kubernetes v1.8.4
  • etcd v3.2.10
  • docker 17.09.0-ce
  • calico/node v2.6.2
  • 附:集群用到的所有二进制文件已打包好供下载 `https://pan.baidu.com/s/1eSetFSA`

    快速指南

    单机快速体验k8s集群的测试、开发环境–[AllinOne部署];在国内的网络环境下要比官方的minikube方便、简单很多。

    1.准备一台虚机(推荐内存3G,硬盘20G以上),最小化安装Ubuntu16.04 server,配置基础网络、更新源、SSH登陆等。
    2.安装python2/git/python-pip/ansible

    # 文档中脚本默认均以root用户执行
    apt-get update && apt-get upgrade -y && apt-get dist-upgrade -y
    # 删除不要的默认安装
    apt-get purge ufw lxd lxd-client lxcfs lxc-common
    # 安装依赖工具
    apt-get install python2.7 git python-pip
    # Ubuntu16.04可能需要配置以下软连接
    ln -s /usr/bin/python2.7 /usr/bin/python
    # 安装ansible (国内如果安装太慢可以直接用pip阿里云加速)
    #pip install pip –upgrade
    #pip install ansible
    pip install pip –upgrade -i http://mirrors.aliyun.com/pypi/simple/ –trusted-host mirrors.aliyun.com
    pip install –no-cache-dir ansible -i http://mirrors.aliyun.com/pypi/simple/ –trusted-host mirrors.aliyun.com
    # 配置ansible ssh密钥登陆
    ssh-keygen -t rsa -b 2048 回车 回车 回车
    ssh-copy-id $IP #$IP为本虚机地址,按照提示输入yes 和root密码

    3.安装kubernetes集群

    git clone https://github.com/gjmzj/kubeasz.git
    mv kubeasz /etc/ansible
    # 下载已打包好的binaries,并且解压缩到/etc/ansible/bin目录
    # 国内请从我分享的百度云链接下载 https://pan.baidu.com/s/1eSetFSA
    # 如果你有合适网络环境也可以按照/down/download.sh自行从官网下载各种tar包到 ./down目录,并执行download.sh
    tar zxvf k8s.184.tar.gz
    mv bin/* /etc/ansible/bin
    # 配置ansible的hosts文件
    cd /etc/ansible
    cp example/hosts.allinone.example hosts
    然后根据实际情况修改此hosts文件,所有节点都是本虚机IP
    # 采用一步安装或者分步安装
    ansible-playbook 90.setup.yml # 一步安装
    #ansible-playbook 01.prepare.yml
    #ansible-playbook 02.etcd.yml
    #ansible-playbook 03.kubectl.yml
    #ansible-playbook 04.docker.yml
    #ansible-playbook 05.calico.yml
    #ansible-playbook 06.kube-master.yml
    #ansible-playbook 07.kube-node.yml

    如果执行成功,k8s集群就安装好了。

    4.验证安装

    # 如果提示kubectl: command not found,退出重新ssh登陆一下,环境变量生效即可
    kubectl version
    kubectl get componentstatus # 可以看到scheduler/controller-manager/etcd等组件 Healthy
    kubectl clusterinfo # 可以看到kubernetes master(apiserver)组件 running
    kubectl get node # 可以看到单 node Ready状态
    kubectl get pod –all-namespaces # 可以查看所有集群pod状态
    kubectl get svc –all-namespaces # 可以查看所有集群服务状态
    calicoctl node status # 可以在master或者node节点上查看calico网络状态

    5.安装主要组件

    # 安装kubedns
    kubectl create -f manifests/kubedns
    # 安装heapster
    kubectl create -f manifests/heapster
    # 安装dashboard
    kubectl create -f manifests/dashboard

    详细步骤

    持续更新中,请关注项目地址:https://github.com/gjmzj/kubeasz

  •  [集群规划和基础参数设定](docs/00-集群规划和基础参数设定.md)
  •  [创建CA证书和环境配置](docs/01-创建CA证书和环境配置.md)
  •  [安装etcd集群](docs/02-安装etcd集群.md)
  •  [配置kubectl命令行工具](docs/03-配置kubectl命令行工具.md)
  •  [安装docker服务](docs/04-安装docker服务.md)
  •  [安装calico网络组件](docs/05-安装calico网络组件.md)
  •  [安装kube-master节点](docs/06-安装kube-master节点.md)
  •  [安装kube-node节点](docs/07-安装kube-node节点.md)
  • 相关文章

    KubeSphere 部署向量数据库 Milvus 实战指南
    探索 Kubernetes 持久化存储之 Longhorn 初窥门径
    征服 Docker 镜像访问限制!KubeSphere v3.4.1 成功部署全攻略
    那些年在 Terraform 上吃到的糖和踩过的坑
    无需 Kubernetes 测试 Kubernetes 网络实现
    Kubernetes v1.31 中的移除和主要变更

    发布评论