k8s
组件 资源清单
pod 生命周期
pod 控制器
服务发现
runcher
KubeSphere
Helm
helm命令
helm 常用内置对象
helm 内置函数
helm 的逻辑 和 流程控制
helm 中变量在作用域、列表、元祖、字典中的引用
helm 使用define定义子模版、template和include调用
helm 获取其他文件的内容和文件名
社区的Helm chart仓库
helm几个常用仓库
存储 configMap
进入k8s pod
k8s Node节点的调试
k8s 部署
sealos 部署
kubeadm 1.28部署
增加 node 节点
在aws 上自建k8s
利用NFS动态提供Kubernetes后端存储卷
rook-ceph
CephFS挂载
Ceph Dashboard
ingress
k8s集成kube-prometheus
ServiceMonitor 添加配置
Prometheus 长期远程存储方案 VictoriaMetrics
解决ControllerManager、Scheduler、watchdog监控问题
抓取配置说明
kubernetes配置imagePullSecrets秘钥来拉取镜像
在 Kubernetes 裡跑 curl 來測試內部服務
MetalLB
cloudflare-tunnel-ingress-controller
K8S kubectl 自动补全
argocd
helm部署redis-culster集群
改变默认 StorageClass
自定义指标HPA
istio
kiali
k8s接入graylog
Labels
DNS
HPA
ConfigMap挂载导致容器目录覆盖的问题
污点容忍度
身份认证与权限 RBAC
command
运行crictl ps -a 报错
etcd
cka证书
cert-manager
Kubernetes 创建普通账号
部署 metrics-server 指标
deployment 重启
Kubernetes中如何优雅的解决Pod时区问题
alertmanager
oom killed
eks挂载efs
eks创建集群
eksctl awscli kubectl
污点和容忍度
Kubernetes 删除namespace Terminating解决脚本
k8s 部署 kafka 集群
ack ingress获取客户端客户端真实IP
ingress 反向代理 ws
本文档使用 MrDoc 发布
-
+
首页
kubeadm 1.28部署
# 环境准备 https://v1-27.docs.kubernetes.io/zh-cn/docs/setup/production-environment/container-runtimes/ ## 转发 IPv4 并让 iptables 看到桥接流量 ``` cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf overlay br_netfilter EOF sudo modprobe overlay sudo modprobe br_netfilter # 设置所需的 sysctl 参数,参数在重新启动后保持不变 cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf net.bridge.bridge-nf-call-iptables = 1 net.bridge.bridge-nf-call-ip6tables = 1 net.ipv4.ip_forward = 1 EOF # 应用 sysctl 参数而不重新启动 sudo sysctl --system #通过运行以下指令确认 br_netfilter 和 overlay 模块被加载: lsmod | grep br_netfilter lsmod | grep overlay # 通过运行以下指令确认 net.bridge.bridge-nf-call-iptables、net.bridge.bridge-nf-call-ip6tables 和 net.ipv4.ip_forward 系统变量在你的 sysctl 配置中被设置为 1: sysctl net.bridge.bridge-nf-call-iptables net.bridge.bridge-nf-call-ip6tables net.ipv4.ip_forward ``` ## 关闭 swap 交换分区 ``` #注释/etc/fstab关于swap的配置 echo vm.swappiness=0 >> /etc/sysctl.con # 临时关闭 swapoff -a ``` ## 确保每个节点上 MAC 地址和 product_uuid 的唯一性 * 你可以使用命令 ip link 或 ifconfig -a 来获取网络接口的 MAC 地址 * 可以使用 sudo cat /sys/class/dmi/id/product_uuid 命令对 product_uuid 校验 一般来讲,硬件设备会拥有唯一的地址,但是有些虚拟机的地址可能会重复。 Kubernetes 使用这些值来唯一确定集群中的节点。 如果这些值在每个节点上不唯一,可能会导致安装失败。 ## 关闭 selinux 和 firewalld ``` #关闭防火墙,selinux systemctl stop firewalld systemctl disable firewalld sed -i 's/enforcing/disabled/' /etc/selinux/config setenforce 0 ``` # install containerd https://www.cnblogs.com/evescn/p/16996386.html ``` yum install -y yum-utils yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo yum -y install containerd.io # 生成默认配置 containerd config default > /etc/containerd/config.toml # 配置 systemd cgroup 驱动程序 sed -i 's/SystemdCgroup = false/SystemdCgroup = true/g' /etc/containerd/config.toml # 启动 systemctl daemon-reload systemctl enable containerd --now systemctl status containerd ``` # 安装 kubeadm ## 安装 kubeadm、kubelet 和 kubectl https://v1-27.docs.kubernetes.io/zh-cn/docs/setup/production-environment/tools/kubeadm/install-kubeadm/ 你需要在每台机器上安装以下的软件包: * kubeadm:用来初始化集群的指令。 * kubelet:在集群中的每个节点上用来启动 Pod 和容器等。 * kubectl:用来与集群通信的命令行工具。 ``` # new cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo [kubernetes] name=Kubernetes baseurl=https://pkgs.k8s.io/core:/stable:/v1.30/rpm/ enabled=1 gpgcheck=1 gpgkey=https://pkgs.k8s.io/core:/stable:/v1.30/rpm/repodata/repomd.xml.key exclude=kubelet kubeadm kubectl cri-tools kubernetes-cni EOF # 404 cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo [kubernetes] name=Kubernetes baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-\$basearch enabled=1 gpgcheck=1 gpgkey=https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg exclude=kubelet kubeadm kubectl EOF ## aliyun 源 cat <<EOF > /etc/yum.repos.d/kubernetes.repo [kubernetes] name=Kubernetes baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64 enabled=1 gpgcheck=0 EOF # 将 SELinux 设置为 permissive 模式(相当于将其禁用) sudo setenforce 0 sudo sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config sudo yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes # sudo yum install -y kubelet-1.28.1 kubeadm-1.28.1 kubectl-1.28.1 --disableexcludes=kubernetes sudo systemctl enable --now kubelet ``` # 使用 kubeadm 创建集群 https://v1-27.docs.kubernetes.io/zh-cn/docs/reference/setup-tools/kubeadm/kubeadm-init/#config-file ## kubeadm init ``` kubeadm init \ --apiserver-advertise-address 192.168.1.141 \ --cri-socket unix:///var/run/containerd/containerd.sock \ --pod-network-cidr 10.244.0.0/16 \ --service-cidr 10.96.0.0/12 --apiserver-advertise-address API 服务器所公布的其正在监听的 IP 地址。如果未设置,则使用默认网络接口。 --image-repository 由于默认拉取镜像地址k8s.gcr.io国内无法访问,这里指定阿里云镜像仓库地址 --kubernetes-version K8s版本,与上面安装的一致 --service-cidr 集群内部虚拟网络,Pod统一访问入口 --pod-network-cidr Pod网络,,与下面部署的CNI网络组件yaml中保持一致 ``` # install calico ## 方法一 ``` #下载operator资源清单文件 [root@k8s-master01 ~]# wget https://docs.projectcalico.org/manifests/tigera-operator.yaml #应用资源清单文件,创建operator [root@k8s-master01 ~]# kubectl apply -f tigera-operator.yaml #3.通过自定义资源方式安装,下载配置 Calico 所需的自定义资源 curl https://projectcalico.docs.tigera.io/manifests/custom-resources.yaml -O #修改custom-resources.yaml的ip如下图,创建清单以安装 Calico。 kubectl create -f custom-resources.yaml [root@kht151 kht]# kubectl apply -f custom-resources.yaml installation.operator.tigera.io/default created apiserver.operator.tigera.io/default created ``` ![](/media/202310/2023-10-20_182921_3022380.5429565770608004.png) ## 方法二 ``` #下载后修改IP如下图 curl https://projectcalico.docs.tigera.io/manifests/calico.yaml -O curl -O https://docs.tigera.io/archive/v3.25/manifests/calico.yaml #修改完成后执行 kubectl apply -f calico.yaml ``` ![](/media/202310/2023-10-20_182940_9700430.35029769541798494.png) ## k8s calico-node错误日志 listen tcp: lookup localhost on 8.8.4.4:53: no such host 查看日志提示 : listen tcp: lookup localhost on 8.8.4.4:53: no such host 解决方案: 添加localhost映射:vi /etc/hosts ``` 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 ``` 删除calico-node,重启 :kubectl delete pod calico-node-实际名称 -n kube-system 查看 :kubectl get pods --all-namespaces -o wide
admin
2024年5月17日 12:55
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码