【K8s笔记】第二节:生产环境安装,安装 kubeadm、kubelet 和 kubectl

博客介绍了Kubernetes安装与初始化的相关内容,包括确保节点MAC地址和product_uuid唯一性、允许iptables检查桥接流量、检查所需端口等前期准备,还涉及控制平面节点和工作节点操作,以及kubeadm、kubelet和kubectl的安装、Kubernetes初始化与重置等,同时提及可能问题和参考资料。

确保每个节点上 MAC 地址和 product_uuid 的唯一性

# 查MAC
ip link
# 查product_uuid
sudo cat /sys/class/dmi/id/product_uuid

允许 iptables 检查桥接流量

# 确保 br_netfilter 模块被加载
lsmod | grep br_netfilter
# 显式加载该模块
sudo modprobe br_netfilter
# 配置br_netfilter
cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
br_netfilter
EOF
cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
# 应用配置
sudo sysctl --system

检查所需端口

  • 控制平面节点
协议方向端口范围作用使用者
TCP入站6443Kubernetes API服务器
TCP入站2379-2380etcd服务器客户端 API
TCP入站10250Kubelet APIkubelet
TCP入站10251kube-schedulerkube-scheduler
TCP入站10252kube-controller-managerkube-controller-manager
  • 工作节点
协议方向端口范围作用使用者
TCP入站10250Kubelet APIkubelet
TCP入站30000-32767NodePort 服务†所有组件
# 查看防火墙端口
sudo ufw status
# 开发端口
sudo ufw allow proto tcp from any to any port 6443,2379:2380,10250,10251,10252,30000:32767

安装 kubeadm、kubelet 和 kubectl

# 安装前置软件
sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl
# 下载 Google Cloud 公开签名秘钥
sudo curl -fsSLo /usr/share/keyrings/kubernetes-archive-keyring.gpg https://packages.cloud.google.com/apt/doc/apt-key.gpg
# 添加 Kubernetes apt 仓库
echo "deb [signed-by=/usr/share/keyrings/kubernetes-archive-keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list
# 更新 apt 包索引,安装 kubelet、kubeadm 和 kubectl,并锁定其版本
sudo apt-get update
sudo apt-get install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl

初始化Kubernetes

# 初始化并打开CoreDNS
kubeadm init
# 设置配置文件
export KUBECONFIG=/etc/kubernetes/admin.conf
# "/<当前用户>/.profile"文件添加
export KUBECONFIG=/etc/kubernetes/admin.conf

重置Kubernetes(卸载或重新初始化时执行)

kubeadm reset

使master能部署pod(单机部署)

kubectl taint nodes --all node-role.kubernetes.io/master-

可能的问题

# 查询node状态
kubectl get nodes
# 当Node NotReady时,使用下面命令查询详细
kubectl describe nodes
# 当异常为缺少cni时,在下面网址下载最新版本
https://github.com/containernetworking/plugins/releases
# 创建文件夹
mkdir ./cni
# 解压
cd ./cni
tar -zxvf ../cni-plugins-linux-arm64-v0.9.1.tgz
# 复制到系统路径
cd ..
mkdir -p /opt/cni/bin/
cp -r ./cni/* /opt/cni/bin/
# 配置
mkdir -p /etc/cni/net.d
cat >/etc/cni/net.d/10-mynet.conf <<EOF
{
	"cniVersion": "0.2.0",
	"name": "mynet",
	"type": "bridge",
	"bridge": "cni0",
	"isGateway": true,
	"ipMasq": true,
	"ipam": {
		"type": "host-local",
		"subnet": "10.22.0.0/16",
		"routes": [
			{ "dst": "0.0.0.0/0" }
		]
	}
}
EOF
cat >/etc/cni/net.d/99-loopback.conf <<EOF
{
	"cniVersion": "0.2.0",
	"name": "lo",
	"type": "loopback"
}
EOF
# 重启服务
systemctl daemon-reload
systemctl restart docker
systemctl restart kubelet

参考资料

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

PPHT-H

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值