首页 > 其他分享 >kubeadm部署k8s

kubeadm部署k8s

时间:2023-08-21 15:55:20浏览次数:43  
标签:部署 etc master conf -- kubeadm k8s root docker

1、配置hosts

cat >> /etc/hosts << EOF
192.168.140.129 master
192.168.140.130 node1
192.168.140.131 node2
185.199.109.133 raw.githubusercontent.com
EOF

2、关闭交换分区(swap)
[root@master ~]# swapoff -a     # 临时关闭
[root@master ~]# sed -ri 's/.*swap.*/#&/' /etc/fstab      # 永久关闭,需要重启才生效

3、修改内核参数
# 加载 br_netfilter 模块
[root@master ~]# modprobe br_netfilter
# 验证模块是否加载成功:
[root@master ~]# lsmod |grep br_netfilter
# 修改内核参数

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

# 使修改的内核参数生效
[root@master ~]# sysctl -p /etc/sysctl.d/k8s.conf

4、安装iptables(可选)
[root@master ~]# yum install iptables-services -y
#禁用 iptables
[root@master ~]# service iptables stop && systemctl disable iptables
#清空防火墙规则
[root@master ~]# iptables -F

5、安装和配置docker
[root@master ~]# wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
[root@master ~]# yum -y install docker-ce-20.10.9-3.el7
[root@master ~]# systemctl enable --now docker && systemctl status docker
# 指定镜像仓库,并修改docker文件驱动为systemd,默认为cgroupfs,kubelet默认使用systemd,两者必须一致才可以

cat > /etc/docker/daemon.json << EOF
{
    "registry-mirrors": ["https://b9pmyelo.mirror.aliyuncs.com","https://rsbud4vc.mirror.aliyuncs.com","https://registry.docker-cn.com","https://docker.mirrors.ustc.edu.cn","https://dockerhub.azk8s.cn","http://hub-mirror.c.163.com","http://qtid6917.mirror.aliyuncs.com", "https://rncxm540.mirror.aliyuncs.com"],
    "exec-opts": ["native.cgroupdriver=systemd"]
}
EOF

[root@master ~]# systemctl daemon-reload && systemctl restart docker && systemctl status docker

6、配置k8s 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

7、安装k8s组件(master,node都要装)
[root@master ~]# yum install -y kubelet-1.23.3 kubeadm-1.23.3 kubectl-1.23.3
启动kubelet服务
[root@master ~]# systemctl enable --now kubelet
以上步骤所有节点都需要执行

8、在master上执行初始化

kubeadm init \
--apiserver-advertise-address=[master_IP] \
--image-repository registry.aliyuncs.com/google_containers \
--kubernetes-version v1.23.3 \
--service-cidr=10.96.0.0/12 \
--pod-network-cidr=10.244.0.0/16

9、node节点执行kubectl get nodes报错:
[root@node ~]# kubectl get nodes
The connection to the server localhost:8080 was refused - did you specify the right host or port?
原因:
kubectl命令需要使用kubernetes-admin来运行,需要admin.conf文件(conf文件是通过“ kubeadmin init”命令在主节点/etc/kubernetes 中创建),但是从节点没有conf文件,也没有设置 KUBECONFIG =/root/admin.conf环境变量,所以需要复制conf文件到从节点,并设置环境变量就OK了
解决方法:
[root@node ~]# scp root@master:/etc/kubernetes/admin.conf /etc/kubernetes/
[root@node ~]# mkdir -p $HOME/.kube
[root@node ~]# cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
[root@node ~]# chown $(id -u):$(id -g) $HOME/.kube/config
[root@node ~]# export KUBECONFIG=/etc/kubernetes/admin.conf

10、配置NetworkManager

[root@master ~]# cat > /etc/NetworkManager/conf.d/calico.conf <<EOF
[keyfile]
unmanaged-devices=interface-name:cali*;interface-name:tunl*;interface-name:vxlan.calico;interface-name:wireguard.cali
EOF

11、安装calico组件
[root@master ~]# wget --no-check-certificate https://docs.projectcalico.org/manifests/calico.yaml
[root@master ~]# sed -i 's#docker.io/##g' calico.yaml
[root@master ~]# kubectl apply -f calico.yaml

12、calico官方安装方法
# 安装tigera-operator
kubectl create -f https://raw.githubusercontent.com/projectcalico/calico/v3.26.1/manifests/tigera-operator.yaml
# 安装calico
kubectl create -f https://raw.githubusercontent.com/projectcalico/calico/v3.26.1/manifests/custom-resources.yaml

13、安装rancher dashboard
docker run --privileged -d --restart=unless-stopped -p 80:80 -p 443:443 rancher/rancher

查看join命令在master上执行
kubeadm token create --print-join-command

