k8s安装学习环境

news2024/11/17 13:44:09

目录

环境准备

配置hosts

关闭防火墙

关闭交换分区

调整swappiness参数

关闭setlinux

Ipv4转发

时钟同步

安装Docker

配置Yum源

安装

配置

启动

日志

安装k8s

配置Yum源

Master节点

安装

初始化

配置kubectl

部署CNI网络插件

Node节点

检查


环境准备

准备两台机器centos7.9

192.168.11.120 dt01 master 2c2g

192.168.11.121 dt02 node  1c1g

配置hosts

vi /etc/hosts

192.168.11.120 dt01

192.168.11.121 dt02

或执行命令

hostnamectl set-hostname <hostname>

指定ip和host,防止后续安装k8s无法找到唯一ip报错could not be reached

关闭防火墙

systemctl stop firewalld

systemctl disable firewalld

关闭交换分区

swapoff -a    #临时关闭

编辑文件,注释掉swap一行

vi /etc/fstab

/dev/mapper/centos_dt02-root /                       xfs     defaults        0 0

UUID=4ce225e3-cb11-4c0c-8ab5-70c6571a0d11 /boot                   xfs     defaults        0 0

#/dev/mapper/centos_dt02-swap swap                    swap    defaults        0 0

验证,swap显示都是0

free -h

调整swappiness参数

echo 0 > /proc/sys/vm/swappiness   # 临时生效

vi /etc/sysctl.conf #永久生效

vm.swappiness=0

sysctl -p  #立即生效

关闭setlinux

临时

setenforce 0

永久

vi /etc/selinux/config

SELINUX=disabled

Ipv4转发

临时

sysctl -w net.ipv4.ip_forward=1

echo 1 > /proc/sys/net/ipv4/ip_forward

永久生效

vi /etc/sysctl.conf

net.ipv4.ip_forward=1

sysctl -p

vi /etc/sysconfig/network

FORWARD_IPV4=YES

systemctl restart network

时钟同步

yum install ntpdate -y

ntpdate time.windows.com

安装Docker

Yum方式

配置Yum源

安装yum源管理工具

yum install yum-utils -y

添加docker阿里的yum源

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

安装

yum -y install docker-ce-18.06.1.ce-3.el7

配置

vi /etc/docker/daemon.json

{

  "registry-mirrors": ["http://hub-mirror.c.163.com"]

}

启动

systemctl daemon-reload #加载配置文件

systemctl status docker #检查dead

systemctl enable docker #开机自启

systemctl restart docker #启动docker

systemctl status docker #检查running

如果systemctl status docker时有

则vi /etc/sysctl.conf 添加

net.bridge.bridge-nf-call-ip6tables=1

net.bridge.bridge-nf-call-iptables=1

sysctl -p

systemctl restart docker

systemctl status docker

日志

journalctl -u docker

安装k8s

使用kubeadm

配置Yum源

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

https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg

EOF

Master节点

安装

yum install -y kubelet-1.18.0 kubeadm-1.18.0 kubectl-1.18.0

systemctl enable kubelet

初始化

执行集群初始化,红色部分按需修改

kubeadm init --apiserver-advertise-address=192.168.11.120 --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.18.0 --service-cidr=10.96.0.0/12 --pod-network-cidr=10.244.0.0/16

记下最后的输出部分

kubeadm join 192.168.11.120:6443 --token ye402k.feh90nl0r4exomu3 \

--discovery-token-ca-cert-hash sha256:94d891942ae40f97e14314c431527c640ba44f52d4db52a5f2d3a59c53e7c9ae

默认token有效期为24小时,当过期之后,该token就不可用了。这时就需要重新创建token,操作如下:

kubeadm token create --print-join-command

配置kubectl

mkdir -p $HOME/.kube

sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config

sudo chown $(id -u):$(id -g) $HOME/.kube/config

部署CNI网络插件

提供的yml文件见顶部关联资源或

链接: https://pan.baidu.com/s/1W97_qMC4-9PGozmHiVdGMg?pwd=lijw

因githup访问不稳定性,直接上传文件kube-flannel.yaml

kubectl apply -f kube-flannel.yaml

注:直接安装插件

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube

flannel.yml

[root@dt01 yml]# kubectl get node

NAME   STATUS   ROLES    AGE   VERSION

dt01   Ready    master   91m   v1.18.0

Node节点

yum install -y kubelet-1.18.0 kubeadm-1.18.0

