Kubernetes(k8s)v1.32.5高可用集群部署(四)网络与必要组件部署

Kubernetes(k8s)v1.32.5高可用集群部署(四)网络与必要组件部署

admin
2025-06-30 / 0 评论 / 20 阅读 / 正在检测是否收录...


kubernetes部署是一个繁琐的过程,当然也可以使用第三方安装工具一键安装,但这不利于部署过程学习和自定义性,并且第三方工具或多或少都会有入侵性



部署k8s网络插件


网络插件选择


Flannel:

Overlay网络‌,默认VXLAN封装,可选host-gw更高效(需二层网络连通),适合小型集群快速部署

Calico:

混合模式‌支持BGP路由(纯三层)、IPIP隧道或VXLAN Overlay,集成eBPF优化数据面(新版),提供高级网络策略控制

Cilium

基于eBPF内核层技术‌,绕过传统iptables/IPVS,直接控制数据包转发,内置服务发现与丰富可观测性能力


选择部署:flannel插件

wget https://github.com/flannel-io/flannel/releases/latest/download/kube-flannel.yml

或者:

wget https://raw.githubusercontent.com/flannel-io/flannel/master/Documentation/kube-flannel.yml


修改flannel配置文件

vim kube-flannel.yml

集群容器网段必须要与集群的pod-network一致,转发类型默认为vxlan,如果各节点在同一个内网中推荐改为 "Type": "host-gw" 更高效

image1.png

flanneld启动参数加上–-iface= (单网卡可选 多个网卡必须指定网络接口否则dns解析错误)

本例中的网卡为 ens160

image2.png


启动flannel网络插件

kubectl apply -f kube-flannel.yml

image3.png


查看集群相关信息:

image4.png


确认kube-proxy反向代理类型为ipvs:

kubectl logs kube-proxy-h94vf -n kube-system

image5.png


检查ipvsadm策略:

ipvsadm -Ln

image6.png




部署其他必要组件


Metrics部署

wget https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml


修改Metrics配置

vim components.yaml

……
apiVersion: apps/v1
kind: Deployment
……
spec:
  replicas: 2            # 增加副本数,可根据集群规模调整,默认未设置(可选)
……
    spec:
      hostNetwork: true
      containers:
      - args:
        - --cert-dir=/tmp
        - --secure-port=10250
        - --kubelet-insecure-tls            # 追加此args,用于跳过tls验证
        - --kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname,InternalDNS,ExternalDNS      # 追加dns项
        - --kubelet-use-node-status-port
        image: registry.cn-hangzhou.aliyuncs.com/google_containers/metrics-server:v0.7.2                # 阿里云镜像加速地址
        imagePullPolicy: IfNotPresent
……


安装启动 metrics

kubectl apply -f components.yaml

kubectl -n kube-system get pods -l k8s-app=metrics-server

kubectl top nodes -A

image7.png


如果有问题可以检查api服务状态:

kubectl get apiservice v1beta1.metrics.k8s.io -o yaml


安装包管理器helm3 (all of master)

wget https://get.helm.sh/helm-v3.18.2-linux-amd64.tar.gz

tar -zxvf helm-v3.18.2-linux-amd64.tar.gz

cp linux-amd64/helm /usr/local/bin/

helm version

echo 'source <(helm completion bash)' >> .bashrc # helm 自动补全命令

image8.png


添加bitnami仓库源(repo)

helm repo add bitnami https://charts.bitnami.com/bitnami

helm repo list

搜索在bitnami中可以安装的软件

helm search repo bitnami

image9.png


kubectl命令自动补齐 (all of master)

默认kubectl命令不会自动补齐 安装在所有master节点

yum install bash-completion -y

source /etc/profile.d/bash_completion.sh

source <(kubectl completion bash)

echo "source <(kubectl completion bash)" >> ~/.bashrc

image10.png


etcd命令安装与操作:

wget https://github.com/etcd-io/etcd/releases/download/v3.6.1/etcd-v3.6.1-linux-amd64.tar.gz

tar -zxvf etcd-v3.6.1-linux-amd64.tar.gz && cp etcd-v3.6.1-linux-amd64/etcdctl /usr/local/bin/ && etcdctl version

image11.png


操作etcd:

etcdctl -w table --cert /etc/kubernetes/pki/etcd/peer.crt --key /etc/kubernetes/pki/etcd/peer.key --cacert /etc/kubernetes/pki/etcd/ca.crt \
--endpoints=https://10.2.16.181:2379,https://10.2.16.182:2379,https://10.2.16.183:2379 endpoint status --cluster

image12.png





0

评论 (0)

取消