[Kubernetes[K8S]集群:master主节点初始化]:通过Calico和Coredns网络插件方式安装

文章目录

  • 操作流程:
  • 前置:Docker和K8S安装版本匹配查看
    • 0.1:安装指定docker版本
  • **[1 — 7] ** [ 配置K8S主从集群前置准备操作 ]
  • 一:主节点操作 查看主机域名->编辑域名->域名配置
  • 二:安装自动填充,虚拟机默认没有
  • 三:关闭防火墙
  • 四:关闭交换空间
  • 五:禁用 Selinux
  • 六: 允许 ip tables 检查桥接流量
  • 七:设置K8S相关系统参数
    • 7.0:镜像加速
    • 7.1:K8S仓库国内源
    • 7.2:配置 sysctl 参数,网桥和地址转发,重新启动后配置不变
      • 7.2.1:配置sysctl 内核参数而不重新启动
  • 八:安装K8S -- kubelet,kubeadm,kubectl核心组件
    • 8.1:安装命令
    • 8.2 前置-注意:安装网络插件coredns,否则在第九步执行init会卡住
  • 九:kubeadm init生成Node
    • 9.1: 当前主节点执行
      • 9.1.1:master节点操作address=192.168.56.101
    • 9.2: 上述会生成如下日志说明成功
    • 9.4: 根据日志提示 <font color = red>执行 对应指令 mkdir 等
    • 9.5 配置calico网络
    • 9.6 修改calico.yaml
    • 9.7:执行calico.yaml生成pod
      • 9.7.1:kubectl apply -f calico.yaml
      • 9.7.2:查看pod信息:
      • 9.7.3:查看node信息:

操作流程:

主节点:安装coredns -> init初始化 主节点(此时还没有安装calico)
从节点:基于主节点生成join命令加入集群
主节点:安装calico:apply 生成pod,此时没有调整yaml网卡
coredns 和calico pod 运行成功
但是 calico-node-cl8f2 运行失败
查看 解决链接
在这里插入图片描述

前置:Docker和K8S安装版本匹配查看

因为之前写过一篇,calico一直异常,步骤一样所以怀疑是版本不匹配,这次看都是成功的

 Kubernetes 版本	Docker 版本
 1.20	19.03
 1.21	20.10
 1.22	20.10
 1.23	20.10
 1.24	20.10

0.1:安装指定docker版本

sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

sudo: yum-config-manager:找不到命令 -> 执行

sudo yum install yum-utils
yum list docker-ce --showduplicates | sort -r
[root@10 ~]# yum list docker-ce --showduplicates | sort -r
已加载插件:fastestmirror
已安装的软件包
可安装的软件包
 * updates: mirrors.ustc.edu.cn
Loading mirror speeds from cached hostfile
 * extras: mirrors.ustc.edu.cn
docker-ce.x86_64            3:26.0.0-1.el7                     docker-ce-stable
。。。。
docker-ce.x86_64            3:20.10.8-3.el7                    docker-ce-stable
docker-ce.x86_64            3:20.10.5-3.el7                    docker-ce-stable
 yum install docker-ce-20.10.8-3.el7  -y

**[1 — 7] ** [ 配置K8S主从集群前置准备操作 ]

一:主节点操作 查看主机域名->编辑域名->域名配置

[root@localhost ~]# hostname
localhost.localdomain
[root@localhost ~]# hostnamectl set-hostname adam-init-master
[root@localhost ~]# hostname
adam-init-master
[root@localhost ~]#
[root@vbox-master-01-vbox-01 ~]# vi /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
# 以下添加
192.168.56.104  adam-init-master
192.168.56.105  adam-init-slaver-one

二:安装自动填充,虚拟机默认没有

[root@vbox-master-01-vbox-01 ~]# yum -y install bash-completion
已加载插件:fastestmirror, product-id, search-disabled-repos, subscription-manager

This system is not registered with an entitlement server. You can use subscription-manager to register.

Determining fastest mirrors
 * base: ftp.sjtu.edu.cn
 * extras: mirrors.nju.edu.cn
 * updates: mirrors.aliyun.com

三:关闭防火墙

systemctl stop firewalld
systemctl disable firewalld

四:关闭交换空间

free -h
swapoff -a
sed -i 's/.*swap.*/#&/' /etc/fstab
free -h

五:禁用 Selinux

sed -i “s/^SELINUX=enforcing/SELINUX=disabled/g” /etc/sysconfig/selinux

[root@nodemaster /]# sed -i "s/^SELINUX=enforcing/SELINUX=disabled/g" /etc/sysconfig/selinux

六: 允许 ip tables 检查桥接流量

iptables -F && iptables -X && iptables -F -t nat && iptables -X -t nat && iptables -P FORWARD ACCEPT

七:设置K8S相关系统参数

7.0:镜像加速

第一行驱动

tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://hnkfbj7x.mirror.aliyuncs.com"],
  "exec-opts": ["native.cgroupdriver=systemd"]
}
EOF

7.1:K8S仓库国内源

cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
# 是否开启本仓库
enabled=1
# 是否检查 gpg 签名文件
gpgcheck=0
# 是否检查 gpg 签名文件
repo_gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg

EOF

7.2:配置 sysctl 参数,网桥和地址转发,重新启动后配置不变

cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-iptables  = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.ipv4.ip_forward                 = 1
EOF

7.2.1:配置sysctl 内核参数而不重新启动

sysctl --system

八:安装K8S – kubelet,kubeadm,kubectl核心组件

8.1:安装命令

[root@master local]# sudo yum install -y kubelet-1.23.0 kubeadm-1.23.0 kubectl-1.23.0 --disableexcludes=kubernetes --nogpgcheck
已安装:
  kubeadm.x86_64 0:1.23.0-0            kubectl.x86_64 0:1.23.0-0            kubelet.x86_64 0:1.23.0-0

作为依赖被安装:
  conntrack-tools.x86_64 0:1.4.4-7.el7                    cri-tools.x86_64 0:1.26.0-0
  kubernetes-cni.x86_64 0:1.2.0-0                         libnetfilter_cthelper.x86_64 0:1.0.0-11.el7
  libnetfilter_cttimeout.x86_64 0:1.0.0-7.el7             libnetfilter_queue.x86_64 0:1.0.2-2.el7_2
  socat.x86_64 0:1.7.3.2-2.el7

完毕!

8.2 前置-注意:安装网络插件coredns,否则在第九步执行init会卡住

docker pull coredns/coredns
docker tag coredns/coredns:latest registry.aliyuncs.com/google_containers/coredns/coredns:v1.8.0
[root@master kubernetes]# docker pull coredns/coredns
[root@master kubernetes]# docker tag coredns/coredns:latest registry.aliyuncs.com/google_containers/coredns/coredns:v1.8.0

九:kubeadm init生成Node

9.1: 当前主节点执行

9.1.1:master节点操作address=192.168.56.101

kubeadm init --kubernetes-version=yourversion --image-repository=registry.aliyuncs.com/google_containers --apiserver-advertise-address=your IP

kubeadm init --kubernetes-version=v1.23.0 --image-repository=registry.aliyuncs.com/google_containers --apiserver-advertise-address=192.168.56.104

9.2: 上述会生成如下日志说明成功

主节点生成:

To start using your cluster, you need to run the following as a regular user:

  mkdir -p $HOME/.kube
  sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
  sudo chown $(id -u):$(id -g) $HOME/.kube/config

Alternatively, if you are the root user, you can run:

  export KUBECONFIG=/etc/kubernetes/admin.conf

You should now deploy a pod network to the cluster.
Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:
  https://kubernetes.io/docs/concepts/cluster-administration/addons/

Then you can join any number of worker nodes by running the following on each as root:

kubeadm join 192.168.56.104:6443 --token zxnok7.i6i4b4id4y5q1nsa \
        --discovery-token-ca-cert-hash sha256:7760cfca134b2df5ef7757e7a6756a13e66415665dd48ae94a20d98b812c277d

9.4: 根据日志提示 执行 对应指令 mkdir 等

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown ( i d − u ) : (id -u): (idu):(id -g) $HOME/.kube/config
export KUBECONFIG=/etc/kubernetes/admin.conf

9.5 配置calico网络

wget --no-check-certificate https://projectcalico.docs.tigera.io/archive/v3.25/manifests/calico.yaml

[root@master kubernetes]# wget --no-check-certificate https://projectcalico.docs.tigera.io/archive/v3.25/manifests/calico.yaml
--2023-05-03 02:23:02--  https://projectcalico.docs.tigera.io/archive/v3.25/manifests/calico.yaml
正在解析主机 projectcalico.docs.tigera.io (projectcalico.docs.tigera.io)... 13.228.199.255, 18.139.194.139, 2406:da18:880:3800::c8, ...
正在连接 projectcalico.docs.tigera.io (projectcalico.docs.tigera.io)|13.228.199.255|:443... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:238089 (233K) [text/yaml]
正在保存至: “calico.yaml”

100%[=====================================================================================>] 238,089      392KB/s 用时 0.6s

2023-05-03 02:23:03 (392 KB/s) - 已保存 “calico.yaml” [238089/238089])


9.6 修改calico.yaml

执行ip addr 查看固定网卡名

在这里插入图片描述

[root@master kubernetes]# vi calico.yaml

当前 为enp0s3

# CLUSTER_TYPE 下方添加信息
- name: CLUSTER_TYPE
  value: "k8s,bgp"
  # 下方为新增内容
- name: IP_AUTODETECTION_METHOD
  value: "interface=网卡名称(enp0s3)"

在这里插入图片描述

9.7:执行calico.yaml生成pod

9.7.1:kubectl apply -f calico.yaml

[root@10 ~]# kubectl apply -f calico.yaml
poddisruptionbudget.policy/calico-kube-controllers configured
serviceaccount/calico-kube-controllers unchanged
serviceaccount/calico-node unchanged

9.7.2:查看pod信息:

[root@10 ~]# kubectl get pod -A
NAMESPACE     NAME                                       READY   STATUS    RESTARTS   AGE
kube-system   calico-kube-controllers-64cc74d646-ftk5q   1/1     Running   0          2m1s
kube-system   calico-node-qhspk                          1/1     Running   0          2m1s
kube-system   coredns-6d8c4cb4d-gdfr6                    1/1     Running   0          13m
kube-system   coredns-6d8c4cb4d-wr97f                    1/1     Running   0          13m
kube-system   etcd-adam-init-master                      1/1     Running   1          14m
kube-system   kube-apiserver-adam-init-master            1/1     Running   1          14m
kube-system   kube-controller-manager-adam-init-master   1/1     Running   1          14m
kube-system   kube-proxy-2xsdb                           1/1     Running   0          13m
kube-system   kube-scheduler-adam-init-master            1/1     Running   1          14m

9.7.3:查看node信息:

[root@10 ~]# kubectl get nodes
NAME               STATUS   ROLES                  AGE   VERSION
adam-init-master   Ready    control-plane,master   14m   v1.23.0

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/535624.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode 909 208

题目 909. 蛇梯棋 思路 完全不会&#xff01;呜呜呜&#xff0c;看了别人的题解。二维数组之字形遍历放在一维数组里面&#xff0c;然后借助队列对数组进行bfs。 代码 class Solution {int n;int[] nums;public int snakesAndLadders(int[][] board) {// 暴力遍历n board.le…

深入理解图形处理器(GPU):加速人工智能和大数据计算的引擎

