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的简单过程的更多相关文章

  1. CentOS7.3利用kubeadm安装kubernetes1.7.3完整版(官方文档填坑篇)

    安装前记: 近来容器对企业来说已经不是什么陌生的概念,Kubernetes作为Google开源的容器运行平台,受到了大家的热捧.搭建一套完整的kubernetes平台,也成为试用这套平台必须迈过的坎儿 ...

  2. Centos7 使用 kubeadm 安装Kubernetes 1.13.3

    目录 目录 什么是Kubeadm? 什么是容器存储接口(CSI)? 什么是CoreDNS? 1.环境准备 1.1.网络配置 1.2.更改 hostname 1.3.配置 SSH 免密码登录登录 1.4 ...

  3. PPTP支持IPv6

    pptp支持ipv6,谷歌资料不多,这里整理下   主要用来给ipv4访问ipv6资源的场景使用,客户端连接上pptp后会分配得到一个ipv6地址,通过此地址访问ipv6的资源 客户端网段在pptp. ...

  4. kubeadm安装

    目录: 环境准备 所有节点安装docker 部署K8s集群 部署Dashboard 安装Harbor私有仓库 安装 master(2C/4G,cpu核心数要求大于2) 192.168.63.100 d ...

  5. iOS应用支持IPV6,就那点事儿

    原文连接   果然是苹果打个哈欠,iOS行业内就得起一次风暴呀.自从5月初Apple明文规定所有开发者在6月1号以后提交新版本需要支持IPV6-Only的网络,大家便开始热火朝天的研究如何支持IPV6 ...

  6. iOS应用支持IPV6

    一.IPV6-Only支持是啥? 首先IPV6,是对IPV4地址空间的扩充.目前当我们用iOS设备连接上Wifi.4G.3G等网络时,设备被分配的地址均是IPV4地址,但是随着运营商和企业逐渐部署IP ...

  7. nginx 支持ipv6设置

    为了使nginx支持ipv6 访问需要做以下配置: 1.找到nginx的安装路径: 使用命令:whereis nginx 查看nginx安装路径: 进入nginx执行文件目录: 先用./nginx - ...

  8. kubeadm安装Kubernetes V1.10集群详细文档

    https://www.kubernetes.org.cn/3808.html?tdsourcetag=s_pcqq_aiomsg 1:服务器信息以及节点介绍 系统信息:centos1708 mini ...

  9. Kubeadm安装的K8S集群1年证书过期问题的解决思路

    这个问题,很多使用使用kubeadm的用户都会遇到. 网上也有类似的帖子,从源代码编译这种思路, 在生产环境,有些不现实. 还是使用kubeadm的命令操作,比较自然一点. 当然,自行生成一套证书,也 ...

  10. 使用 --image-repository 解决kubeadm 安装k8s 集群 谷歌镜像墙的问题

    从网上我们看到的好多kubeadm 安装k8s 的时候都说需要下拉取镜像,然后修改,实际上 我们可以使用配置参数,快速的跳过墙的问题 说明: 基础镜像,我们仍然存在,拉取的问题,但是dockerhub ...

随机推荐

  1. MySQL运维实战(1.2)安装部署:使用二进制安装部署

    作者:俊达 引言 上一篇我们使用了RPM进行安装部署,这是一种安装快速.简化部署和管理过程.与操作系统提供的包管理工具紧密集成的部署方法.此外,当你需要更高的灵活性和自定义性,并且愿意承担一些额外的手 ...

  2. 1.7每日总结-vue链mysql4

    新建/server/router.js,用于配置对应路由let express = require('express')let router = express.Router()let user = ...

  3. Feign源码解析4:调用过程

    背景 前面几篇分析了Feign的初始化过程,历经艰难,可算是把@FeignClient注解的接口对应的代理对象给创建出来了.今天看下在实际Feign调用过程中的一些源码细节. 我们这里Feign接口如 ...

  4. 文心一言 VS 讯飞星火 VS chatgpt (59)-- 算法导论6.4 3题

    文心一言 VS 讯飞星火 VS chatgpt (59)-- 算法导论6.4 3题 三.对于一个按升序排列的包含 n 个元素的有序数组 A 来说,HEAPSORT 的时间复杂度是多少?如果 A 是降序 ...

  5. cf1453F 二维DP 思维

    cf1453F 二维DP 思维 原题链接 题意 目前我们有一个序列,在第i个点可以走到[i + 1, i + a[i]]区间内的任意一点(也就是说如果a[i]是0,路就走不通了) 现在要求我们将一些位 ...

  6. 使用 Python Poetry 进行依赖管理

    摘要:在本教程中,您探索了如何创建新的 Python Poetry 项目以及如何将 Poetry 添加到现有项目中. 本文分享自华为云社区<使用 Python Poetry 进行依赖管理> ...

  7. Windows 2016 安装 Docker

    打开 PowerShell Windows PowerShell 版权所有 (C) 2016 Microsoft Corporation.保留所有权利. PS C:\Users\Administrat ...

  8. Codeforces Round 913 (Div. 3)

    CF1907总结 A. Rook 题面翻译 给出车在国际象棋棋盘中的位置,输出其可到达的坐标(不必在意顺序). 车可以横着或竖着走任意格数. 分析 题意明了,输出车所在行和列所有格子的序号(除车所在位 ...

  9. Android Viewpager 滑动冲突解决

    这篇博客主要讲解一下几个问题 粗略地介绍一下View的事件分发机制 解决事件滑动冲突的思路及方法 ScrollView 里面嵌套ViewPager导致的滑动冲突 ViewPager里面嵌套ViewPa ...

  10. BOM批量查询

     1业务要求 1.当多层展开时: 根据"BOM应用程序"字段CAPID在TC04中取出"选择ID"TC04-CSLID: 再根据TCS41-CSLID= TC0 ...