kubernetes进阶 (一) 环境搭建

news2024/11/15 22:40:35

我是基于一台centos7.6的腾讯云主机进行操作的,配置为4C8G,之前的文档自己试着搭建发现有问题了,这里重新整理下笔记,集群版本选择1.22.2(一年前搭的)用的还不错

清理环境

之前我的环境可能装过docker或者什么东西,先清理下

yum -y remove docker-ce contaienrd

一、环境初始化

systemctl stop firewalld
systemctl disable firewalld
sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
setenforce 0
swapoff -a
sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab



#添加内核参数
cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
br_netfilter
EOF
 
# 让系统生效
sysctl --system   

 拉取yum源

mkdir /etc/yum.repos.d/backup/ -p
mv /etc/yum.repos.d/* /etc/yum.repos.d/backup/   #*/

#拉取docker源
wget -O /etc/yum.repos.d/docker-ce.repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
 
#拉取阿里yum源
wget -O/etc/yum.repos.d/aliyun-yilai.repo http://mirrors.aliyun.com/repo/Centos-7.repo

 安装docker

yum -y install docker-ce

# 设置Docker镜像加速器
mkdir -p /etc/docker/
cat > /etc/docker/daemon.json <<EOF
{
"exec-opts":["native.cgroupdriver=systemd"],
"registry-mirrors": ["http://hub-mirror.c.163.com"]
}
EOF



systemctl start docker && systemctl enable docker

升级内核 (虚拟机操作下,云主机跳过)

rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm

yum --enablerepo=elrepo-kernel install -y kernel-lt 

#这里根据上面安装的版本不同设置启动的内核版本
grub2-set-default 'CentOS Linux (5.4.175-1.el7.elrepo.x86_64) 7 (Core)'
#重启

#查看首选内核版本
awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg

二、安装k8s

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=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

yum install -y kubelet-1.22.2 kubeadm-1.22.2 kubectl-1.22.2
systemctl enable kubelet

 须知

在初始化的时候,我们会去官方拉取镜像,但国内的网络一般是拉取不到的,我们这里手动准备一些镜像

#查看该版本所需镜像
kubeadm config images list --kubernetes-version=v1.22.2

 返回

k8s.gcr.io/kube-apiserver:v1.22.2
k8s.gcr.io/kube-controller-manager:v1.22.2
k8s.gcr.io/kube-scheduler:v1.22.2
k8s.gcr.io/kube-proxy:v1.22.2
k8s.gcr.io/pause:3.5
k8s.gcr.io/etcd:3.5.0-0
k8s.gcr.io/coredns/coredns:v1.8.4

 替换前缀为阿里云,并拉取

docker pull registry.aliyuncs.com/google_containers/kube-apiserver:v1.22.2
docker pull registry.aliyuncs.com/google_containers/kube-controller-manager:v1.22.2
docker pull registry.aliyuncs.com/google_containers/kube-scheduler:v1.22.2
docker pull registry.aliyuncs.com/google_containers/kube-proxy:v1.22.2
docker pull registry.aliyuncs.com/google_containers/pause:3.5
docker pull registry.aliyuncs.com/google_containers/etcd:3.5.0-0
docker pull registry.aliyuncs.com/google_containers/coredns:v1.8.4

 然后批量修改标签名称和删除镜像

docker images | grep registry.aliyuncs.com/google_containers | awk '{print "docker tag",$1":"$2,$1":"$2}' | sed -e 's#registry.aliyuncs.com/google_containers#k8s.gcr.io#2' | sh -x


docker images |grep registry.aliyuncs.com/google_containers |awk '{print "docker rmi ", $1":"$2}' |sh -x


docker images |grep registry.cn-hangzhou.aliyuncs.com/moziang |awk '{print "docker rmi ", $1":"$2}' |sh -x

 

三、初始化集群

#修改你的ip地址,其他的不动
kubeadm init --apiserver-advertise-address=10.0.16.15 --image-repository registry.aliyuncs.com/google_containers  --kubernetes-version v1.22.2 --service-cidr=10.96.0.0/12 --pod-network-cidr=10.244.0.0/16

添加kubectl认证配置

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

这个也可能不加,你添加一条环境变量声明下kubeconfig文件位置,变量名$KUBECONFIG

#master去污点   集群模式忽略,我是单节点
kubectl taint nodes --all node-role.kubernetes.io/master-

 四、安装calico插件

官方文档

https://docs.projectcalico.org/getting-started/kubernetes/quickstart

