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

其他

其他节点加入集群

没有其他节点,略

相关推荐
小齿轮lsl36 分钟前
PFC理论基础与Matlab仿真模型学习笔记(1)--PFC电路概述
笔记·学习·matlab
天玑y1 小时前
算法设计与分析(背包问题
c++·经验分享·笔记·学习·算法·leetcode·蓝桥杯
最新小梦2 小时前
Docker日志管理
运维·docker·容器
web_learning_3213 小时前
source insight学习笔记
笔记·学习
无妄啊______3 小时前
mysql笔记9(子查询)
数据库·笔记·mysql
苓诣4 小时前
Submariner 部署全过程
云计算·k8s
有你的晚安._4 小时前
pod基本概念
kubernetes
z2014z4 小时前
系统架构设计师教程 第5章 5.3 系统分析与设计 笔记
笔记·系统架构
青石横刀策马5 小时前
泛读笔记:从Word2Vec到BERT
笔记·bert·word2vec
Magnetic_h6 小时前
【iOS】单例模式
笔记·学习·ui·ios·单例模式·objective-c