Giter Club home page Giter Club logo

Comments (1)

ystkfujii avatar ystkfujii commented on September 27, 2024

このuserdataを使ったら落ちてそう。。。
apiServerEndpoint: "192.168.20.65/24:6443"の部分は設定が間違ってるんだけど、なんでこれでインスタンスまで消えることにつながるんだ?

#!/bin/bash

configure_private_ip_address () {
  cat << EOS > /etc/netplan/01-netcfg.yaml
network:
    version: 2
    renderer: networkd
    ethernets:
        ens192:
            dhcp4: yes
            dhcp6: yes
            dhcp-identifier: mac
        ens224:
            dhcp4: no
            dhcp6: no
            addresses: [192.168.20.33/24]
EOS
  netplan apply
}

configure_private_ip_address


configure_ssh_port () {
  sed -i 's/^#*Port [0-9]*/Port 22/' /etc/ssh/sshd_config
}

configure_ssh_port


hostnamectl set-hostname w11002wk01

# DNS
sed -i -e 's/^DNS=127.0.0.1$/DNS=8.8.8.8/' /etc/systemd/resolved.conf
systemctl restart systemd-resolved.service

#####
# Forwarding IPv4 and letting iptables see bridged traffic
#  see: https://kubernetes.io/docs/setup/production-environment/container-runtimes/#install-and-configure-prerequisites
cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
overlay
br_netfilter
EOF

modprobe overlay
modprobe br_netfilter

# sysctl params required by setup, params persist akbueacross reboots
cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-iptables  = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.ipv4.ip_forward                 = 1
EOF

# Apply sysctl params without reboot
sysctl --system

#####
# Disable swap
#  see: https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/install-kubeadm/#before-you-begin
swapoff -a
sed -i '/ swap / s/^/#/' /etc/fstab

#####
# kubeadm
#  see: https://kubernetes.io/ja/docs/setup/production-environment/tools/kubeadm/install-kubeadm/

apt-get update && apt-get install -y apt-transport-https curl
echo 'deb https://apt.kubernetes.io/ kubernetes-xenial main' > /etc/apt/sources.list.d/kubernetes.list

curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -

apt-get update
apt-get install -y kubelet=1.26.1-00 kubeadm=1.26.1-00 kubectl=1.26.1-00
apt-mark hold kubelet kubeadm kubectl

systemctl enable kubelet && systemctl start kubelet


#####
# cri-o
#

# see: https://github.com/cri-o/cri-o/blob/3440dc30cb1770f04889eb182e4d45ae0bc5e10b/install.md#apt-based-operating-systems

echo "deb [signed-by=/usr/share/keyrings/libcontainers-archive-keyring.gpg] https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/xUbuntu_22.04/ /" > /etc/apt/sources.list.d/devel:kubic:libcontainers:stable.list
echo "deb [signed-by=/usr/share/keyrings/libcontainers-crio-archive-keyring.gpg] https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable:/cri-o:/1.26/xUbuntu_22.04/ /" > /etc/apt/sources.list.d/devel:kubic:libcontainers:stable:cri-o:1.26.list

mkdir -p /usr/share/keyrings
curl -L https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/xUbuntu_22.04/Release.key | gpg --dearmor -o /usr/share/keyrings/libcontainers-archive-keyring.gpg
curl -L https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable:/cri-o:/1.26/xUbuntu_22.04/Release.key | gpg --dearmor -o /usr/share/keyrings/libcontainers-crio-archive-keyring.gpg

apt-get update
apt-get install -y cri-o cri-o-runc

systemctl enable crio
systemctl start crio

# cri-tools
wget https://github.com/kubernetes-sigs/cri-tools/releases/download/v1.26.0/crictl-v1.26.0-linux-amd64.tar.gz
tar zxvf crictl-v1.26.0-linux-amd64.tar.gz -C /usr/local/bin
rm -f crictl-v1.26.0-linux-amd64.tar.gz
echo 'runtime-endpoint: unix:///run/crio/crio.sock' > /etc/crictl.yaml

#####
# Kubeadm join
#
cat <<EOF > /tmp/kubeadm-join-config.yaml 
apiVersion: kubeadm.k8s.io/v1beta3
kind: JoinConfiguration
discovery:
  bootstrapToken:
    token: <ひみつ>

    unsafeSkipCAVerification: true
    apiServerEndpoint: "192.168.20.65/24:6443"
EOF

# Wait for kubeadm init
for i in $(seq 1 100)
do
  kubeadm join --config=/tmp/kubeadm-join-config.yaml
  test $? -eq 0 && break
  sleep 3
done

from terraform-nifcloud-minimum-k8s-cluster.

Related Issues (1)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.