ansible 安装k8s 详细步骤

本文详细介绍使用Ansible自动化工具部署Kubernetes (K8s) 集群的过程,包括配置hosts文件、实现免密登录、禁用防火墙、安装必要组件及初始化Master节点等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1) 安装好ansible并在中控机器上进行控制

2) 中控机器上的/etc/hosts文件尾部添加如下内容

k8smaster 192.168.10.104  123456
k8sworker1 192.168.10.189  123456
k8sworker2 192.168.10.190  123456
k8sworker3 192.168.10.191  123456
k8sworker4 192.168.10.192  123456
k8sworker5 192.168.10.193  123456

3)中控机器hosts文件更改以后,拷贝到其他的机器,并参考 免密登陆 完成免密登陆

免密脚本

#!/bin/bash
echo "StrictHostKeyChecking no" >>/etc/ssh/ssh_config
echo -e 'y\n' | ssh-keygen -q -f ~/.ssh/id_rsa -t rsa -N ''
cat anhosts | while read host ip pwd ; do
	echo $host $ip $pwd
	if sshpass -p $pwd ssh-copy-id -f $ip 2>/dev/null >&2 ; then
		ssh -nq $ip "hostnamectl set-hostname $host 2>/dev/null "
		echo "$ip $host " >> /etc/hosts
		echo "copy-id to  $ip successed"
	else
		echo "copy-id to  $ip failed"
	fi
done
#sed -i '$d' /etc/ssh/ssh_config

4)执行以下剧本准备安装k8s

- hosts: k8s
  become: yes
  become_user: root
  tasks:
   - name: changefirewalld
     service:
      name: firewalld
      enabled: no
   - name: swapoff
     shell: swapoff -a
   - name: stopfirewalld
     service:
      name: firewalld
      state: stopped
   - name: SELINUX=disabled
     selinux: state=disabled
   - name: Copy file with owner and permissions
     copy:
      src: /etc/hosts
      dest: /etc/hosts
      owner: root
      group: root
      mode: '0644'
   - name: remove-old-docker
     yum:
      pkg: docker
      state: removed
   - name: install-alirepo
     shell: |
           rm -rfv /etc/yum.repos.d/*;
           curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo;
           curl -o /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
   - name: install-k8s-packges
     yum:
      pkg: bash-completion,device-mapper-persistent-data,lvm2,docker-ce
      state: installed
   - name: copy-prepare-shell
     copy: 
      src: ./prepare.sh
      dest: /root/
      mode: '755'
   - name: run-prepare-sh
     shell: /root/prepare.sh
   - name: install-kubetools 
     yum: 
      pkg: kubectl,kubelet,kubeadm
      state: installed
   - name: enable-kubelet
     service:
      name: kubelet
      enabled: yes
   - name: enable-docker
     service:
      name: docker
      enabled: yes

5)初始化master节点

- hosts: 192.168.10.104
  become: yes
  become_user: root
  tasks:
   - name: run-k8s-master
     shell: |
           kubeadm init --kubernetes-version=1.20.0  \
           --apiserver-advertise-address=192.168.10.104   \
           --image-repository registry.aliyuncs.com/google_containers  \
           --service-cidr=10.10.0.0/16 --pod-network-cidr=10.122.0.0/16;
           mkdir -p $HOME/.kube
           cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
           chown $(id -u):$(id -g) $HOME/.kube/config
           kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml


6) node节点加入

- hosts: k8sworkers
  become: yes
  become_user: root
  tasks:
   - name: run-k8s-workers
     shell: |
           kubeadm join 192.168.10.104:6443 --token hl5790.2xyp403rc9r0jjka \
           --discovery-token-ca-cert-hash sha256:cbcef55c3b05d7c25ac29d49874661dd4eaad0baab73fb656453094893b17070

7)安装完成

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

老骥又出发

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值