K8s 自动化部署源码解析
Ansible 和 Kubernetes(K8s)的结合可以实现高效的集群自动化部署。以下是一个完整的 Ansible Playbook 示例,用于部署 K8s 集群并配置基础组件。
环境准备
确保所有目标节点已安装 Python 和 SSH 访问权限。Ansible 控制节点需要安装 ansible 和 kubectl。
# inventory.ini
[k8s_master]
master01 ansible_host=192.168.1.10
[k8s_worker]
worker01 ansible_host=192.168.1.11
worker02 ansible_host=192.168.1.12
基础系统配置
使用 Ansible 进行系统初始化,包括禁用交换分区、配置内核参数和安装依赖包。
# playbooks/base_setup.yml
- hosts: all
become: yes
tasks:
- name: Disable swap
command: swapoff -a
ignore_errors: yes
- name: Comment swap in /etc/fstab
replace:
path: /etc/fstab
regexp: '^([^#].*?\sswap\s+.*)$'
replace: '#\1'
- name: Load kernel modules
modprobe:
name: "{{ item }}"
state: present
loop:
- br_netfilter
- overlay
- name: Configure sysctl
sysctl:
name: "{{ item.key }}"
value: "{{ item.value }}"
state: present
reload: yes
loop:
- { key: net.bridge.bridge-nf-call-ip6tables, value: 1 }
- { key: net.bridge.bridge-nf-call-iptables, value: 1 }
安装容器运行时
配置 containerd 作为容器运行时
K8s 自动化部署源码解析
Ansible 和 Kubernetes(K8s)的结合可以实现高效的集群自动化部署。以下是一个完整的 Ansible Playbook 示例,用于部署 K8s 集群并配置基础组件。
环境准备
确保所有目标节点已安装 Python 和 SSH 访问权限。Ansible 控制节点需要安装 ansible 和 kubectl。
# inventory.ini
[k8s_master]
master01 ansible_host=192.168.1.10
[k8s_worker]
worker01 ansible_host=192.168.1.11
worker02 ansible_host=192.168.1.12
基础系统配置
使用 Ansible 进行系统初始化,包括禁用交换分区、配置内核参数和安装依赖包。
# playbooks/base_setup.yml
- hosts: all
become: yes
tasks:
- name: Disable swap
command: swapoff -a
ignore_errors: yes
- name: Comment swap in /etc/fstab
replace:
path: /etc/fstab
regexp: '^([^#].*?\sswap\s+.*)$'
replace: '#\1'
- name: Load kernel modules
modprobe:
name: "{{ item }}"
state: present
loop:
- br_netfilter
- overlay
- name: Configure sysctl
sysctl:
name: "{{ item.key }}"
value: "{{ item.value }}"
state: present
reload: yes
loop:
- { key: net.bridge.bridge-nf-call-ip6tables, value: 1 }
- { key: net.bridge.bridge-nf-call-iptables, value: 1 }
安装容器运行时
配置 containerd 作为容器运行时
1443

被折叠的 条评论
为什么被折叠?



