Kubeadm 安装支持IPV6 K8S1.28.x的简单过程
Kubeadm 安装支持IPV6 K8S的简单过程
背景
手贱
找了一个晚上想尝试安装一个K8S集群
并且可以支持IPV6 协议栈的
然后就开始各种百度. 各种处理
找到了一堆歪门邪道.
但是还不知道对不对.
这里总结一下. 备忘(第二天就忘记昨天晚上干的事情了)
学习来源
第一个: 简书
https://www.jianshu.com/p/b10b2d996c40
第二个: 简书
https://www.jianshu.com/p/a04ad0d1f908
第三个: 下载calico的yaml文件
wget https://docs.tigera.io/calico/latest/manifests/calico.yaml
简单初始
/etc/hosts
/etc/sysctl.conf
/etc/selinux/config
swapoff -a
需要注意要增加ipv6的 forward 不然那会报错
使用来源进行安装必备的软件
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [
"https://dockerproxy.com",
"https://hub-mirror.c.163.com",
"https://mirror.baidubce.com",
"https://ccr.ccs.tencentyun.com"
]
}
EOF
使用来源的 源 进行安装处理
cat >/etc/yum.repos.d/kubernetes.repo <<EOF
[kubernetes]
name=kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
[kubernetes]
name=kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
EOF
注意 CentOS7 使用 7 CentOS8 openEuler anolis 使用 el8
安装一堆rpm
containerd.io-1.6.25-3.1.el8.x86_64.rpm
container-selinux-2.138-5.oe2203sp2.noarch.rpm
cri-dockerd-0.3.4-3.el8.x86_64.rpm
daemon.json
docker-buildx-plugin-0.11.2-1.el8.x86_64.rpm
docker-ce-24.0.7-1.el8.x86_64.rpm
docker-ce-cli-24.0.7-1.el8.x86_64.rpm
docker-ce-rootless-extras-24.0.7-1.el8.x86_64.rpm
docker-compose-plugin-2.21.0-1.el8.x86_64.rpm
cri-tools-1.28.0-150500.1.1.x86_64.rpm
kubeadm-1.28.4-150500.1.1.x86_64.rpm
kubectl-1.28.4-150500.1.1.x86_64.rpm
kubelet-1.28.4-150500.1.1.x86_64.rpm
kubernetes-cni-1.2.0-150500.2.1.x86_64.rpm
kubernetes.repo
libnetfilter_cthelper-1.0.0-16.oe2203sp2.x86_64.rpm
libnetfilter_cttimeout-1.0.0-15.oe2203sp2.x86_64.rpm
libnetfilter_queue-1.0.5-2.oe2203sp2.x86_64.rpm
导入一堆镜像
这里不分别列了 安装万 kubeadm 之后可以查看
kubeadm config images list
registry.k8s.io/kube-apiserver:v1.28.4
registry.k8s.io/kube-controller-manager:v1.28.4
registry.k8s.io/kube-scheduler:v1.28.4
registry.k8s.io/kube-proxy:v1.28.4
registry.k8s.io/pause:3.9
registry.k8s.io/etcd:3.5.9-0
registry.k8s.io/coredns/coredns:v1.10.1
注意可以根据下面的初始化命令进行修改
注意 安装完 cri-docker 之后需要修改一下 cri-docker的配置 才可以进行相关的处理
修改
/usr/lib/systemd/system/cri-docker.service
将里面的启动脚本修改为:
注意 pause 的脚本需要根据具体情况来.
ExecStart=/usr/bin/cri-dockerd --network-plugin=cni --pod-infra-container-image=registry.aliyuncs.com/google_containers/pause:3.9
kubeadm 初始化
kubeadm init --node-name=gscloudpg15 \
--image-repository=registry.aliyuncs.com/google_containers \
--cri-socket=unix:///var/run/cri-dockerd.sock \
--pod-network-cidr=2001:db8:42:0::/56,10.244.0.0/16 \
--service-cidr=2001:db8:42:1::/112,10.96.0.0/16 \
--apiserver-advertise-address=2408:400a:ed:d4ff:7a7b:f5dc:a12f:e5e7 \
--apiserver-bind-port=6443
# 注意 node-name 单节点时需要时 机器名
# 注意 镜像仓库可以进行正常的导入 离线处理 这次我其实是选用的 简书上面下载的资料 1.28.4
# 注意 可以把ipv6的地址放在前面 ipv4的在后面
# 注意如果使用ipv6 必须增加上 --apiserver-advertise-address
初始化网络
flannel 可以支持ipv6 但是比较麻烦
感觉可以使用 calico的方式进行
可以下载 calico
wget https://docs.tigera.io/calico/latest/manifests/calico.yaml
修改点主要有:
修改config-map
大概是在 40 行左右 增加IPV6的兼容支持 注意我这里忘记了 一个逗号, 浪费了一晚上的时间.
修改yaml配置文件一定要仔细认真
主要的变化是:
"ipam": {
"type": "calico-ipam",
"assign_ipv4": "true",
"assign_ipv6": "true"
},
原始文件内容变化:
kind: ConfigMap
apiVersion: v1
metadata:
name: calico-config
namespace: kube-system
data:
# Typha is disabled.
typha_service_name: "none"
# Configure the backend to use.
calico_backend: "bird"
# Configure the MTU to use for workload interfaces and tunnels.
# By default, MTU is auto-detected, and explicitly setting this field should not be required.
# You can override auto-detection by providing a non-zero value.
veth_mtu: "0"
# The CNI network configuration to install on each node. The special
# values in this config will be automatically populated.
cni_network_config: |-
{
"name": "k8s-pod-network",
"cniVersion": "0.3.1",
"plugins": [
{
"type": "calico",
"log_level": "info",
"log_file_path": "/var/log/calico/cni/cni.log",
"datastore_type": "kubernetes",
"nodename": "__KUBERNETES_NODE_NAME__",
"mtu": __CNI_MTU__,
"ipam": {
"type": "calico-ipam",
"assign_ipv4": "true",
"assign_ipv6": "true"
},
"policy": {
省略很多行
增加IPV6的兼容处理-2
在 container的配置界面处进行修改
- name: CLUSTER_TYPE
value: "k8s,bgp"
# Auto-detect the BGP IP address.
- name: IP
value: "autodetect"
- name: IP6
value: "autodetect"
增加IP6的属性
大概是第 4000多行
注意 CIDR 我这边跟kubeadm 里面初始化的是相同前缀. 具体原因我还不是很清楚
4812 - name: FELIX_DEFAULTENDPOINTTOHOSTACTION
4813 value: "ACCEPT"
4814 # Disable IPv6 on Kubernetes.
4815
4816 - name: CALICO_IPV6POOL_CIDR
4817 value: 2001:db8:42:0::/56
4818 - name: FELIX_IPV6SUPPORT
4819 value: "true"
4820 - name: FELIX_HEALTHENABLED
4821 value: "true"
初始化calico
kubectl apply -f calico.yaml
会自动拉至少三个镜像, 跟网速有很大的关系
可以使用
kubectl get pod -A -w 自动刷新查看pod的进展情况
kubectl get pod -A -w -owide
NAMESPACE NAME READY STATUS RESTARTS AGE IP
kube-system calico-kube-controllers-7ddc4f45bc-lnld6 1/1 Running 0 83m 2001:db8:1::e
kube-system calico-node-9msnb 1/1 Running 0 37m 2408:400a:ed:d4ff:7a7b:f5dc
kube-system coredns-66f779496c-8hdxk 1/1 Running 0 84m 2001:db8:1::c
kube-system coredns-66f779496c-qm29r 1/1 Running 0 84m 2001:db8:1::d
kube-system etcd-gscloudpg15 1/1 Running 0 84m 2408:400a:ed:d4ff:7a7b:f5dc
kube-system kube-apiserver-gscloudpg15 1/1 Running 0 84m 2408:400a:ed:d4ff:7a7b:f5dc
kube-system kube-controller-manager-gscloudpg15 1/1 Running 0 84m 2408:400a:ed:d4ff:7a7b:f5dc
kube-system kube-proxy-8sj2j 1/1 Running 0 84m 2408:400a:ed:d4ff:7a7b:f5dc
kube-system kube-scheduler-gscloudpg15 1/1 Running 1 84m 2408:400a:ed:d4ff:7a7b:f5dc
其他验证
下一个晚上进行, 希望别再有标点符号的问题了..
Kubeadm 安装支持IPV6 K8S1.28.x的简单过程的更多相关文章
- CentOS7.3利用kubeadm安装kubernetes1.7.3完整版(官方文档填坑篇)
安装前记: 近来容器对企业来说已经不是什么陌生的概念,Kubernetes作为Google开源的容器运行平台,受到了大家的热捧.搭建一套完整的kubernetes平台,也成为试用这套平台必须迈过的坎儿 ...
- Centos7 使用 kubeadm 安装Kubernetes 1.13.3
目录 目录 什么是Kubeadm? 什么是容器存储接口(CSI)? 什么是CoreDNS? 1.环境准备 1.1.网络配置 1.2.更改 hostname 1.3.配置 SSH 免密码登录登录 1.4 ...
- PPTP支持IPv6
pptp支持ipv6,谷歌资料不多,这里整理下 主要用来给ipv4访问ipv6资源的场景使用,客户端连接上pptp后会分配得到一个ipv6地址,通过此地址访问ipv6的资源 客户端网段在pptp. ...
- kubeadm安装
目录: 环境准备 所有节点安装docker 部署K8s集群 部署Dashboard 安装Harbor私有仓库 安装 master(2C/4G,cpu核心数要求大于2) 192.168.63.100 d ...
- iOS应用支持IPV6,就那点事儿
原文连接 果然是苹果打个哈欠,iOS行业内就得起一次风暴呀.自从5月初Apple明文规定所有开发者在6月1号以后提交新版本需要支持IPV6-Only的网络,大家便开始热火朝天的研究如何支持IPV6 ...
- iOS应用支持IPV6
一.IPV6-Only支持是啥? 首先IPV6,是对IPV4地址空间的扩充.目前当我们用iOS设备连接上Wifi.4G.3G等网络时,设备被分配的地址均是IPV4地址,但是随着运营商和企业逐渐部署IP ...
- nginx 支持ipv6设置
为了使nginx支持ipv6 访问需要做以下配置: 1.找到nginx的安装路径: 使用命令:whereis nginx 查看nginx安装路径: 进入nginx执行文件目录: 先用./nginx - ...
- kubeadm安装Kubernetes V1.10集群详细文档
https://www.kubernetes.org.cn/3808.html?tdsourcetag=s_pcqq_aiomsg 1:服务器信息以及节点介绍 系统信息:centos1708 mini ...
- Kubeadm安装的K8S集群1年证书过期问题的解决思路
这个问题,很多使用使用kubeadm的用户都会遇到. 网上也有类似的帖子,从源代码编译这种思路, 在生产环境,有些不现实. 还是使用kubeadm的命令操作,比较自然一点. 当然,自行生成一套证书,也 ...
- 使用 --image-repository 解决kubeadm 安装k8s 集群 谷歌镜像墙的问题
从网上我们看到的好多kubeadm 安装k8s 的时候都说需要下拉取镜像,然后修改,实际上 我们可以使用配置参数,快速的跳过墙的问题 说明: 基础镜像,我们仍然存在,拉取的问题,但是dockerhub ...
随机推荐
- 红日靶场2-wp
红日靶场2 环境搭建 靶场配置 靶场拓扑图如下: 首先先新建一个网卡, PC PC端虚拟机相当于网关服务器,所以需要两张网卡,一个用来向外网提供web服务,一个是通向内网. 由于作者默认的网段设置为1 ...
- MySQL 基础(四)锁
解决并发事务带来的问题 写-写情况 任意一种事务隔离级别都不允许 "脏写" 的发生,因为这样会使得数据混乱.所以,当多个未提交的事务相继对一条记录进行改动时,就需要使得这些事务串行 ...
- Vue接入谷歌广告(Google Adsense)
1.注册账户 首先你要拥有一个google账号,点击注册谷歌账号,点击个人账号根据提示一步一步来即可注册成功.(当然你需要魔法才可以正常访问谷歌服务) 2.补充账户信息,申请广告授权 点击进入Goog ...
- java中获取公网IP
package com.dashan.utils.iputils; import org.apache.commons.lang.StringUtils; import java.io.Buffere ...
- Microsoft Docs & Learn Champion 冠军赛
2021年个人作为微软MVP,参与了Microsoft Docs & Learn Champion 冠军赛,经过一年的努力,全面宣传了微软的技术. 以下是Microsoft Docs & ...
- Redisson:这么强大的实现分布式锁框架,你还没有?
摘要:Redisson框架十分强大,基于Redisson框架可以实现几乎你能想到的所有类型的分布式锁. 本文分享自华为云社区<[高并发]你知道吗?大家都在使用Redisson实现分布式锁了!!& ...
- 最高提升10倍性能!揭秘火山引擎ByteHouse查询优化器实现方案
更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 作为企业级数据库的核心组件之一,查询优化器的地位不可忽视.对于众多依赖数据分析的现代企业来说,一个强大且完善 ...
- 聚焦企业数据生命周期全链路 火山引擎数智平台 VeDI 发布《数据智能知识图谱》
更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 近日,火山引擎数智平台(VeDI)正式发布<数据智能知识图谱>(以下简称「图谱」),内容覆盖了包括数据 ...
- Jenkins Pipeline 流水线 - 完整构建 Pipeline Script 脚本
Docker Jenkins 安装配置 Windows 2016 安装 Jenkins 前置条件可参考 Jenkins Pipeline 流水线 - 拉代码(SVN) + Maven 编译打包 Jen ...
- 创建一个简单的Docker镜像
1. 创建 Dockerfile 文件.index.html测试页面 [root@localhost docker]# vi Dockerfile FROM nginx:1.17.6 #基于 ngin ...