kubernetes kubeadm 初始化

文档说明:自建K8S,只记录关键地方;
k8s 版本 > 1.19
CRI 使用 containerd
实验环境: linux debian 11

#!/bin/bash
set -eux
set -o pipefail

# enp0s3 是网卡名称

KUBE_VERSION=`kubelet --version |  awk -F ' ' '{print $2}'`
ip=$(ip address show | grep enp0s3 | grep 'inet' | awk '{print $2}' | awk -F '/' '{print $1}')
ip=$(ip -4  address  show | grep enp0s3 | grep 'inet' | awk '{print $2}' | awk -F '/' '{print $1}' | sed -n '1p')

kubeadm config images list --v=5 --kubernetes-version=$(kubelet --version |  awk -F ' ' '{print $2}')
kubeadm config images pull --v=5 --kubernetes-version=$(kubelet --version |  awk -F ' ' '{print $2}')
swapoff -a

# 看看有什么报错,就解决什么报错即可 --v=5 显示日志的级别
kubeadm init --dry-run --v=5 --kubernetes-version=$KUBE_VERSION
kubeadm config images list
kubeadm config images pull


# 开始初始化
ip=$(ip address show | grep enp0s3 | grep 'inet' | awk '{print $2}' | awk -F '/' '{print $1}')
kubeadm init  \
--kubernetes-version=$(kubelet --version |  awk -F ' ' '{print $2}') \
--pod-network-cidr=10.244.0.0/16,fd00:11::/64 \
--service-cidr=10.96.0.0/16,fd00:22::/112 \
--token-ttl 0 \
--v=5 \
--apiserver-advertise-address="${ip}"


mkdir -p $HOME/.kube
echo "y\n" | cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config

## 初始化完毕

kubenetes 使用ipvs 替代 iptables

kubectl edit configmap kube-proxy -n kube-system

# change mode from "" to ipvs  
mode: ipvs

确认cgroup是否使用systemd,如果不是就修改为systemd


kubectl edit cm kubelet-config -n kube-system

cgroupDriver: systemd

查看镜像(ctr和crictl 两个都可以用)

ctr --namespace k8s.io containers ls
ctr --namespace k8s.io images ls


vi /etc/crictl.yaml
runtime-endpoint: unix:///var/run/containerd/containerd.sock
image-endpoint: unix:///var/run/containerd/containerd.sock
timeout: 10
# debug: true


crictl ps -a | grep -v Running | awk '{print $1}'
crictl images

其他用法


kubeadm init --kubernetes-version=v1.25.2  --image-repository registry.aliyuncs.com/google_containers

参考文档

  1. containerd
  2. cgroups
  3. kubernetes ipvs
  4. crictl 与 ctr 区别
  5. create-cluster-kubeadm
  6. kubeadm-init
  7. 一文搞懂容器运行时 Containerd

上一篇 kubernetes kubeadm 初始化准备

下一篇 kubernets网络组件calico和kuve-ovn初始化

posted @ 2022-10-22 13:16  jingjingxyk  阅读(323)  评论(0编辑  收藏  举报