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

Kubernetes安装与初始化指南
博客介绍了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

参考资料

在CentOS 7上安装Kubernetes(k8s)的控制组件(如kubeadmkubeletkubectl)需要几个步骤: 1. **更新系统并安装依赖**: ```sh sudo yum update -y sudo yum install -y curl git epel-release jq ``` 2. **安装kubeletkube-y kubelet kube-proxy socat conntrack-tools ``` 3. **安装kubeadm**: kubeadm不在默认的yum源里,所以需要从GitHub克隆并编译安装。首先创建目录并下载kubeadm二进制文件: ```sh mkdir -p /usr/local/bin/ curl https://raw.githubusercontent.com/kubernetes/release/master/bin/kubeadm > /usr/local/bin/kubeadm chmod +x /usr/local/bin/kubeadm ``` 4. **配置网络代理(如有必要)**: 如果你的环境需要设置环境变量支持集群通信,可以编辑`~/.bashrc`或`~/.zshrc`添加: ```sh export KUBECONFIG=/etc/kubernetes/admin.conf export PATH="/usr/local/sbin:/usr/local/bin:$PATH" ``` 5. **初始化主节点(master)**: 使用`kubeadm init`命令初始化,按照提示操作。这将生成一个`config.yaml`文件,保存它以备后续使用: ``` sudo kubeadm init --pod-network-cidr=10.244.0.0/16 ``` 确认成功后,运行`kubeadm join`命令加入worker节点。 6. **安装kubectl**: 已经在初始化过程中为管理员用户设置了`kubectl`,但在其他用户下可能需要手动安装: ``` sudo cp -i /etc/kubernetes/admin.conf ~/.kube/config sudo chown $(id -u):$(id -g) ~/.kube/config sudo kubectl config use-context $(kubectl config view --current-context) ``` 7. **部署kubelet**: 完成kubeadm初始化后,kubelet通常会自动运行。如果需要手动启动,可以在/etc/systemd/system/kubelet.service文件中设置启动策略,然后运行`sudo systemctl start kubelet`。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

PPHT-H

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

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

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

打赏作者

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

抵扣说明:

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

余额充值