- 部署Kubernetes (k8s)
集群使用Ansible是一个常见的自动化解决方案。下面我将提供一个基本的步骤概述和所需的命令,用于在CentOS
7.8上使用Ansible部署k8s集群,包括Master节点和Worker节点(Web和DB节点)。
步骤 1: 准备环境 确保所有节点都已安装必要的包和Ansible。使用阿里云YUM源。
# 在所有节点执行 sudo yum -y update sudo yum-config-manager --add-repo http://mirrors.aliyun.com/centos/7/os/x86_64/CentOS-Base.repo sudo
yum -y install epel-release sudo yum -y install ansible
**步骤 2: 配置Ansible 编辑/etc/ansible/ansible.cfg文件,启用日志记录和禁用首次SSH连接询问。**
# 在Ansible控制机器上执行 sudo vi /etc/ansible/ansible.cfg
在配置文件中设置以下选项: log_path = /var/log/ansible.log host_key_checking =
False
**步骤 3: 设置Ansible inventory**
创建一个inventory文件,例如/etc/ansible/hosts,并定义你的主机和组。
[masters]
192.168.1.1
[nodes]
192.168.1.2
192.168.1.3
192.168.1.4
[k8s_cluster:children]
masters nodes
**步骤 4: 创建Ansible Playbook**
编写你的playbook文件,例如deploy-k8s-cluster.yml,这个文件将包含所有部署k8s集群的任务。
- hosts: all
vars:
ansible_python_interpreter: /usr/bin/python3 # 或者指定您系统中正确的 Python3 路径
tasks:
- name: Install Docker
yum:
name: docker
state: present
**步骤 5: 实施Ansible Playbook 运行你的playbook来部署k8s集群。**
ansible-playbook deploy-k8s-cluster.yml
**步骤 6: 安装Kubernetes组件**
yum 源安装
yum install kubectl kubelet kubeadm
前提配置k8s仓库
vi /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-aarch64
enabled=1
gpgcheck=0
ansible安装k8s组件
vi k8s-element.yml
- hosts: all
vars:
ansible_python_interpreter: /usr/bin/python3 # 或者指定您系统中正确的 Python3 路径
tasks:
- name: Install kubectl
yum:
name: kubectl # 确保冒号后有一个空格
state: present
~
ansible-playbook k8s-element.yml
步骤 7: 初始化Master节点 使用kubeadm初始化Master节点。
# 在Master节点上执行 kubeadm init --pod-network-cidr=10.244.0.0/16
步骤 8: 配置kubectl 初始化完成后,你需要在Master节点上配置kubectl,并获取join命令。 mkdir -p
$HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
步骤 9: 加入Worker节点 在Worker节点上运行从Master节点获取的join命令。
# 在Worker节点上执行 kubeadm join <master-ip>:<master-port> --token <token> --discovery-token-ca-cert-hash <hash>
步骤 10: 安装网络插件 在Master节点上安装如Flannel或Calico这样的网络插件。
常见问题