Update kubeadm, kubectl, kubelet deployment
This commit is contained in:
		@@ -1,81 +1,119 @@
 | 
			
		||||
---
 | 
			
		||||
- name: Reconfigure graceful shutdown for kubelet
 | 
			
		||||
- name: Reconfigure Kubernetes nodes
 | 
			
		||||
  hosts: kubernetes
 | 
			
		||||
  vars:
 | 
			
		||||
    KUBERNETES_VERSION: v1.27.16
 | 
			
		||||
  tasks:
 | 
			
		||||
    - name: Remove APT packages
 | 
			
		||||
      ansible.builtin.apt:
 | 
			
		||||
        name: "{{ item }}"
 | 
			
		||||
        state: absent
 | 
			
		||||
      loop:
 | 
			
		||||
        - kubelet
 | 
			
		||||
        - kubeadm
 | 
			
		||||
        - kubectl
 | 
			
		||||
 | 
			
		||||
    - name: Download kubectl
 | 
			
		||||
      ansible.builtin.get_url:
 | 
			
		||||
        url: "https://cdn.dl.k8s.io/release/{{ KUBERNETES_VERSION }}/bin/linux/{{ 'arm64' if ansible_architecture == 'aarch64' else 'amd64' }}/kubectl"
 | 
			
		||||
        dest: /usr/bin/kubectl
 | 
			
		||||
        mode: '0755'
 | 
			
		||||
 | 
			
		||||
    - name: Download kubeadm
 | 
			
		||||
      ansible.builtin.get_url:
 | 
			
		||||
        url: "https://cdn.dl.k8s.io/release/{{ KUBERNETES_VERSION }}/bin/linux/{{ 'arm64' if ansible_architecture == 'aarch64' else 'amd64' }}/kubeadm"
 | 
			
		||||
        dest: /usr/bin/kubeadm
 | 
			
		||||
        mode: '0755'
 | 
			
		||||
 | 
			
		||||
    - name: Download kubelet
 | 
			
		||||
      ansible.builtin.get_url:
 | 
			
		||||
        url: "https://cdn.dl.k8s.io/release/{{ KUBERNETES_VERSION }}/bin/linux/{{ 'arm64' if ansible_architecture == 'aarch64' else 'amd64' }}/kubelet"
 | 
			
		||||
        dest: /usr/bin/kubelet
 | 
			
		||||
        mode: '0755'
 | 
			
		||||
 | 
			
		||||
    - name: Create /etc/systemd/system/kubelet.service
 | 
			
		||||
      ansible.builtin.copy:
 | 
			
		||||
        content: |
 | 
			
		||||
          [Unit]
 | 
			
		||||
          Description=kubelet: The Kubernetes Node Agent
 | 
			
		||||
          Documentation=https://kubernetes.io/docs/home/
 | 
			
		||||
          Wants=network-online.target
 | 
			
		||||
          After=network-online.target
 | 
			
		||||
          [Service]
 | 
			
		||||
          ExecStart=/usr/local/bin/kubelet
 | 
			
		||||
          Restart=always
 | 
			
		||||
          StartLimitInterval=0
 | 
			
		||||
          RestartSec=10
 | 
			
		||||
          [Install]
 | 
			
		||||
          WantedBy=multi-user.target
 | 
			
		||||
        dest: /etc/systemd/system/kubelet.service
 | 
			
		||||
 | 
			
		||||
    - name: Reconfigure shutdownGracePeriod
 | 
			
		||||
      ansible.builtin.lineinfile:
 | 
			
		||||
        path: /var/lib/kubelet/config.yaml
 | 
			
		||||
        regexp: '^shutdownGracePeriod:'
 | 
			
		||||
        line: 'shutdownGracePeriod: 5m'
 | 
			
		||||
 | 
			
		||||
    - name: Reconfigure shutdownGracePeriodCriticalPods
 | 
			
		||||
      ansible.builtin.lineinfile:
 | 
			
		||||
        path: /var/lib/kubelet/config.yaml
 | 
			
		||||
        regexp: '^shutdownGracePeriodCriticalPods:'
 | 
			
		||||
        line: 'shutdownGracePeriodCriticalPods: 5m'
 | 
			
		||||
 | 
			
		||||
    - name: Work around unattended-upgrades
 | 
			
		||||
      ansible.builtin.lineinfile:
 | 
			
		||||
        path: /lib/systemd/logind.conf.d/unattended-upgrades-logind-maxdelay.conf
 | 
			
		||||
        regexp: '^InhibitDelayMaxSec='
 | 
			
		||||
        line: 'InhibitDelayMaxSec=5m0s'
 | 
			
		||||
 | 
			
		||||
