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

其他

其他节点加入集群

没有其他节点,略

相关推荐
灼烧的疯狂10 分钟前
K8S + Jenkins 做CICD
容器·kubernetes·jenkins
wenyue11211 小时前
Revolutionize Your Kubernetes Experience with Easegress: Kubernetes Gateway API
容器·kubernetes·gateway
熙曦Sakura1 小时前
完全竞争市场
笔记
dr李四维2 小时前
iOS构建版本以及Hbuilder打iOS的ipa包全流程
前端·笔记·ios·产品运营·产品经理·xcode
Python私教4 小时前
ubuntu搭建k8s环境详细教程
linux·ubuntu·kubernetes
O&REO5 小时前
单机部署kubernetes环境下Overleaf-基于MicroK8s的Overleaf应用部署指南
云原生·容器·kubernetes
politeboy5 小时前
k8s启动springboot容器的时候,显示找不到application.yml文件
java·spring boot·kubernetes
Komorebi.py6 小时前
【Linux】-学习笔记05
linux·笔记·学习
运维小文6 小时前
K8S资源限制之LimitRange
云原生·容器·kubernetes·k8s资源限制
登云时刻6 小时前
Kubernetes集群外连接redis集群和使用redis-shake工具迁移数据(二)
redis·容器·kubernetes