systemctl enable kubelet

在node节点上执行master节点标记的输出部分

kubeadm join 192.168.11.120:6443 --token ye402k.feh90nl0r4exomu3 \

--discovery-token-ca-cert-hash sha256:94d891942ae40f97e14314c431527c640ba44f52d4db52a5f2d3a59c53e7c9ae

如果卡住并报错

error execution phase preflight: couldn't validate the identity of the API Server: could not find a JWS signature in the cluster-info ConfigMap for token ID "e1n4kn"

To see the stack trace of this error execute with --v=5 or higher

检查token是否过期或防火墙是否关闭

检查

[root@dt01 yml]# kubectl get nodes

NAME   STATUS   ROLES    AGE    VERSION

dt01   Ready    master   145m   v1.18.0

dt02   Ready    <none>   31m    v1.18.0

如果节点不是Ready状态则需要耐心等待10分钟左右

创建一个pod

kubectl create deployment nginx --image=nginx

kubectl expose deployment nginx --port=80 --type=NodePort

kubectl get pod,svc -o wide

http://NodeIP:NodePort

NodeIP 可以是集群中任一个节点IP

可以使用命令修改nodePort端口

kubectl edit service nginx

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Leetcode1038. 从二叉搜索树到更大和树(每日一题)

目录 ⚽题目&#xff1a; &#x1f3d0;题目分析&#xff1a; &#x1f3c0;题目解答&#xff1a; &#x1f94e;代码如下&#xff1a; ⚽题目&#xff1a; 给定一个二叉搜索树 root (BST)&#xff0c;请将它的每个节点的值替换成树中大于或者等于该节点值的所有节点值…

五、分支和循环

目录 1. if 语句 1.1 if 1.2 else 1.3 分支中包含多条语句 1.4 嵌套 if 1.5 悬空 else 问题 2. 关系操作符 3. 条件操作符 4. 逻辑操作符&#xff1a; &&&#xff0c;|| &#xff0c;&#xff01; 4.1 逻辑取反运算符 &#xff01; 4.2 与运算符 &&…

家政服务预约小程序系统的开发;

家政服务预约小程序系统的开发&#xff0c;既是对传统加盟服务模式的创新&#xff0c;也是家政商家企业营销推广服务的升级。它推动整个家政服务行业实现线上线下深度融合&#xff0c;提升用户消费体验&#xff0c;实现了雇主、服务提供者、家政企业商家三者之间的无缝衔接&…

新媒体营销教学模拟实训平台解决方案

一、背景与目标 随着新媒体的快速发展&#xff0c;营销人才需求旺盛&#xff0c;而具备新媒体营销能力的人才供给却相对不足。为了解决这一矛盾&#xff0c;本方案旨在构建一个新媒体营销教学模拟实训平台&#xff0c;帮助学生掌握新媒体营销的实际操作技能&#xff0c;提高就…

JSP项目中集成mybatis查询数据库表 将数据库数据渲染到jsp界面中

首先 我们需要两个JAR包 这里 我们在项目 pom.xml 文件dependencies标签下加入代码如下 导入mybatis与mysql-connector-java <dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.7</version&g…

Python3 GUI 自制音乐播放器 图片浏览 图片轮播 PyQt5(附下载地址)

目录 Part1&#xff1a; 介绍 Part2: create window Part2: create window Adv Part4: Music Play Part5&#xff1a; 图片加载&#xff1a; Part1&#xff1a; 介绍 在这篇文章中&#xff0c;我们将学习如何使用PyQt 库创建一个基本的窗口应用程序&#xff0c;并进行一些…

FCRP第二题

【题目要求】 数据库中有一张地区数据统计表&#xff0c;但是并不规则 &#xff0c;记录类似于&#xff0c;225100:02:3:20160725是一串代码&#xff0c;以&#xff1a;分割&#xff0c;第1位为地区代码&#xff0c;第2位为分类代码&#xff0c;第3位为数量&#xff0c;第4位为…

vivado分析-在 Versal 器件中执行 NoC 服务质量分析

AMD Vivado ™ 中的服务质量 (QoS) 用于将片上网络 (NoC) 编译器生成的当前 NoC 解决方案估算所得 QoS 与 AXI NoCIP 和 / 或 AXI4 ‑ Stream NoC IP 中指定的 QoS 要求进行对比。一旦 NoC 解决方案过时 &#xff0c; 就需要调用 NoC 编译器并生成新的 NoC 解决方案以…