- name: Pin kube components
 | 
			
		||||
  hosts: kubernetes
 | 
			
		||||
  tasks:
 | 
			
		||||
    - name: Pin packages
 | 
			
		||||
    - name: Disable unneccesary services
 | 
			
		||||
      ignore_errors: true
 | 
			
		||||
      loop:
 | 
			
		||||
        - kubeadm
 | 
			
		||||
        - kubectl
 | 
			
		||||
        - kubelet
 | 
			
		||||
        - gdm3
 | 
			
		||||
        - snapd
 | 
			
		||||
        - bluetooth
 | 
			
		||||
        - multipathd
 | 
			
		||||
      service:
 | 
			
		||||
        name: "{{item}}"
 | 
			
		||||
        state: stopped
 | 
			
		||||
        enabled: no
 | 
			
		||||
 | 
			
		||||
    - name: Reset /etc/containers/registries.conf
 | 
			
		||||
      ansible.builtin.copy:
 | 
			
		||||
        content: "unqualified-search-registries = [\"docker.io\"]\n"
 | 
			
		||||
        dest: /etc/containers/registries.conf
 | 
			
		||||
      register: registries
 | 
			
		||||
 | 
			
		||||
    - name: Restart CRI-O
 | 
			
		||||
      service:
 | 
			
		||||
        name: cri-o
 | 
			
		||||
        state: restarted
 | 
			
		||||
      when: registries.changed
 | 
			
		||||
 | 
			
		||||
    - name: Reset /etc/modules
 | 
			
		||||
      ansible.builtin.copy:
 | 
			
		||||
        dest: "/etc/apt/preferences.d/{{ item }}"
 | 
			
		||||
        content: |
 | 
			
		||||
          Package: {{ item }}
 | 
			
		||||
          Pin: version 1.26.*
 | 
			
		||||
          Pin-Priority: 1001
 | 
			
		||||
          overlay
 | 
			
		||||
          br_netfilter
 | 
			
		||||
        dest: /etc/modules
 | 
			
		||||
      register: kernel_modules
 | 
			
		||||
    - name: Load kernel modules
 | 
			
		||||
      ansible.builtin.shell: "cat /etc/modules | xargs -L 1 -t modprobe"
 | 
			
		||||
      when: kernel_modules.changed
 | 
			
		||||
 | 
			
		||||
- name: Reset /etc/containers/registries.conf
 | 
			
		||||
  hosts: kubernetes
 | 
			
		||||
  tasks:
 | 
			
		||||
  - name: Copy /etc/containers/registries.conf
 | 
			
		||||
    ansible.builtin.copy:
 | 
			
		||||
      content: "unqualified-search-registries = [\"docker.io\"]\n"
 | 
			
		||||
      dest: /etc/containers/registries.conf
 | 
			
		||||
    register: registries
 | 
			
		||||
  - name: Restart CRI-O
 | 
			
		||||
    service:
 | 
			
		||||
      name: cri-o
 | 
			
		||||
      state: restarted
 | 
			
		||||
    when: registries.changed
 | 
			
		||||
    - name: Reset /etc/sysctl.d/99-k8s.conf
 | 
			
		||||
      ansible.builtin.copy:
 | 
			
		||||
        content: |
 | 
			
		||||
          net.ipv4.conf.all.accept_redirects  = 0
 | 
			
		||||
          net.bridge.bridge-nf-call-iptables  = 1
 | 
			
		||||
          net.ipv4.ip_forward                 = 1
 | 
			
		||||
          net.bridge.bridge-nf-call-ip6tables = 1
 | 
			
		||||
          vm.max_map_count                    = 524288
 | 
			
		||||
          fs.inotify.max_user_instances       = 1280
 | 
			
		||||
          fs.inotify.max_user_watches         = 655360
 | 
			
		||||
        dest: /etc/sysctl.d/99-k8s.conf
 | 
			
		||||
      register: sysctl
 | 
			
		||||
 | 
			
		||||
- name: Reset /etc/modules
 | 
			
		||||
  hosts: kubernetes
 | 
			
		||||
  tasks:
 | 
			
		||||
  - name: Copy /etc/modules
 | 
			
		||||
    ansible.builtin.copy:
 | 
			
		||||
      content: |
 | 
			
		||||
        overlay
 | 
			
		||||
        br_netfilter
 | 
			
		||||
      dest: /etc/modules
 | 
			
		||||
    register: kernel_modules
 | 
			
		||||
  - name: Load kernel modules
 | 
			
		||||
    ansible.builtin.shell: "cat /etc/modules | xargs -L 1 -t modprobe"
 | 
			
		||||
    when: kernel_modules.changed
 | 
			
		||||
 | 
			
		||||
- name: Reset /etc/sysctl.d/99-k8s.conf
 | 
			
		||||
  hosts: kubernetes
 | 
			
		||||
  tasks:
 | 
			
		||||
  - name: Copy /etc/sysctl.d/99-k8s.conf
 | 
			
		||||
    ansible.builtin.copy:
 | 
			
		||||
      content: |
 | 
			
		||||
        net.ipv4.conf.all.accept_redirects  = 0
 | 
			
		||||
        net.bridge.bridge-nf-call-iptables  = 1
 | 
			
		||||
        net.ipv4.ip_forward                 = 1
 | 
			
		||||
        net.bridge.bridge-nf-call-ip6tables = 1
 | 
			
		||||
        vm.max_map_count                    = 524288
 | 
			
		||||
        fs.inotify.max_user_instances       = 1280
 | 
			
		||||
        fs.inotify.max_user_watches         = 655360
 | 
			
		||||
      dest: /etc/sysctl.d/99-k8s.conf
 | 
			
		||||
    register: sysctl
 | 
			
		||||
  - name: Reload sysctl config
 | 
			
		||||
    ansible.builtin.shell: "sysctl --system"
 | 
			
		||||
    when: sysctl.changed
 | 
			
		||||
    - name: Reload sysctl config
 | 
			
		||||
      ansible.builtin.shell: "sysctl --system"
 | 
			
		||||
      when: sysctl.changed
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user