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

其他

其他节点加入集群

没有其他节点,略

相关推荐
程序员Xu36 分钟前
【LeetCode热题100道笔记】二叉树的右视图
笔记·算法·leetcode
程序员Xu2 小时前
【LeetCode热题100道笔记】二叉搜索树中第 K 小的元素
笔记·算法·leetcode
DKPT2 小时前
JVM中如何调优新生代和老生代?
java·jvm·笔记·学习·spring
赴前尘3 小时前
k8s 部署 redis
k8s
衍余未了4 小时前
centos9 docker启动不起来,docker启动发生堵塞问题!
运维·docker·容器
我真的是大笨蛋5 小时前
K8S-基础架构
笔记·云原生·容器·kubernetes
tianyuanwo6 小时前
Docker Registry 实现原理、适用场景、常用操作及搭建详解
运维·docker·容器·registry
木二_6 小时前
附050.Kubernetes Karmada Helm部署联邦及使用
容器·kubernetes·karmada·kubernetes联邦·集群联邦
程序员Xu8 小时前
【LeetCode热题100道笔记】腐烂的橘子
笔记·算法·leetcode
wdxylb8 小时前
Kubernetes实战系列(4)
云原生·容器·kubernetes