debian kubernetes 安装记录

分类: 教程 Kubernetes Docker

2021-12-07

详细记录了在 Debian 10.6 系统下安装 Kubernetes 的步骤和常见问题解决方法- 包含主机名设置、禁用 swap、安装 Docker 和 kubeadm、配置网络等操作,提供了从初始化 k8s 集群到加入节点的完整流程,附带加速地址和国内镜像源配置,提高安装速度


debian kubernetes 安装记录

参考来源:https://blog.csdn.net/cg980925441/article/details/114649809

个人使用云服务器提供的 debain10.6 安装 kubernetes 的日志(已删减中间菜的坑,仅保留有效的操作) 。

  • 注意坑1:不通云服务商提供的 debain镜像可能略有环境上的差别,比如我这个就需要自己安装gnupg2 ,仅供参考。遇到问题百度解决。

下文中的 “所有节点” 包含 master/node1 节点 下文中的 “所有子节点” 不包含 master 节点的node2、node3、node4 下文中的 “主节点” 指 master/node1 节点

为每个服务器设置不同的名称

在不同的服务器上执行命令

node1:

hostnamectl set-hostname --static node1

node2:

hostnamectl set-hostname --static node2

node3

hostnamectl set-hostname --static node3

node4

hostnamectl set-hostname --static node4

所有节点:配置节点之间的主机名和ip映射

编辑 /etc/hosts 文件,在所有的服务器上

172.16.0.2 node1
172.16.0.3 node2
172.16.0.4 node3
172.16.0.5 node4

所有节点:禁用swa

swapoff -a
# 如果需要永久禁用
vi /etc/fstab
# 然后将 swap 那一行注释掉,最前面加上 # ,保存退出

所有节点:安装key管理器

apt update -y && apt install -y gnupg2 apt-transport-https software-properties-common ca-certificates

所有节点:加速地址

echo "deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main">>/etc/apt/sources.list.d/kubernetes.list
sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/debian $(lsb_release -cs) stable"

所有节点:为 kubernetes 源添加密钥

踩坑日记,这一步必须要安装 gnupg2 否则提示错误

curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/debian/gpg | sudo apt-key add -
curl -s https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | sudo apt-key add -

所有节点:更新并安装 kubeadm

apt update -y && apt install -y kubeadm docker-ce

# 踩坑日记:安装docker-ce 的驱动,和 kubernetes 保持一致 systemd ,否则后面初始化时,kubelet无法启动
cat <<EOF | sudo tee /etc/docker/daemon.json
{
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m"
  },
  "storage-driver": "overlay2"
}
EOF
systemctl daemon-reload && systemctl restart docker

主节点:安装管理工具

apt install -y kubectl

主节点:初始化 k8s

踩坑日记:后面的 --image-repository registry.aliyuncs.com/google_containers 是用于拉取初始化镜像加速用的,默认从海外拉取很慢。

# 先拉取一个配置网络的镜像 ,最新版本是 v0.15.1
# docker pull quay.io/coreos/flannel:v0.15.1
kubeadm config images pull --image-repository registry.aliyuncs.com/google_containers 
# 踩坑日记!!!最大的一个坑,一定要设置pod的cidr网络地址,coredns依赖 flannel,但是直接应用 flannel没有用,flannel配置的网络和kubeadm自己生成的网络地址是不一样的,导致永远卡在 Pending、ContainerCreating、Error、CrashLoopBackOff
kubeadm init --image-repository registry.aliyuncs.com/google_containers --pod-network-cidr=10.244.0.0/16
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

# 配置环境变量,kubectl 命令依赖此配置

export KUBECONFIG=/etc/kubernetes/admin.conf
echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> /etc/profile
kubectl get pod -n kube-system
kubectl get pods --all-namespaces

然后是漫长的等待,因为要从服务器拉取所需要镜像,看网速吧。

所有子节点:如果没有意外,master 初始化成功

产生配置信息

# 这个信息来自 kubeadm init ,每个人的都不同哦,这里是作为参考展示
kubeadm join 172.16.0.2:6443 --token ygprv7.jp1nfwkkhvstlifw --discovery-token-ca-cert-hash sha256:9e4be9f3f5b9bb5b18aca6c0d39757d5b423e5d0b4979fd1ca3df567dfeabaf6 

所有节点:初始化flannel网络

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml