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 ...
随机推荐
- MySQL运维实战(1.2)安装部署:使用二进制安装部署
作者:俊达 引言 上一篇我们使用了RPM进行安装部署,这是一种安装快速.简化部署和管理过程.与操作系统提供的包管理工具紧密集成的部署方法.此外,当你需要更高的灵活性和自定义性,并且愿意承担一些额外的手 ...
- 1.7每日总结-vue链mysql4
新建/server/router.js,用于配置对应路由let express = require('express')let router = express.Router()let user = ...
- Feign源码解析4:调用过程
背景 前面几篇分析了Feign的初始化过程,历经艰难,可算是把@FeignClient注解的接口对应的代理对象给创建出来了.今天看下在实际Feign调用过程中的一些源码细节. 我们这里Feign接口如 ...
- 文心一言 VS 讯飞星火 VS chatgpt (59)-- 算法导论6.4 3题
文心一言 VS 讯飞星火 VS chatgpt (59)-- 算法导论6.4 3题 三.对于一个按升序排列的包含 n 个元素的有序数组 A 来说,HEAPSORT 的时间复杂度是多少?如果 A 是降序 ...
- cf1453F 二维DP 思维
cf1453F 二维DP 思维 原题链接 题意 目前我们有一个序列,在第i个点可以走到[i + 1, i + a[i]]区间内的任意一点(也就是说如果a[i]是0,路就走不通了) 现在要求我们将一些位 ...
- 使用 Python Poetry 进行依赖管理
摘要:在本教程中,您探索了如何创建新的 Python Poetry 项目以及如何将 Poetry 添加到现有项目中. 本文分享自华为云社区<使用 Python Poetry 进行依赖管理> ...
- Windows 2016 安装 Docker
打开 PowerShell Windows PowerShell 版权所有 (C) 2016 Microsoft Corporation.保留所有权利. PS C:\Users\Administrat ...
- Codeforces Round 913 (Div. 3)
CF1907总结 A. Rook 题面翻译 给出车在国际象棋棋盘中的位置,输出其可到达的坐标(不必在意顺序). 车可以横着或竖着走任意格数. 分析 题意明了,输出车所在行和列所有格子的序号(除车所在位 ...
- Android Viewpager 滑动冲突解决
这篇博客主要讲解一下几个问题 粗略地介绍一下View的事件分发机制 解决事件滑动冲突的思路及方法 ScrollView 里面嵌套ViewPager导致的滑动冲突 ViewPager里面嵌套ViewPa ...
- BOM批量查询
1业务要求 1.当多层展开时: 根据"BOM应用程序"字段CAPID在TC04中取出"选择ID"TC04-CSLID: 再根据TCS41-CSLID= TC0 ...