序
首先主机支持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
部署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