文章目录 1. 什么是GPU&#xff1f;2. GPU的工作原理3. GPU的应用领域4. GPU与CPU的比较参考与推荐 前言&#xff1a; 图形处理器&#xff08;GPU&#xff09;不再仅仅是用于图形渲染的硬件设备。如今&#xff0c;GPU已经成为加速人工智能、大数据计算和科学研究的关键引擎。本…

MINI2440 开发板 给他干出来了

环境是ubuntu14.04。不要问我为什么是这个版本&#xff0c;因为之前的ubuntu12.04 环境干不出来&#xff0c;你去试试就知道了&#xff01;各种资源包下载不下来。 输入启动参数&#xff1a; 进入MINI2440&#xff1a;别说心里一万个开心&#xff0c;启动完成&#xff0c;输入p…

Linux开发--进程

经典五问&#xff1a; 1.什么是程序&#xff1f;什么是进程&#xff1f; 从是否运行进行判断: gcc xxx -o pro&#xff0c;磁盘中生成的pro文件&#xff0c;就是程序 进程是程序一次运行活动 程序是静态的概念&#xff0c;进程是动态的概念。 2.如何查看系统中的进程: 在l…

LeetCode-热题100:64. 最小路径和

题目描述 给定一个包含非负整数的 m x n 网格 grid &#xff0c;请找出一条从左上角到右下角的路径&#xff0c;使得路径上的数字总和为最小。 **说明&#xff1a;**每次只能向下或者向右移动一步。 示例 1&#xff1a; 输入&#xff1a; grid [[1,3,1],[1,5,1],[4,2,1]]…

09 - 镜像管理之:部署单点harbor

本次准备了3台机器&#xff1a;harbor-01、harbor-02、harbor-db&#xff0c;用于测试 单点模式、高可用模式 部署 harbor。 ip主机名规格操作系统说明192.168.217.136harbor-012c4gCentos7.9harbor 服务器&#xff0c;测试单点harbor192.168.217.135harbor-022c4gCentos7.9ha…

初始C++之缺省参数 函数重载 引用

初始C之缺省参数 函数重载 引用& 文章目录 初始C之缺省参数 函数重载 引用&一、缺省参数1.1 缺省参数的定义1.2 缺省参数的分类1.3 注意事项 二、 函数重载2.1 函数重载的定义2.2 参数个数不同2.3 参数类型不同2.4 类型顺序不同2.5 为什么C语言不支持函数重载 三、引用…

Python中的错误处理 - 使用try、except、else和finally进行解释,并附带代码示例

最近&#xff0c;我的经理委派我创建一个自动报告。我设计的报告非常简单。它包括一些来自数据库的数字和一些基本的数学运算。我很兴奋最终可以向公司展示我的惊人的Python技能。 我完成并交付了产品。一切都很顺利。至少&#xff0c;直到大约两周后。我的报告由于除以零错误…

编程新手必看,python中条件控制语句学习(13)

介绍&#xff1a; Python3中的条件控制主要通过if、elif和else关键字来实现&#xff0c;它们用于根据条件执行特定的代码块。 if语句&#xff1a;这是最基本的条件控制结构。如果满足某个条件&#xff08;条件为True&#xff09;&#xff0c;则执行相应的代码块。在Python中&am…

蓝牙app设计(方案二) E4A (时钟 优缺点)

