ansible 安装k3s

简介

了解ansible 后写的一些 小案例,加油学习,实践出功夫

注意:安装k3s之前如果用用 docker 代替 containerd的话,需要提前安装docker,k3s需要它下载相关的镜像,不然会提示错误

一、单机安装k3s

查看hosts

root@ecs-3c98-0002:~# tail -5 /etc/ansible/hosts
[k3s_master]
localhost     ansible_connection=local  hostname=k3s-master

[k3s_node]
192.168.0.100  hostname=k3s-node1
#定义变量
[k3s_node:vars]
#master主机IP
IP=192.168.0.101
#node 主机密码
Passwd=123456

制作ssh-key
ssh-keygen -f ~/.ssh/id_rsa -P '' -q

1.编写yaml

---
- hosts: k3s_master
  remote_user: root
  tasks:
    - name: 下载脚本
      shell:
        cmd: curl -sfL http://rancher-mirror.cnrancher.com/k3s/k3s-install.sh  > install.sh && chmod +x install.sh
    - name: 开始安装
      shell:
        cmd: bash install.sh --write-kubeconfig-mode 644 --docker --disable traefik --node-name k3s-master
    - name: 拷贝kubeconfig
      shell: mkdir ~/.kube && cp /etc/rancher/k3s/k3s.yaml ~/.kube/config
    - name: source kubectl
      shell: echo "source <(kubectl completion bash)" >> ~/.bashrc && source ~/.bashrc
      args:
        executable: /bin/bash
    - name: 查看状态
      shell: kubectl cluster-info
      register: k3s 
    - debug: 
        var: k3s.stdout_lines

2.开始安装

# 检查yaml 文件是否存在语法格式错误
ansible-playbook  --check --syntax-check k3s_master.yaml
# 模拟运行 -C 或者 --check
ansible-playbook  -C k3s_master.yaml
# 没有问题的话执行安装
ansible-playbook k3s_master.yaml

在这里插入图片描述
检查

root@k3s-master:~# kubectl  get node
NAME         STATUS   ROLES                  AGE   VERSION
k3s-master   Ready    control-plane,master   29s   v1.20.7+k3s1

二、多节点安装k3s agent

hosts 和上面一样,就是用上面的k3s master 扩展了一台服务器安装agent

0.编写传递key的yaml

---
- hosts: k3s_node
  remote_user: root
  gather_facts: false
  connection: local
  tasks:
    - name: ssh 秘钥
      shell:
        cmd: |
          sshpass -p "{{ Passwd }}" ssh-copy-id -f -i ~/.ssh/id_rsa.pub "-o StrictHostKeyChecking=no" root@{{inventory_hostname}}

执行
ansible-playbook ssh_key.yaml

1.编写yaml

---
- hosts: k3s_node
  remote_user: root
  tasks:
    - name: 远程拷贝token
      copy:
        src: /var/lib/rancher/k3s/server/token
        dest: /tmp
        owner: root
        group: root
        mode: 755
    - name: 开始安装
      shell:
        cmd: |
          curl -sfL http://rancher-mirror.cnrancher.com/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn \
          K3S_URL=https://{{ IP }}:6443 \
          K3S_TOKEN_FILE=/tmp/token \
          INSTALL_K3S_EXEC="--docker --no-deploy traefik --write-kubeconfig-mode 644"  sh -

2.开始安装

# 检查yaml 文件是否存在语法格式错误
ansible-playbook  --check --syntax-check k3s_node.yaml
# 模拟运行 -C 或者 --check
ansible-playbook  -C k3s_node.yaml
# 没有问题的话执行安装
ansible-playbook k3s_node.yaml

在这里插入图片描述
安装完毕,如果需要多个agent 节点,往hosts里的k3s_node 组里添加

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
安装Kubernetes可以使用Ansible进行自动化部署。以下是安装Kubernetes的基本步骤: 1. 安装Ansible:在Ansible控制机器上安装Ansible。 2. 配置Kubernetes主机:使用Ansible在所有Kubernetes节点上设置必要的软件包和配置。 3. 部署etcd集群:使用Ansible在所有etcd节点上部署etcd集群。 4. 部署Kubernetes控制平面:使用Ansible在所有控制节点上部署Kubernetes API服务器,Controller Manager和Scheduler。 5. 部署Kubernetes节点:使用Ansible在所有工作节点上部署Kubernetes节点软件包和配置。 6. 部署网络插件:使用Ansible在所有节点上部署网络插件。 7. 部署Kubernetes Dashboard(可选):使用Ansible在控制节点上部署Kubernetes Dashboard。 以下是一个安装Kubernetes的Ansible playbook示例: ```yaml --- - name: Install Kubernetes hosts: all become: true tasks: - name: Set up Kubernetes repository apt_repository: repo: deb http://apt.kubernetes.io/ kubernetes-xenial main state: present filename: kubernetes.list - name: Install Kubernetes packages apt: name: "{{ item }}" state: present with_items: - kubelet - kubeadm - kubectl - name: Initialize Kubernetes cluster command: kubeadm init --apiserver-advertise-address={{ ansible_host }} register: kubeadm_output when: inventory_hostname == groups['kubernetes_master'][0] - name: Save kubeadm join command set_fact: kubeadm_join: "{{ kubeadm_output.stdout_lines[-2] }}" - name: Configure kubectl command: "kubectl config set-cluster local --server=https://{{ groups['kubernetes_master'][0] }}:6443 --certificate-authority=/etc/kubernetes/pki/ca.crt && kubectl config set-context local --cluster=local && kubectl config use-context local" - name: Join Kubernetes cluster shell: "{{ hostvars[groups['kubernetes_master'][0]]['kubeadm_join'] }}" when: inventory_hostname in groups['kubernetes_worker'] ``` 这个playbook主要完成以下任务: 1. 在所有Kubernetes节点上设置Kubernetes软件包的存储库。 2. 安装Kubernetes软件包。 3. 在第一个Kubernetes主节点上初始化Kubernetes集群。 4. 将加入Kubernetes集群的命令存储在一个变量中。 5. 配置kubectl以连接到Kubernetes API服务器。 6. 在所有Kubernetes节点上加入Kubernetes集群。 你可以根据你的环境和需求修改这个playbook。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值