安装

#https://ghproxy.com/ 是加速器地址
#https://raw.githubusercontent.com/projectcalico/calico/v3.26.1/manifests/tigera-operator.yaml
#这个是github文件下载地址

wget https://ghproxy.com/https://raw.githubusercontent.com/projectcalico/calico/v3.26.1/manifests/tigera-operator.yaml

wget https://ghproxy.com/https://raw.githubusercontent.com/projectcalico/calico/v3.26.1/manifests/custom-resources.yaml

 vi custom-resources.yaml

#修改 为上面的--pod-network-cidr=10.244.0.0/16
cidr: 10.244.0.0/16

部署

kubectl create -f tigera-operator.yaml  
kubectl create -f custom-resources.yaml

测试

cat > test-dns.yaml <<EOF
apiVersion: v1
kind: Pod
metadata:
  name: busybox
  namespace: default
spec:
  containers:
  - name: busybox
    image: busybox:1.28.4
    command:
      - sleep
      - "3600"
    imagePullPolicy: IfNotPresent
  restartPolicy: Always
EOF

部署

kubectl apply -f test-dns.yaml

验证

#查看所有pod
kubectl get pod -A

#查看解析是否正常
kubectl exec -it busybox nslookup kubernetes

添加额外解析

vi /var/lib/kubelet/config.yaml

#添加
resolvConf: "/etc/resolv.conf"

重启服务

systemctl restart kubelet

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

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

相关文章

WIFI与BT的PCB布局布线注意事项

1、模块整体布局时&#xff0c;WIFI模组要尽量远离DDR、HDMI、USB、LCD电路以及喇叭等易干扰模块或连接座&#xff1b; 2、晶体电路布局需要优先考虑&#xff0c;布局时应与芯片在同一层并尽量靠近放置以避免打过孔&#xff0c;晶体走线尽可能的短&#xff0c;远离干扰源&…

【附安装包】EViews 12.0安装教程

---------------------------END--------------------------- 题外话 当下这个大数据时代不掌握一门编程语言怎么跟的上脚本呢&#xff1f;当下最火的编程语言Python前景一片光明&#xff01;如果你也想跟上时代提升自己那么请看一下. 感兴趣的小伙伴&#xff0c;赠送全套Pyt…

Vue框架--理解MVVM

我们知道&#xff0c;MVVM是Model-View-ViewModel的简写。它本质上就是MVC的改进版。我们看看MVVM的模型架构&#xff0c;如下所示: 架构理解与实例

Matlab论文插图绘制模板第111期—带线标记的图

本期分享的是带线标记注释的图。 先来看一下成品效果&#xff1a; 特别提示&#xff1a;本期内容『数据代码』已上传资源群中&#xff0c;加群的朋友请自行下载。有需要的朋友可以关注同名公号【阿昆的科研日常】&#xff0c;后台回复关键词【绘图桶】查看加入方式。 模板中最…

Codeforces Harbour.Space Scholarship Contest 2023-2024 (Div. 1 + Div. 2)

解题情况 3of 9 A B C 日期 9.1 目录 A. Increasing and Decreasing 题目分析&#xff1a; 代码&#xff1a; B. Swap and Reverse 题目分析&#xff1a; 代码&#xff1a; C. Divisor Chain A. Increasing and Decreasing 题目分析&#xff1a; x->y递增&#xf…

keepalived 主备都存在vip, keepalived主备跨网段配置;keepalived主备服务器不在同一个网段怎么配置

keepalived 主备都有vip问题&#xff1b;主备服务器不在同一个网段怎么配置 主机&#xff1a;128.192.10.10 备机&#xff1a;128.192.11.11 备机&#xff1a;128.192.22.22 # keepalived的配置文件增加如下配置即可实现 # 主机&#xff1a;128.192.10.10 vrrp_instance VI_1 {…

【Latex】使用技能站:(三)使用 Vscode 配置 LaTeX

使用 Vscode 配置 LaTeX 引言1 安装texlive2 安装vscode2.1 插件安装2.2 配置 3 安装SumatraPdf3.1 vscode配置3.2 配置反向搜索 引言 安装texlive 安装vscode 安装SumatraPdf 1 安装texlive 在线LaTeX编辑器&#xff1a;https://www.overleaf.com TeX Live下载&#xff1a;h…

layui数据表格实现表格中嵌套表格,并且可以折叠展开

