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

其他

其他节点加入集群

没有其他节点,略

相关推荐
敲敲敲-敲代码27 分钟前
【机器学习】神经网络(BP算法)含具体计算过程
人工智能·笔记·神经网络·机器学习
sealaugh323 小时前
aws(学习笔记第二十四课) 使用sam开发step functions
笔记·学习·aws
淡黄的Cherry4 小时前
EFK采集k8s日志
云原生·容器·kubernetes
明天好,会的5 小时前
代码的形状:重构的方向
笔记·其他
惟长堤一痕5 小时前
黑马linux入门笔记(01)初始Linux Linux基础命令 用户和权限 实用操作
linux·运维·笔记
Steps-of-time5 小时前
STL之Vector&Map&List针对erase方法踩坑笔记
笔记
linly12195 小时前
MATLAB学习笔记目录
笔记·学习·matlab
罗汉松(山水白河)5 小时前
解除WPS登录限制
windows·经验分享·笔记·学习·wps
_不会dp不改名_7 小时前
HCIP笔记1--IP路由基础回顾、BFD单臂回声、OSPF基础
网络·笔记·hcip
李一帆'7 小时前
Windows安装Docker Desktop
windows·docker·容器