k8s服务初始化记录
-
安装k8s工具
-
设置自动完成
kubeadm completion bash > /etc/bash_completion.d/kubeadm kubectl completion bash > /etc/bash_completion.d/kubectl
-
/etc/docker/daemon.json
{ "registry-mirrors": [ "https://hub.geekery.cn/", "https://ghcr.geekery.cn" ] }
-
修改 containerd 默认设置
containerd config default > /etc/containerd/config.toml
修改
SystemdCgroup = true
修改
sandbox_image = "registry.k8s.io/pause:3.10"
版本根据
kubeadm config images list
的值而定设置完成后重启
systemctl restart containerd
-
执行k8s初始化, IP根据下一步中的配置文件(kube-flannel.yml)中的
net-conf.json.NetWork
而定 IP说明可选步骤, 提前拉取k8s用的镜像
#!/bin/bash REPO=registry.cn-hangzhou.aliyuncs.com/google_containers REPO_LEN=${#REPO} K8SREPO=registry.k8s.io kubeadm config images pull --image-repository "${REPO}" for full_name in $(kubeadm config images list --image-repository "${REPO}") ; do name=${full_name:${REPO_LEN}} if [ "${name#/coredns}" != "${name}" ]; then name="/coredns$name" fi ctr -n k8s.io image tag "${full_name}" "${K8SREPO}$name" done
初始化集群
kubeadm init --pod-network-cidr 10.244.0.0/16
-
下载网络插件镜像 flannel仓库
下面命令使用的镜像, 可以自己下载, 版本根据
kube-flannel.yml
而定for x in docker.io/flannel/flannel:v0.26.1 docker.io/flannel/flannel-cni-plugin:v1.5.1-flannel2; do echo $x docker pull $x docker save $x | ctr --namespace k8s.io images import - done
-
安装网络插件
开启内核模块
modprobe br_netfilter
持久开启
echo br_netfilter > /etc/modules-load.d/k8s.conf
kubectl apply -f https://github.com/flannel-io/flannel/releases/latest/download/kube-flannel.yml
如果多节点集群网络不通, 修改网络插件配置文件如下: 增加参数
--iface=enp0s8
containers: - args: - --ip-masq - --kube-subnet-mgr - --iface=enp0s8 command: - /opt/bin/flanneld
-
根据上一步命令的结果, 设置配置文件
mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config
-
查看结果
kubectl get nodes
视情况移除主机的污点
kc taint node --all node-role.kubernetes.io/control-plane-
-
防火墙和端口 文档
要么直接关闭, 要么把上述端口加到防火墙. 要不然 coredns pod启动不了.
-
注意关闭交换分区
swapoff --all
-
安装网络插件calico
-
给k8s拉取镜像
#!/bin/bash IMG_NAME=$1 docker pull $IMG_NAME docker save $IMG_NAME | ctr --namespace k8s.io images import -