效果&#xff1a; 思路&#xff1a; 1、最外层的表格先渲染&#xff0c;在done回调中向每个tr后面插入一个用来嵌套子级表格的tr。 tr的class和table的id需要用索引 i 关联 //向每一行tr后面追加显示子table的trlet trEles $(".layui-table-view[lay-idlist] tbody tr&…

openGauss学习笔记-53 openGauss 高级特性-Ustore

文章目录 openGauss学习笔记-53 openGauss 高级特性-Ustore53.1 设计原理53.2 核心优势53.3 使用指导 openGauss学习笔记-53 openGauss 高级特性-Ustore Ustore 存储引擎&#xff0c;又名 In-place Update 存储引擎&#xff08;原地更新&#xff09;&#xff0c;是 openGauss …

Vite打包性能优化及填坑

最近在使用 Vite4.0 构建一个中型前端项目的过程中&#xff0c;遇到了一些坑&#xff0c;也做了一些项目在构建生产环境时的优化&#xff0c;在这里做一个记录&#xff0c;以便后期查阅。(完整配置在后面) 上面是dist文件夹的截图&#xff0c;里面的内容已经有30mb了&#xff…

开学季ipad手写笔什么牌子好?第三方电容笔推荐

自从ipad之类的平板电脑上出现了电容笔&#xff0c;电容笔就成功的取代了我们的手指&#xff0c;大大加快了我们的写作速度。不过&#xff0c;由于苹果pencil自带的先进芯片&#xff0c;导致其售价一直很高&#xff0c;给很多人&#xff0c;特别是学生&#xff0c;造成了很大的…

Python(Web时代)—— Django操作现有数据库表

Mysql操作 前言 在实际开发过程中&#xff0c;我们经常会遇到数据库表已经建立好了&#xff0c;现在只需要开发项目功能&#xff0c;操作已有数据库表的情况。 Django为我们提供了inspecdb的方法。他的作用即是对已经存在的数据库表来反向映射结构到models.py中. 操作 第一…

前端监听SDK(上报埋点数据)

1、使用方式 <head><script>window.pineapple || (pineapple {});pineapple.param {"src": "http://127.0.0.1:3001/pa.gif","token": "dsadasd2323dsad23dsada",};</script><script src"js/pineapple.j…

sql各种注入案例

目录 1.报错注入七大常用函数 1)ST_LatFromGeoHash (mysql>5.7.x) 2)ST_LongFromGeoHash &#xff08;mysql>5.7.x&#xff09; 3)GTID (MySQL > 5.6.X - 显错<200) 3.1 GTID 3.2 函数详解 3.3 注入过程( payload ) 4)ST_Pointfromgeohash (mysql>5.…

如何截取视频中的一段视频?分享几种视频分割方法

当处理长视频时&#xff0c;视频分割可以使您更加高效。如果您只需要处理其中的一部分&#xff0c;而不是整个视频&#xff0c;那么分割视频可以使您更容易找到需要处理的部分。而且&#xff0c;分割视频还可以使您更容易在不同的项目之间重复使用视频片段。教大家几种简单的视…

前端面试中Vue的有经典面试题一

1. 谈谈你对MVVM开发模式的理解 MVVM分为Model、View、ViewModel三者。 Model&#xff1a;代表数据模型&#xff0c;数据和业务逻辑都在Model层中定义&#xff1b; View&#xff1a;代表UI视图&#xff0c;负责数据的展示&#xff1b; ViewModel&#xff1a;负责监听Model中…

Argument of type {****} is not assignable to parameter of type ‘never‘.ts(2345)

在日常开发中配置eslintTypescript之后&#xff0c;会出先各种校验报错提示&#xff0c;今天在开发过程中遇到ts2345报错&#xff0c;出错场景发生在数组push一个Object对象报错。 const obj { title: , children: [] }; const currentObj obj.children; 其实就是obj.chilr…

C语言每日一练---Day(14)

本专栏为c语言练习专栏&#xff0c;适合刚刚学完c语言的初学者。本专栏每天会不定时更新&#xff0c;通过每天练习&#xff0c;进一步对c语言的重难点知识进行更深入的学习。 今日练习题关键字&#xff1a;统计每个月兔子的总数 数列的和 &#x1f493;博主csdn个人主页&#x…

链表模拟栈

定义节点 class Node {var num: Int _var next: Node _def this(num: Int) {thisthis.num num}override def toString: String s"num[${this.num}]" }定义方法 class LinkStack {private var head new Node(0)def getHead: Node head//判断是否为空def isEmp…