Kubernetes v1.28.4 安装笔记

安装 kubelet kubeadm kubectl

K8s 集群的每个 node 上都要安装的

官方文档参考: https://kubernetes.io/zh-cn/docs/setup/production-environment/tools/kubeadm/install-kubeadm/#installing-kubeadm-kubelet-and-kubectl

配置 containerd (容器运行时)

1. 转发 IPv4 并让 iptables 看到桥接流量
需要配置项 说明 验证
br_netfilter Ubuntu 18.04.4 LTS 已加载 lsmod | grep br_netfilter
overlay Ubuntu 18.04.4 LTS 已加载 lsmod | grep overlay
net.bridge.bridge-nf-call-iptables=1 Ubuntu 18.04.4 LTS 默认已是 1 sysctl net.bridge.bridge-nf-call-iptables
net.bridge.bridge-nf-call-ip6tables=1 Ubuntu 18.04.4 LTS 默认已是 1 sysctl net.bridge.bridge-nf-call-ip6tables
net.ipv4.ip_forward=1 Ubuntu 18.04.4 LTS 默认已是 1 sysctl net.ipv4.ip_forward

官方文档参考: https://kubernetes.io/zh-cn/docs/setup/production-environment/container-runtimes/#转发-ipv4-并让-iptables-看到桥接流量

2. containerd 相关配置

先生成默认的配置:

bash 复制代码
sudo containerd config default | sudo tee /etc/containerd/config.toml

该默认配置以下 2 处:

源文本 修改为
SystemdCgroup = false SystemdCgroup = true
sandbox_image = "registry.k8s.io/pause:3.6" sandbox_image = "registry.aliyuncs.com/google_containers/pause:3.6"

修改完毕后,执行systemctl restart containerd

官方文档参考:https://kubernetes.io/zh-cn/docs/setup/production-environment/container-runtimes/#转发-ipv4-并让-iptables-看到桥接流量

配置 kubelet 的 cgroup 驱动

Kubernetes v1.28 默认已经是

官方文档参考: https://kubernetes.io/zh-cn/docs/tasks/administer-cluster/kubeadm/configure-cgroup-driver/#配置-kubelet-的-cgroup-驱动

kubeadm 安装 K8s

bash 复制代码
sudo kubeadm init \
  --apiserver-advertise-address 10.0.16.5 \
  --image-repository registry.aliyuncs.com/google_containers \
  --kubernetes-version v1.28.4 \
  --service-cidr 10.100.0.0/16 \
  --pod-network-cidr 10.244.0.0/16

参数说明:

参数 说明
apiserver-advertise-address API 服务器所公布的其正在监听的 IP 地址。如果未设置,则使用默认网络接口
image-repository 镜像拉取的仓库,填写国内镜像源,不会被墙,拉不下来
kubernetes-version K8s 版本,本文值为 v1.28.4
service-cidr 为服务的虚拟 IP 地址另外指定 IP 地址段。默认值:"10.96.0.0/12"
pod-network-cidr 指明 Pod 网络可以使用的 IP 地址段。如果使用 Flannel 网络,必须配置这个字段。

官方文档参考: https://kubernetes.io/zh-cn/docs/reference/setup-tools/kubeadm/kubeadm-init/#config-file

成为 init 后,会有不少信息输出,按这些信息提示操作

安装网络插件

bash 复制代码
kubectl apply -f https://github.com/flannel-io/flannel/releases/download/v0.23.0/kube-flannel.yml

验收

bash 复制代码
fananchong@myubuntu:~$ kubectl get po -A
NAMESPACE      NAME                               READY   STATUS    RESTARTS   AGE
kube-flannel   kube-flannel-ds-hrpcn              1/1     Running   0          3h6m
kube-system    coredns-66f779496c-8lsvj           1/1     Running   0          3h32m
kube-system    coredns-66f779496c-kbzts           1/1     Running   0          3h32m
kube-system    etcd-myubuntu                      1/1     Running   1          3h32m
kube-system    kube-apiserver-myubuntu            1/1     Running   1          3h32m
kube-system    kube-controller-manager-myubuntu   1/1     Running   1          3h32m
kube-system    kube-proxy-qksn5                   1/1     Running   0          3h32m
kube-system    kube-scheduler-myubuntu            1/1     Running   1          3h32m

主节点可被调度 Pod

通过查看主节点信息,找到设置的污点信息

bash 复制代码
kubectl describe node myubuntu | grep Taints

用类似以下命令删除:

bash 复制代码
kubectl taint node myubuntu node-role.kubernetes.io/control-plane:NoSchedule-

创建个 pod 验收下

bash 复制代码
kubectl create deployment nginx --image=nginx
kubectl get pod -A

kubectl 自动补全

  • 打开终端,并编辑 ~/.bashrc 文件(或 ~/.bash_profile)

  • 添加以下行来加载 kubectl 的自动补全脚本:

    bash 复制代码
    source <(kubectl completion bash)

    保存并关闭文件。

  • 在终端中执行以下命令以使更改生效:

    bash 复制代码
    source ~/.bashrc

其他

其他节点加入集群

没有其他节点,略

相关推荐
帅云毅44 分钟前
Web3.0的认知补充(去中心化)
笔记·学习·web3·去中心化·区块链
豆豆1 小时前
day32 学习笔记
图像处理·笔记·opencv·学习·计算机视觉
时迁2471 小时前
【k8s】k8s是怎么实现自动扩缩的
云原生·容器·kubernetes·k8s
nenchoumi31191 小时前
VLA 论文精读(十六)FP3: A 3D Foundation Policy for Robotic Manipulation
论文阅读·人工智能·笔记·学习·vln
凉、介1 小时前
PCI 总线学习笔记(五)
android·linux·笔记·学习·pcie·pci
鬼面瓷2 小时前
CAPL编程_03
前端·数据库·笔记
帅云毅2 小时前
Web漏洞--XSS之订单系统和Shell箱子
前端·笔记·web安全·php·xss
丰锋ff3 小时前
考研英一学习笔记
笔记·学习·考研
Invinciblenuonuo4 小时前
FreeRTOS学习笔记【10】-----任务上下文切换
笔记·学习
诡异森林。4 小时前
Docker--Docker网络原理
网络·docker·容器