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