例程改的! 主界面 虽然上面有搜索功能,但是本人建议先自行配对在使用,这样更好用,把要使用的设备收藏一下更好找哦(这样就是橙色的了,只需要点对应蓝牙左边) 代码修改部分 原版是不停向下滚动显示,这样个人觉得不太好看,所以加了个时钟,到对应时钟周期清空(达到刷…

Java-Web过滤器

文章目录 1.基本介绍1.为什么需要过滤器&#xff1f;2.基本介绍3.过滤器的基本原理 2.快速入门1.文件目录2.环境配置创建maven项目&#xff0c;导入依赖 3.代码实现1.login.jsp2.LoginCheck.java3.ManagerFilter.java编写过滤规则4.配置web.xml告诉tomcat5.admin.jsp 3.Filter的…

【nodejs基础学习三-浏览器偏好设置】

系列文章目录 第一章 nodejs基础学习–注释、变量、运算符、字符串、函数&#xff08;一&#xff09; 第二章 nodejs基础学习–循环、对象字符、模块导入出&#xff08;二&#xff09; 第三章 nodejs基础学习三-浏览器设置 系列文章目录一、开发者模式二、web偏好设置 一、开发…

【病毒分析】DevicData勒索病毒分析

1.背景 1.1来源 近期&#xff0c;Solar团队收到某医疗单位的援助请求&#xff0c;该公司的计算机受到了某勒索病毒的侵害&#xff0c;所有的文件被加密并且添加了.DevicData-P-470b1abd后缀&#xff0c;我司人员现场取证进行排查并提取加密器,本文是对于加密器的分析。 2.恶…

MySQL高级详解

文章目录 约束概述分类主键约束概述特点定义及删除主键自增 唯一约束作用语法 非空约束作用语法 面试题&#xff1a;非空唯一约束与主键约束有什么区别默认值约束作用语法 总结 表关系及外键约束表关系概述分类一对多关系表设计外键字段设计原则 多对多关系表设定设计原则 一对…

Linux下网络编程基础知识--协议

网络基础 这一个课程的笔记 相关文章 协议 Socket编程 高并发服务器实现 线程池 协议 一组规则, 数据传输和数据的解释的规则。 比如说依次发送文件的文件名, 文件的大小, 以及实际的文件, 这样规定发送一个文件的顺序以及发送的每一个部分的格式等可以算是一种协议 型协议 …

探索ChatGPT-Plus:AI 助手全套开源解决方案

探索ChatGPT-Plus&#xff1a;AI 助手全套开源解决方案 ChatGPT-plus是一种新型的对话生成模型&#xff0c;它是在OpenAI的ChatGPT基础上进行了改进和优化的版本。ChatGPT-plus的出现引起了广泛关注&#xff0c;因为它在对话生成方面展现出了更加出色的表现和能力。在本文中&am…

【C++第三阶段】stackqueue容器

以下内容仅为当前认识&#xff0c;可能有不足之处&#xff0c;欢迎讨论&#xff01; 文章目录 stack容器queue容器 stack容器 是什么&#xff1f;功能是什么&#xff1f;常用接口是什么&#xff1f;局限性有哪些&#xff1f;优势又有哪些&#xff1f; 栈容器&#xff0c;先进…

智能驾驶“血拼”端到端,元戎启行准备好了吗?

智能驾驶从规则驱动转向数据驱动&#xff0c;正在引导行业进入新的竞争区间。 在之前的中国电动汽车百人会论坛(2024) 上&#xff0c;比亚迪董事长兼总裁王传福认为&#xff0c;新能源汽车渗透率在未来3个月将超过50%。自动驾驶公司元戎启行CEO周光指出&#xff0c;在上半场的…

Python实现BOA蝴蝶优化算法优化BP神经网络回归模型(BP神经网络回归算法)项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档视频讲解&#xff09;&#xff0c;如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 蝴蝶优化算法(butterfly optimization algorithm, BOA)是Arora 等人于2019年提出的一种元启发式智能算…

社交网络的未来图景:探索Facebook的发展趋势

随着科技的不断进步和社会的快速变迁&#xff0c;社交网络作为连接人与人之间的重要纽带&#xff0c;扮演着日益重要的角色。而在众多社交网络中&#xff0c;Facebook作为老牌巨头&#xff0c;一直在探索着新的发展路径&#xff0c;引领着社交网络的未来图景。本文将深入探索Fa…