已安装MicroK8s后如何启用IPv6
已安装MicroK8s后如何启用IPv6
嘿,我之前也碰到过和你一模一样的情况——Ubuntu Server初始化时就装了MicroK8s,后来才想起来要开IPv6,折腾了一会儿终于搞定了,给你分享下具体步骤:
首先你不用太担心CIDR的问题,MicroK8s其实有默认的IPv6集群和服务CIDR,只要你没特殊需求,直接用默认值就行,不用手动瞎改。下面一步步来:
先停掉MicroK8s服务
先把正在运行的MicroK8s停了,不然改配置会出问题:microk8s stop修改MicroK8s的核心配置文件
找到MicroK8s的主配置文件/var/snap/microk8s/current/config.yaml,用你熟悉的编辑器打开(比如nano):sudo nano /var/snap/microk8s/current/config.yaml在文件里添加或者修改这几行内容:
ipv6-support: true ipv6-cluster-cidr: fd42:42:42::/48 ipv6-service-cidr: fd42:42:43::/112解释下:
ipv6-support: true就是你要的核心开关,打开IPv6支持- 后面两个
ipv6-cluster-cidr和ipv6-service-cidr对应的是MicroK8s默认的IPv6网段,如果你没有自定义需求,直接用这个就行,不用自己琢磨新网段
调整核心组件的配置
光是改主配置还不够,还得给几个核心组件加上IPv6相关参数:- kube-apiserver:编辑
/var/snap/microk8s/current/args/kube-apiserver,添加下面几行:--enable-ipv6=true --cluster-ipv6=fd42:42:42::/48 --service-cluster-ip-range=fd42:42:43::/112 - kube-proxy:编辑
/var/snap/microk8s/current/args/kube-proxy,添加:--cluster-ipv6=fd42:42:42::/48 - kubelet:如果你的服务器已经有可用的IPv6地址,编辑
/var/snap/microk8s/current/args/kubelet,添加(把你的节点IPv6地址换成实际的地址,比如2001:db8::1):
要是你不确定节点的IPv6地址,先跑--node-ip=你的节点IPv6地址sudo ip addr查一下,找带有global标记的那个地址就行。
- kube-apiserver:编辑
重启MicroK8s并验证生效
改完所有配置后,启动MicroK8s:microk8s start等服务完全启动后,咱们来验证下IPv6是否生效:
- 查看节点的IPv6状态:
你应该能在microk8s kubectl get nodes -o wideINTERNAL-IP列看到节点的IPv6地址 - 也可以部署一个测试服务试试,比如nginx:
然后用microk8s kubectl create deployment nginx --image=nginx microk8s kubectl expose deployment nginx --port=80microk8s kubectl get services看服务的IPv6地址,尝试访问一下确认没问题。
- 查看节点的IPv6状态:
最后再回答你关心的CIDR问题:如果你的集群没有特殊的网络规划需求,完全不用手动配置IPv6_CLUSTER_CIDR和IPv6_SERVICE_CIDR,MicroK8s会自动使用默认的网段(就是上面配置里的那两个)。只有当你需要和现有网络环境兼容,或者有自定义网段的需求时,才需要修改这两个参数。
备注:内容来源于stack exchange,提问作者telometto
相关产品推荐
相关产品推荐

