Kubernetes部署-kubeadm方式
kubeadm:是一个安装工具,方便快捷的安装K8S系统。
一、安装前准备
sed -i 's/https:\/\/mirrors.aliyun.com/http:\/\/mirrors.cloud.aliyuncs.com/g' /etc/apt/sources.list
1.安装containerd
apt update apt install containerd -y vim /lib/systemd/system/containerd.service
containerd --help
containerd config default 配置文件 mkdir /etc/containerd/ ## 存放containerd的配置文件 #配置containerd containerd config default > /etc/containerd/config.toml vim /etc/containerd/config.toml
修改pause镜像地址: sandbox_image = "registry.aliyuncs.com/google_containers/pause:3.9" #阿里镜像地址
#修改镜像加速 218 endpoint = "https://n8lnq9bb.mirror.aliyuncs.com"
#修改为true SystemdCgroup = true
systemctl restart containerd.service
4.安装crictl工具
#安装 mkdir /usr/local/bin/crictl tar xvf crictl-v1.29.0-linux-amd64.tar.gz -C /usr/local/bin/crictl
vim /etc/profile export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/local/bin/crictl
source /etc/profile
crictl -v
#配置crictl cat > /etc/crictl.yaml <<EOF runtime-endpoint: "unix:///run/containerd/containerd.sock" image-endpoint: "unix:///run/containerd/containerd.sock" timeout: 10 debug: false EOF
5.安装nerdctl工具
#安装 tar xvf nerdctl-1.7.6-linux-amd64.tar.gz -C /usr/local/bin/
#检查命令是否正确
nerdctl version
#配置nerdctl mkdir /etc/nerdctl cat > /etc/nerdctl/nerdctl.toml <<EOF namespace = "k8s.io" debug = false debug_full = false insecure_registry = true EOF
6.CNI工具(为容器提供网桥)
为容器提供网桥,如果不安装CNI,容器只有host网络模式。
#安装CNI: mkdir -p /opt/cni/bin tar xvf cni-plugins-linux-amd64-v1.5.1.tgz -C /opt/cni/bin/
7.测试
nerdctl pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-apiserver:v1.30.3 nerdctl pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-controller-manager:v1.30.3 nerdctl pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-scheduler:v1.30.3 nerdctl pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy:v1.30.3 nerdctl pull registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.9 nerdctl pull registry.cn-hangzhou.aliyuncs.com/google_containers/etcd:3.5.12-0 nerdctl pull registry.cn-hangzhou.aliyuncs.com/google_containers/coredns:v1.11.1
8.初始化K8S环境
安装基本的软件
apt install chrony ipvsadm tree ipset -y
关闭防火墙和关闭selinux
systemctl stop ufw
关闭swap ,交换分区
swapoff -a sed -i '/swap.img/s/^/#/' /etc/fstab
配置时间服务器
sed -i 's/pool ntp.ubuntu.com/pool 时间服务器地址/' /etc/chrony/chrony.conf systemctl restart chronyd
加载模块ip_vs(网络转发)
modprobe br_netfilter && lsmod |grep br_netfilter modprobe ip_conntrack && lsmod | grep conntrack cat >/etc/modules-load.d/modules.conf<<EOF ip_vs ip_vs_lc ip_vs_lblc ip_vs_lblcr ip_vs_rr ip_vs_wrr ip_vs_sh ip_vs_dh ip_vs_fo ip_vs_nq ip_vs_sed ip_vs_ftp ip_vs_sh ip_tables ip_set ipt_set ipt_rpfilter ipt_REJECT ipip xt_set br_netfilter nf_conntrack overlay EOF systemctl restart systemd-modules-load.service lsmod | grep -e ip_vs -e nf_conntrack
修改内核参数
vim /etc/sysctl.conf net.ipv4.ip_forward=1 vm.max_map_count=262144 kernel.pid_max=4194303 fs.file-max=1000000 net.ipv4.tcp_max_tw_buckets=6000 net.netfilter.nf_conntrack_max=2097152 net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 vm.swappiness=0 sysctl -p
修改machin-id
cat /etc/machine-id rm -f /etc/machine-id systemd-machine-id-setup
二、正式安装K8S-kubeadm方式
1.配置说明
2.安装 kubeadm 、kubelet、 kubectl
apt update apt install apt-transport-https ca-certificates curl gpg -y mkdir -p -m 755 /etc/apt/keyrings curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.30/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://mirrors.aliyun.com/kubernetes-new/core/stable/v1.30/deb/ /" | tee /etc/apt/sources.list.d/kubernetes.list ## 安装命令 apt-get update && apt-cache madison kubeadm apt-get install -y kubelet=1.30.3-1.1 kubeadm=1.30.3-1.1 kubectl=1.30.3-1.1
3. 创建MASTER
kubeadm init --apiserver-advertise-address=192.168.100.204 --apiserver-bind-port=6443 --kubernetes-version=v1.30.3 --pod-network-cidr=10.200.0.0/16 --service-cidr=10.96.0.0/16 --service-dns-domain=cluster.local --image-repository registry.aliyuncs.com/google_containers --ignore-preflight-errors=swap
--apiserver-advertise-address=192.168.100.204 #master地址
--pod-network-cidr=10.200.0.0/16 #pod地址
--service-cidr=10.96.0.0/16 #service地址
#按照提示执行: mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config export KUBECONFIG=/etc/kubernetes/admin.conf
4.节点加入集群
kubeadm join 192.168.100.204:6443 --token 7zvr54.1hm6zba05b0hl0ge \ --discovery-token-ca-cert-hash sha256:2622b32f65c3778de1a52d76ad3a545d677b81411b6a4820575282805d26a951
5. 查看集群节点
kubectl get nodes