参考链接:
      https://zhuanlan.zhihu.com/p/625125823
      https://zhuanlan.zhihu.com/p/639042196
      https://www.cnblogs.com/shuiyao3/p/17290271.html
      https://www.cnblogs.com/fengdejiyixx/p/16576021.html
      https://blog.csdn.net/ma_jiang/article/details/124962352       # K8S Calico网络插件
      https://docs.tigera.io/calico/latest/getting-started/kubernetes/quickstart       # 官网calico安装

标签:部署,etc,master,conf,--,kubeadm,k8s,root,docker
From: https://www.cnblogs.com/xwupiaomiao/p/17646237.html

相关文章

  • 如何使用Docker部署 Go WEB应用
    如何使用Docker部署GoWEB应用本文介绍了如何使用Docker以及Docker-compose部署我们的GoWeb程序。为什么需要使用Docker?使用docker的主要目标是容器化。也就是为你的应用程序提供一致的环境,而不依赖于它运行的主机。想象一下你是否也会遇到下面这个场景,你在本地开发了你的......
  • 使用Azure容器应用/实例部署Azure OpenAI Proxy
    现在存在许多开源的OpenAI解决方案,为了尽量避免修改源代码,直接接入AzureOpenAI。可以考虑使用AzureOpenAI代理方案,它可以实现以OpenAI的API方式去管理Azure的OpenAI实例。几乎全部的这种方案,都会提示使用容器来部署。类似下面的命令执行。由于我本身没有容器相关的知识背景,这篇学......
  • 在springboot项目中部署vue打包的dist以及刷新遇到404的解决方法
    一、在springboot项目中部署dist新建一个springboot项目,并将dist复制到resources目录下面,同时在application.yml添加配置即可,操作结果如下图所示: 添加的配置代码如下:spring:web:resources:static-locations:"classpath:/dist"二、部署好之后刷新遇到404......
  • \\NSHA10320UAP.ubsglobal-prod.msad.ubs.net\data\部署包\组件全量0818\组件
    com.yss.ams.bbzx-202308031009-V2.0.0.10.39-20221115.jarcom.yss.ams.reportConfigSetting-20230714135143.jarcom.yss.ams.ReportViewer-202308031009-V2.0.0.10.39-20221115.jarcom.yss.ams.website-202308031009-V2.0.0.10.39-20221115.jarcom.yss.sofa.foundation.a......
  • 记录一下部署AWS EKS的坑
    1.创建集群后本地awsconfigure和awseksupdate-kubeconfig--region##--name##后kubectl提示需要登录没有权限,由于我的aws账号是根账号授权的sso账号,我就自己去IAM创建了一个拥有eks相关权限的账号,但是怎么都不行,后来干脆加大权限给这个账号administratorAccess权限,仍然无效,......
  • k8s重置master节点
    1.删除所有node节点2.清空原先设置,所有节点执行kubeadmreset3.获取默认配置文件kubeadmconfigprintinit-defaults>kubeadm-config.yaml修改初始化配置文件1)advertiseAddress:192.168.2.34#本机IP2)imageRepository:registry.aliyuncs.com/google_container......
  • java脚本模拟服务器内存溢出实战&服务器部署java项目
    一、背景:使用javaspringboot,实现linux服务器内存溢出情况。二、方案1、打包成war包,可以直接将war包部署在tomcat容器里2、springboot,打包成jar包。打的jar包,内置了tomcat,所以在服务器上,直接启jar包就行,没有必要放在tomcat容器里部署,在启动jar包时,可以配置线程池等。这......
  • 二、虚拟化架构与系统部署
    虚拟化公司:vmware、传统运行模式:硬件-->操作系统-->应用程序。虚拟机运行:1.寄居架构     2.原生架构windows系统禁用系统更新:win+r输入services.msc(服务管理窗口),停止Windowsupdate服务,并禁用,同时在恢复里改为无操作。    win+r输入gpe......
  • Streamlit项目:轻松搭建部署个人博客网站
    1前言大家好,欢迎来到我的博客!在这篇文章中,我将为大家详细介绍如何使用Streamlit这一强大的工具来搭建个人博客网站。如果你对数据可视化、交互式应用和博客撰写有兴趣,那么这篇文章一定会给你带来很大的帮助。1.1探索Streamlit:轻松创建交互式应用首先,让我们来认识一下Stre......
  • 部署 Statefulset 服务 Zookeeper
    部署Statefulset服务Zookeeper创建Zookeeper镜像下载Zookeeper二进制包mkdirzkcdzk/wgethttps://dlcdn.apache.org/zookeeper/zookeeper-3.8.1/apache-zookeeper-3.8.1-bin.tar.gz编写zk配置脚本cat<<EOF>zkGenConfig.sh#!/usr/bin/envbashZK_USER=${Z......