mirror of
https://codeberg.org/27/inception-of-things.git
synced 2025-10-14 02:54:45 +02:00
「🏗️」 wip: installing correctly kubectl
This commit is contained in:
26
p1/Vagrantfile
vendored
26
p1/Vagrantfile
vendored
@ -35,33 +35,15 @@ Vagrant.configure("2") do |config|
|
|||||||
server.vm.hostname = "#{IOT_LOGIN}S"
|
server.vm.hostname = "#{IOT_LOGIN}S"
|
||||||
server.vm.network "private_network", ip: "192.168.56.110", auto_config: true
|
server.vm.network "private_network", ip: "192.168.56.110", auto_config: true
|
||||||
|
|
||||||
server.vm.provision "ansible" do |ansible|
|
server.vm.provision "shell", path: "install-all.sh"
|
||||||
ansible.playbook = "playbooks.yml"
|
# server.vm.provision "shell", path: "setup-S.sh"
|
||||||
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
|
|
||||||
end
|
end
|
||||||
|
|
||||||
config.vm.define "#{IOT_LOGIN}SW" do |serverworker|
|
config.vm.define "#{IOT_LOGIN}SW" do |serverworker|
|
||||||
serverworker.vm.hostname = "#{IOT_LOGIN}SW"
|
serverworker.vm.hostname = "#{IOT_LOGIN}SW"
|
||||||
serverworker.vm.network "private_network", ip: "192.168.56.111", auto_config: true
|
serverworker.vm.network "private_network", ip: "192.168.56.111", auto_config: true
|
||||||
|
|
||||||
serverworker.vm.provision "ansible" do |ansible|
|
serverworker.vm.provision "shell", path: "install-all.sh"
|
||||||
ansible.playbook = "playbook.yml"
|
# serverworker.vm.provision "shell", path: "setup-SW.sh"
|
||||||
ansible.groups = {
|
|
||||||
"masters" => ["#{IOT_LOGIN}S"],
|
|
||||||
"workers" => ["#{IOT_LOGIN}SW"]
|
|
||||||
}
|
|
||||||
ansible.extra_vars = {
|
|
||||||
node_ip: "192.168.56.111",
|
|
||||||
}
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
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