mirror of
https://codeberg.org/27/inception-of-things.git
synced 2025-10-13 18:44:45 +02:00
「🏗️」 wip: installing correctly kubectl
This commit is contained in:
28
p1/Vagrantfile
vendored
28
p1/Vagrantfile
vendored
@ -34,34 +34,16 @@ Vagrant.configure("2") do |config|
|
||||
config.vm.define "#{IOT_LOGIN}S" do |server|
|
||||
server.vm.hostname = "#{IOT_LOGIN}S"
|
||||
server.vm.network "private_network", ip: "192.168.56.110", auto_config: true
|
||||
|
||||
server.vm.provision "ansible" do |ansible|
|
||||
ansible.playbook = "playbooks.yml"
|
||||
ansible.groups = {
|
||||
"masters" => ["#{IOT_LOGIN}S"],
|
||||
"workers" => ["#{IOT_LOGIN}SW"]
|
||||
}
|
||||
ansible.extra_vars = {
|
||||
node_ip: "192.168.56.110",
|
||||
node_name: "master",
|
||||
pod_network: "192.168.56.64/26"
|
||||
}
|
||||
end
|
||||
|
||||
server.vm.provision "shell", path: "install-all.sh"
|
||||
# server.vm.provision "shell", path: "setup-S.sh"
|
||||
end
|
||||
|
||||
config.vm.define "#{IOT_LOGIN}SW" do |serverworker|
|
||||
serverworker.vm.hostname = "#{IOT_LOGIN}SW"
|
||||
serverworker.vm.network "private_network", ip: "192.168.56.111", auto_config: true
|
||||
|
||||
serverworker.vm.provision "ansible" do |ansible|
|
||||
ansible.playbook = "playbook.yml"
|
||||
ansible.groups = {
|
||||
"masters" => ["#{IOT_LOGIN}S"],
|
||||
"workers" => ["#{IOT_LOGIN}SW"]
|
||||
}
|
||||
ansible.extra_vars = {
|
||||
node_ip: "192.168.56.111",
|
||||
}
|
||||
end
|
||||
serverworker.vm.provision "shell", path: "install-all.sh"
|
||||
# serverworker.vm.provision "shell", path: "setup-SW.sh"
|
||||
end
|
||||
end
|
||||
|
18
p1/install-all.sh
Normal file
18
p1/install-all.sh
Normal file
@ -0,0 +1,18 @@
|
||||
#!/usr/bin/env sh
|
||||
|
||||
# setup docker
|
||||
sudo apt update
|
||||
sudo apt install -y docker.io
|
||||
|
||||
sudo systemctl start docker
|
||||
sudo systemctl enable docker
|
||||
|
||||
# install kubernetes
|
||||
sudo apt-get install -y apt-transport-https ca-certificates curl gpg
|
||||
curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.33/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg
|
||||
echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.33/deb/ /' | sudo tee /etc/apt/sources.list.d/kubernetes.list
|
||||
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y kubelet kubectl
|
||||
sudo apt-mark hold kubelet kubectl
|
||||
sudo systemctl enable --now kubelet
|
@ -1,16 +0,0 @@
|
||||
---
|
||||
|
||||
- hosts: all
|
||||
become: yes
|
||||
roles:
|
||||
- common
|
||||
|
||||
- hosts: masters
|
||||
become: yes
|
||||
roles:
|
||||
- master
|
||||
|
||||
- hosts: workers
|
||||
become: yes
|
||||
roles:
|
||||
- worker
|
@ -1,15 +0,0 @@
|
||||
gpg_keys:
|
||||
- key: https://pkgs.k8s.io/core:/stable:/v1.33/deb/Release.key
|
||||
|
||||
repositories:
|
||||
- repo: "deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.33/deb/ /"
|
||||
|
||||
https_packages:
|
||||
- name: apt-transport-https
|
||||
- name: curl
|
||||
- name: gpg
|
||||
|
||||
k8s_packages:
|
||||
- name: kubeadm
|
||||
- name: kubelet
|
||||
- name: kubectl
|
@ -1,2 +0,0 @@
|
||||
---
|
||||
dependencies: []
|
@ -1,60 +0,0 @@
|
||||
---
|
||||
|
||||
- name: Install packages that allow apt to be used over HTTPS
|
||||
apt:
|
||||
name='{{ item.name }}'
|
||||
state=present
|
||||
update_cache=yes
|
||||
with_items: "{{ https_packages | default([]) }}"
|
||||
|
||||
|
||||
- name: Ensure keyrings directory exists
|
||||
file:
|
||||
path: /etc/apt/keyrings
|
||||
state: directory
|
||||
mode: '0755'
|
||||
|
||||
- name: Download and install Kubernetes apt GPG key (dearmored)
|
||||
shell: |
|
||||
curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.33/deb/Release.key | gpg --dearmor | tee /etc/apt/keyrings/kubernetes-apt-keyring.gpg > /dev/null
|
||||
args:
|
||||
creates: /etc/apt/keyrings/kubernetes-apt-keyring.gpg
|
||||
|
||||
- name: Add Kubernetes apt repository
|
||||
apt_repository:
|
||||
repo: "deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.33/deb/ /"
|
||||
filename: kubernetes
|
||||
state: present
|
||||
|
||||
|
||||
- name: Remove swapfile from /etc/fstab
|
||||
mount:
|
||||
name: "{{ item }}"
|
||||
fstype: swap
|
||||
state: absent
|
||||
with_items:
|
||||
- swap
|
||||
- none
|
||||
|
||||
|
||||
- name: Disable swap
|
||||
command: swapoff -a
|
||||
when: ansible_swaptotal_mb > 0
|
||||
|
||||
|
||||
- name: Install Kubernetes binaries
|
||||
apt:
|
||||
name="{{ item.name }}"
|
||||
state=present
|
||||
update_cache=yes
|
||||
with_items: "{{ k8s_packages | default([]) }}"
|
||||
|
||||
- name: Configure node ip
|
||||
lineinfile:
|
||||
path: '/etc/systemd/system/kubelet.service.d/10-kubeadm.conf'
|
||||
line: 'Environment="KUBELET_EXTRA_ARGS=--node-ip={{ node_ip }}"'
|
||||
regexp: 'KUBELET_EXTRA_ARGS='
|
||||
insertafter: '\[Service\]'
|
||||
state: present
|
||||
notify:
|
||||
- restart kubelet
|
@ -1,23 +0,0 @@
|
||||
---
|
||||
|
||||
- name: Initialize the Kubernetes cluster using kubeadm
|
||||
command: kubeadm init --apiserver-advertise-address="{{ node_ip }}" --apiserver-cert-extra-sans="{{ node_ip }}" --node-name="{{ node_name }}" --pod-network-cidr={{ pod_network }}
|
||||
|
||||
- name: Setup kubeconfig for vagrant user
|
||||
command: "{{ item }}"
|
||||
with_items:
|
||||
- mkdir -p /home/vagrant/.kube
|
||||
- cp -i /etc/kubernetes/admin.conf /home/vagrant/.kube/config
|
||||
- chown vagrant:vagrant /home/vagrant/.kube/config
|
||||
|
||||
- name: Install flannel pod network
|
||||
become: false
|
||||
command: kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
|
||||
|
||||
- name: Generate join command
|
||||
command: kubeadm token create --print-join-command
|
||||
register: join_command
|
||||
|
||||
- name: Copy join command to local file
|
||||
become: false
|
||||
local_action: copy content="{{ join_command.stdout_lines[0] }}" dest="./join-command"
|
@ -1,7 +0,0 @@
|
||||
---
|
||||
|
||||
- name: Copy the join command to server location
|
||||
copy: src=join-command dest=/tmp/join-command.sh mode=0777
|
||||
|
||||
- name: Join the node to cluster
|
||||
command: sh /tmp/join-command.sh
|
18
p1/setup-S.sh
Normal file
18
p1/setup-S.sh
Normal file
@ -0,0 +1,18 @@
|
||||
#!/usr/bin/env sh
|
||||
|
||||
# setup docker
|
||||
sudo apt update
|
||||
sudo apt install -y docker.io
|
||||
|
||||
sudo systemctl start docker
|
||||
sudo systemctl enable docker
|
||||
|
||||
# install kubernetes
|
||||
sudo apt-get install -y apt-transport-https ca-certificates curl gpg
|
||||
curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.33/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg
|
||||
echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.33/deb/ /' | sudo tee /etc/apt/sources.list.d/kubernetes.list
|
||||
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y kubelet kubeadm kubectl
|
||||
sudo apt-mark hold kubelet kubeadm kubectl
|
||||
sudo systemctl enable --now kubelet
|
18
p1/setup-SW.sh
Normal file
18
p1/setup-SW.sh
Normal file
@ -0,0 +1,18 @@
|
||||
#!/usr/bin/env sh
|
||||
|
||||
# setup docker
|
||||
sudo apt update
|
||||
sudo apt install -y docker.io
|
||||
|
||||
sudo systemctl start docker
|
||||
sudo systemctl enable docker
|
||||
|
||||
# install kubernetes
|
||||
sudo apt-get install -y apt-transport-https ca-certificates curl gpg
|
||||
curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.33/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg
|
||||
echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.33/deb/ /' | sudo tee /etc/apt/sources.list.d/kubernetes.list
|
||||
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y kubelet kubeadm kubectl
|
||||
sudo apt-mark hold kubelet kubeadm kubectl
|
||||
sudo systemctl enable --now kubelet
|
Reference in New Issue
Block a user