首先主机支持IPV6网络,注意主机的网卡IPV6的地址段不要和下面设置的K3S网络有冲突!

安装

K3S默认的一些组件是不支持IPV6的所以我们需要禁用它们。

curl -sfL https://get.k3s.io | sh -s - --disable traefik --disable servicelb --disable metrics-server --disable-cloud-controller --kube-proxy-arg proxy-mode=ipvs --cluster-cidr=10.42.0.0/16,fd42::/48 --service-cidr=10.43.0.0/16,fd43::/112 --disable-network-policy --flannel-backend=none --node-ip=10.0.0.48,fd00::2a0:98ff:fe2d:a28

安装Calico

我们禁用了自带的traefik,负载均衡器,指标服务,flannel网络

我们需要安装Calico来替代flannel

wget https://docs.projectcalico.org/manifests/calico.yaml

修改下载的calico.yaml,找到ipam修改成下面这样

"ipam": {
    "type": "calico-ipam",
    "assign_ipv4": "true",
    "assign_ipv6": "true"
},

然后在calico.yaml中找到 FELIX_IPV6SUPPORT 变量并将其设置为 true

图片.png

部署calico.yaml

k3s kubectl apply -f calico.yaml

安装 Metallb

wget https://raw.githubusercontent.com/metallb/metallb/v0.10.2/manifests/namespace.yaml -O metallb-namespace.yaml
wget https://raw.githubusercontent.com/metallb/metallb/v0.10.2/manifests/metallb.yaml -O metallb-0.10.2-manifest.yaml
k3s kubectl apply -f metallb-namespace.yaml -f metallb-0.10.2-manifest.yaml

创建一个metallb-config.yaml文件,内容如下

apiVersion: v1
kind: ConfigMap
metadata:
  namespace: metallb-system
  name: config
data:
  config: |
    address-pools:
    - name: default
      protocol: layer2
      addresses:
      - 10.0.0.48
      - fd00::2a0:98ff:fe2d:a28

address可以写网段,根据自己的网络填写,填写的网段就是LoadBalancer会分配的

部署metallb-config.yaml

k3s kubectl apply -f metallb-config.yaml -n metallb-system
最后修改:2022 年 04 月 24 日
感谢您的支持