Vue3使用vue-baidu-map-3x百度地图

安装vue-baidu-map-3x&#xff1a; // vue3 $ npm install vue-baidu-map-3x --save// vue2 $ npm install vue2-baidu-map --save 全局注册/局部注册&#xff1a; import { createApp } from vue import App from ./App.vue import BaiduMap from vue-baidu-map-3xconst app …

教育领域UPS监控技巧,这个也太厉害了!

在当今数字化时代&#xff0c;企业对信息技术的依赖程度不断加深&#xff0c;而电力作为支撑一切运行的基础&#xff0c;显得尤为重要。 随着电力网络的不断演变和企业规模的扩大&#xff0c;UPS监控不仅仅是对电力设备的监测&#xff0c;更是一项战略性的管理工具&#xff0c;…

学习率设置(写给自己看)

现往你的.py文件上打上以下代码&#xff1a; import torch import numpy as np from torch.optim import SGD from torch.optim import lr_scheduler from torch.nn.parameter import Parametermodel [Parameter(torch.randn(2, 2, requires_gradTrue))] optimizer SGD(mode…

Redis 分布式锁测试

一、前提依赖&#xff08;除去SpringBoot项目基本依赖外&#xff09;&#xff1a; <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId> </dependency><!-- 配置使用redis启动…

进入软件的世界

选择计算机 上高中的时候&#xff0c;因为沉迷于网络游戏&#xff0c;于是对计算机产生了浓厚的兴趣&#xff0c;但是那个时候对于计算机的了解还是非常肤浅的。上大学的时候&#xff0c;也就义无反顾的选择了计算机专业&#xff0c;其实并不是一个纯粹的计算机专业&#xff0…

代码随想录算法训练营第五十五天【动态规划part15】 | 392.判断子序列、115.不同的子序列

392.判断子序列 题目链接 力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 求解思路 也可以用双指针来做。 动规五部曲 1.确定dp数组及其下标含义 以下标i-1为结尾的字符串s&#xff0c;和以下标j-1为结尾的字符串t&#xff0c;相同子序列的长度…

Mybatis中的设计模式

Mybatis中的设计模式 Mybatis中使用了大量的设计模式。 以下列举一些看源码时&#xff0c;觉得还不错的用法&#xff1a; 创建型模式 工厂方法模式 DataSourceFactory 通过不同的子类工厂&#xff0c;实例化不同的DataSource TransactionFactory 通过不同的工厂&#xff…

【雷电模拟器桥接问题解决方法】

1.ROOT权限开启 2.开启网络桥接模式&#xff0c;选择静态IP设置&#xff0c;点击安装桥接网卡&#xff0c;填写IP地址&#xff08;注意&#xff1a;IP地址要与host主机在同一IP段内&#xff09; 3.重启后 adb shell就能进入到模拟器控制台中了&#xff0c;如果出现以下内容&…

记一次若依二开的简单流程

记一次若依二开的简单流程 前言: 搞Java后端的应该都知道若依框架&#xff0c;是一个十分强大且功能齐全的开源的快速开发平台&#xff0c;且毫无保留给个人及企业免费使用。很多中小型公司会直接在该系统上进行二次开发使用。本文记录一次使用若依二开零编码的简单实现&#…

JFrog----软件的SBOM分析简介

文章目录 什么是SBOM&#xff1f;SBOM分析的重要性SBOM分析的过程结语 什么是SBOM&#xff1f; SBOM&#xff0c;全称是“软件物料清单”&#xff0c;它像是一个详尽的清单&#xff0c;列出了构成特定软件的所有组件&#xff0c;包括库、模块、包等。这就像是制造业中的物料清…

iOS ------ UICollectionView

一&#xff0c;UICollectionView的简介 UICollectionView是iOS6之后引入的一个新的UI控件&#xff0c;它和UITableView有着诸多的相似之处&#xff0c;其中许多代理方法都十分类似。简单来说&#xff0c;UICollectionView是比UITbleView更加强大的一个UI控件&#xff0c;有如下…

C语言中如何取一串比特中的特定位的比特

#include <iostream> #include <bitset> using namespace std; /* 向右的移位操作相当于丢掉最后的几位&#xff0c;然后剩下的位数进行“与”运算即可。 */ int main() {int a 0x2FB7; //0x2FB70010 1111 1011 0111char end3 (a >> 4) & 0x07; //取a…