Kubernetes——一种较为简便的安装方式

etc/kubernetes/admin.conf $HOME/.kube/configcp: 无法获取“/etc/kubernetes/admin.conf“ 的文件状态(stat) cp: 无法获取"/etc/kubernetes/admin.conf" 的文件状态(stat): 没有那个文件或目录。主节点执行 kubeadm init 后会在/etc/kubernetes/admin.conf生成这个文件。apiserver-advertise-address 是自己宿主机的ip,改成自己的,其他参数可以不用修改。在master节点上执行。 阅读详情

搭建K8s集群[无需翻墙]

一种较为简单的方式

  • 环境要求
  • 由于条件有限,准备了两台虚拟主机Centos7.x(裸机)
    –在安装过程中能够体会到2台或者更多台机器的安装过程类似

软件版本

Docker       18.09.0
---
kubeadm-1.14.0-0 
kubelet-1.14.0-0 
kubectl-1.14.0-0
---
k8s.gcr.io/kube-apiserver:v1.14.0
k8s.gcr.io/kube-controller-manager:v1.14.0
k8s.gcr.io/kube-scheduler:v1.14.0
k8s.gcr.io/kube-proxy:v1.14.0
k8s.gcr.io/pause:3.1
k8s.gcr.io/etcd:3.3.10
k8s.gcr.io/coredns:1.3.1
---
calico:v3.9

更新yum源

所有机器都需要执行

yum -y update
yum install -y conntrack ipvsadm ipset jq sysstat curl iptables libseccomp

# 安装 wget 配置阿里镜像源
yum install -y wget
cd /etc/yum.repos.d/
mv CentOS-Base.repo CentOS-Base.repo.back
wget -O CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
yum clean all
yum makecache

安装Docker

01 安装必要的依赖
 sudo yum install -y yum-utils device-mapper-persistent-data lvm2
 
02 设置docker仓库
	sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
	
3.【设置要设置一下阿里云镜像加速器】这里通过登录阿里云账户获取主机的实际地址
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["这边替换成自己的实际地址"]
}
EOF
4.重新加载生效
sudo systemctl daemon-reload


5.安装docker
yum install -y docker-ce-18.09.0 docker-ce-cli-18.09.0 containerd.io

04 启动docker  并设置开机启动
sudo systemctl start docker && sudo systemctl enable docker

修改hosts文件

master节点

# 设置master的hostname,并且修改hosts文件
sudo hostnamectl set-hostname m

vi /etc/hosts

192.168.121.138 m
192.168.121.140 w1

worker节点

# 设置worker01/02的hostname,并且修改hosts文件
sudo hostnamectl set-hostname w1

vi /etc/hosts
192.168.121.138 m
192.168.121.140 w1

ping测试

m:   ping w1
w1:  ping m

系统基础前提配置

# (1)关闭防火墙
systemctl stop firewalld && systemctl disable firewalld

# (2)关闭selinux
setenforce 0
sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config

# (3)关闭swap
swapoff -a
sed -i '/swap/s/^\(.*\)$/#\1/g' /etc/fstab

# (4)配置iptables的ACCEPT规则
iptables -F && iptables -X && iptables -F -t nat && iptables -X -t nat && iptables -P FORWARD ACCEPT

# (5)设置系统参数
cat <<EOF >  /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF

sysctl --system

Installing kubeadm, kubelet and kubectl

配置yum源

cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
       http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

安装kubeadm&kubelet&kubectl

# 查看排序
yum list kubeadm --showduplicates | sort -r

cri-tools-1.13.0-0.x86_64 来自 kubernetes
kubeadm-1.14.0-0.x86_64 来自 kubernetes
kubectl-1.14.0-0.x86_64 来自 kubernetes
kubelet-1.14.0-0.x86_64 来自 kubernetes
kubernetes-cni-0.8.7-0.x86_64 来自 kubernetes
socat-1.7.3.2-2.el7.x86_64 来自 base


# 安装
yum install -y kubeadm-1.14.0-0 kubelet-1.14.0-0 kubectl-1.14.0-0 --skip-broken

# 这里安装报错,分别执行如下命令分别安装各个组件
yum install -y cri-tools-1.13.0-0.x86_64
yum install -y kubeadm-1.14.0-0.x86_64
yum install -y kubectl-1.14.0-0.x86_64
yum install -y kubelet-1.14.0-0.x86_64
yum install -y kubernetes-cni-0.8.7-0.x86_64
yum install -y socat-1.7.3.2-2.el7.x86_64

docker和k8s设置同一个cgroup

# docker  在 daemon.json文件中增加如下配置,注意使用 ,  隔开
vi /etc/docker/daemon.json
    "exec-opts": ["native.cgroupdriver=systemd"],
# 重启docker
systemctl restart docker
    
# kubelet,这边如果发现输出directory not exist,是没问题的
sed -i "s/cgroup-driver=systemd/cgroup-driver=cgroupfs/g" /etc/systemd/system/kubelet.service.d/10-kubeadm.conf
# 启动 kubernetes
systemctl enable kubelet && systemctl start kubelet

proxy/pause/scheduler等国内镜像

(1)查看kubeadm使用的镜像

kubeadm config images list

可以发现这里都是国外的镜像

k8s.gcr.io/kube-apiserver:v1.14.0
k8s.gcr.io/kube-controller-manager:v1.14.0
k8s.gcr.io/kube-scheduler:v1.14.0
k8s.gcr.io/kube-proxy:v1.14.0
k8s.gcr.io/pause:3.1
k8s.gcr.io/etcd:3.3.10
k8s.gcr.io/coredns:1.3.1

(2)解决国外镜像不能访问的问题

  • 创建kubeadm.sh脚本,用于拉取镜像/打tag/删除原有镜像
#!/bin/bash

set -e

KUBE_VERSION=v1.14.0
KUBE_PAUSE_VERSION=3.1
ETCD_VERSION=3.3.10
CORE_DNS_VERSION=1.3.1

GCR_URL=k8s.gcr.io
ALIYUN_URL=registry.cn-hangzhou.aliyuncs.com/google_containers

images=(kube-proxy:${KUBE_VERSION}
kube-scheduler:${KUBE_VERSION}
kube-controller-manager:${KUBE_VERSION}
kube-apiserver:${KUBE_VERSION}
pause:${KUBE_PAUSE_VERSION}
etcd:${ETCD_VERSION}
coredns:${CORE_DNS_VERSION})

for imageName in ${images[@]} ; do
  docker pull $ALIYUN_URL/$imageName
  docker tag  $ALIYUN_URL/$imageName $GCR_URL/$imageName
  docker rmi $ALIYUN_URL/$imageName
done
  • 运行脚本和查看镜像
# 运行脚本
sh ./kubeadm.sh

# 查看镜像
docker images
  • 将这些镜像推送到自己的阿里云仓库【可选,根据自己实际的情况】

kube init初始化master

初始化master节点(在主节点上执行)

kubeadm init --kubernetes-version=1.14.0 --apiserver-advertise-address=本地IP --pod-network-cidr=10.244.0.0/16

#  我在安装的过程中报错,版本不对应,重新下载对应版本
yum -y remove kubelet
yum -y install kubelet-1.14.0
yum -y install kubeadm-1.14.0
  • 安装成功日志如下,从节点使用末尾的 kubeadm join 命令加入到集群中
Your Kubernetes control-plane has initialized successfully!

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

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.121.138:6443 --token y4yylq.ev18cfq87ic0yqmz \
    --discovery-token-ca-cert-hash sha256:af4b166caaaacb231fc33027fdb7d6a6c2bb455dd3a478fe84e191ade0d5819b 
  • 验证主节点
---报错
The connection to the server localhost:8080 was refused - did you specify the right host or port?
    
[解决办法]
ll /etc/kubernetes/admin.conf
echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> ~/.bash_profile
source ~/.bash_profile
  • 再次验证,可以发现主节点部署成功
kubectl get pods -n kube-system  

健康检查

curl -k https://localhost:6443/healthz

输出  ok

部署calico网络插件

网络插件起到协助通信的作用

calico,同样在master节点上操作

# 在k8s中安装calico
kubectl apply -f https://docs.projectcalico.org/v3.9/manifests/calico.yaml

# 确认一下calico是否安装成功
kubectl get pods --all-namespaces -w

kube join–从节点假如

master节点的最后打印信息,在从节点中执行

kubeadm join 192.168.121.138:6443 --token y4yylq.ev18cfq87ic0yqmz \
    --discovery-token-ca-cert-hash sha256:af4b166caaaacb231fc33027fdb7d6a6c2bb455dd3a478fe84e191ade0d5819b 

检查集群信息

kubectl get nodes

NAME                   STATUS   ROLES    AGE     VERSION
master-kubeadm-k8s     Ready    master   19m     v1.14.0
worker01-kubeadm-k8s   Ready    <none>   3m6s    v1.14.0
worker02-kubeadm-k8s   Ready    <none>   2m41s   v1.14.0
在加入从节点的时候,报错  
not found /etc/kubernetes/admin.conf
然后拷贝主节点的admin.conf文件到从节点中
修改  .bash_profile 并重启

[K8S:安装异常]:Kubectl执行显示Config not found: /etc/kubernetes/admin.conf Config not found: /etc/kubernetes/admin.conf The connection to the server localhost:8080 was refused - did you specify the right host or port? 阅读详情

相关推荐

K8S(Kubernetes)简介和官方安装部署保姆级详细教程

Kubernetes简称为K8s,是用于自动部署、扩缩和管理容器化应用程序的开源系统,起源于Google 集群管理工具Borg。

BlogPan的专栏 4万+

k8s主节点更换证书后,从节点使用kubectl get pods命令报Config not found: /etc/kubernetes/admin.conf

k8s主节点更换证书后,从节点使用kubectl get pods命令报Config not found: /etc/kubernetes/admin.conf: 解决: 1.替换config文件 更换主节点的证书后,将主节点”.kube/config“文件复制到从节点相应位置 2.复制admin.conf文件 由于报错是找不到admin.conf文件,所以从主节点复制该文件到从节点 3.新增环境变量 echo "export KUBECONFIG=/etc/kubernetes/admin.conf"

star的博客 1万+

离线安装4:kubernetes(k8s)离线安装_kubernetes 离线安装

firewall-cmd --zone=public --add-port=10257/tcp --permanent # kube-controller-manager 自身。firewall-cmd --zone=trusted --add-source=192.168.80.60 --permanent # 信任集群中各个节点的IP。firewall-cmd --zone=public --add-port=10259/tcp --permanent # kube-scheduler 自身。

2401_87034001的博客 2758

部署Kubernetes遇到的问题与解决方法(初始化等)

Kubelet和control plane版本不对应: [ERROR KubeletVersion]: the kubelet version is higher than the control plane version. This is not a supported version skew and may lead to a malfunctional cluster. Kubelet version: "1.19.4" Control plane version: "1.18.6" 解决: #

clareeee的博客 4866

[Kubernetes]1.Kubernetes(K8S)介绍,基于腾讯云的K8S环境搭建集群以及裸机搭建K8S集群

Kubernetes(K8S)介绍,基于腾讯云的K8S环境搭建集群以及裸机搭建K8S集群

资深系统架构,深耕高并发研发与 AI 大模型工程化落地。技术栈以 Python (AI/NLP/RAG/Agent) 与 Golang (高并发架构) 为双核心,兼具 PHP 大型应用经验。专注算法落地、复杂系统设计及团队技术赋能 3218

【Kubernetes】K8S 安装 Dashboard以及问题整理

我网页加载了三分钟打开了,在master上直接创建(vim)了个recommended.yaml文件,然后把网页里的代码复制,粘贴进yaml文件里去,然后apply了,也成功了。版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本例 k8s 是 v1.23.6,对应的 dashboard 是 v2.5.0 这个版本,#创建访问账号,准备一个yaml文件;查看dashboard对应的服务svc。在 master 节点执行。若无法访问,可以浏览器访问。

youzlm的专栏 1043

使用easzup快速搭建K8S 集群

安装相关依赖, master/node 均需要执行 ubuntu系统 apt-get update && apt-get upgrade -y && apt-get dist-upgrade -y apt-get install python2.7 ln -s /usr/bin/python2.7 /usr/bin/python maste配置免密码登录 # 更安全 Ed25519 算法 ssh-keygen -t ed25519 -N '' -f ~/.ssh/

Joker_pom的博客 771

kubectl入门之配置

文档:https://kubernetes.io/docs/reference/generated/kubectl/%20-commands#config 1.简介 使用“kubectl config set current-context my-context”等子命令修改kubeconfig文件

蛐蛐的博客 656

利用 Helm 在各类 Kubernetes 中安装 Rainbond

利用 Helm 安装 Rainbond 好雨科技技术团队一直致力于让用户更方便的安装 Rainbond 这款产品。 不久前,我们刚刚推出了在一个容器中部署 Rainbond 的快速安装方式,这种方式覆盖了 Windows、MacOS、Linux 三大操作系统,也适用于 x86_64 、Arm64 两种主流架构。这种安装方式极大的简化了用户操作过程,提升了用户体验。然而这种安装方式受限于单机,仅适用于体验 Rainbond 功能或者个人开发环境,不适合在生产环境中部署。 好雨科技技术团队现已推出了基于 Hel

Mrex326428的博客 514

在 Ansys CFX Pre 中配置 RGP 表的分步指南

掌握在 Ansys CFX Pre 中设置 RGP 表的技巧,以优化仿真精度和效率。

jkh920184196的博客 1664

别再手动点按钮了!用C#给PowerMill做个自动化小助手(附完整源码)

本文详细介绍了如何使用C#进行PowerMill二次开发,打造自动化助手以提升CAM工程师的工作效率。通过实战案例和完整源码,展示了从环境配置到核心功能实现的完整流程,包括智能连接模块、项目批量处理器和刀路智能分析器等高级功能开发。

weixin_26899659的博客 347

Kubernetes K8S 基于 Docker 安装部署

在 Docker 容器技术被炒得热火朝天之时,大家发现,如果想要将 Docker 应用于具体的业务实现,是存在困难的——编排、管理和调度等各个方面,都不容易。于是,人们迫切需要一套管理系统,对 Docker 及容器进行更高级更灵活的管理。就在这个时候,K8S 出现了。K8S,就是基于容器的集群管理平台,它的全称,是 Kubernetes。 本次主题将会为你分享: K8S 起源 K8S 集群 为什...

GitChat 1万+

Excel数字变成了小数点+E+17?这些方法帮你解决!

本文介绍了三种解决Excel中数字变成小数点+E+17问题的方法:通过下拉箭头或右键菜单设置单元格格式为文本、使用TEXT函数将科学计数法转换为文本。这些方法各有优缺点,适用于不同的场景和需求。在实际应用中,我们可以根据具体情况选择合适的方法来解决问题。通过以上方法,我们可以轻松地从繁琐的小数点+E+17问题中解脱出来,更便捷地处理Excel中的数字。希望本文能够帮助到您,让您在使用Excel时更加得心应手!

nntxthml的博客 1246

K8s(Kubernetes)简介及安装部署

前言: k8s是Kubernetes的简称,因为K和S之间有8个字母,所以才会被称为k8s。 k8s最初是在Google公司内部使用了10多年的技术,它的前身是叫做Borg(博格),直到2015年才被Google公司捐赠为开源项目。 如果之前我们有接触过OpenStack,那么应该知道管理VM虚拟机资源可以用OpenStack。那么管理容器所对应的开源平台是什么呢?k8s就是其中之一,在k8s之...

lvjianzhaoa的博客 4万+

DeepSeek 框架和技术栈分析

DeepSeek 诞生于对更高效、更强大的深度学习计算和模型训练的追求。随着深度学习模型的规模不断增大,如大型语言模型(LLMs)和复杂的视觉模型,传统的框架在处理这些大规模模型时面临着性能瓶颈和资源利用效率低下的问题。DeepSeek 旨在解决这些问题,通过优化框架设计和采用先进的技术栈,实现更高效的模型训练和推理,同时降低计算成本。

yournameplease的专栏 1512

Jetson Orin Nano@Ubuntu22.04:IMX219 CSI摄像头配置全流程与避坑指南

本文详细介绍了在Jetson Orin Nano@Ubuntu22.04系统上配置IMX219 CSI摄像头的全流程,包括硬件安装、驱动配置、常见问题排查及性能优化。特别强调了排线方向、驱动模式选择等关键细节,并提供了实用的命令和解决方案,帮助开发者高效完成摄像头部署与调试。

prometheus9mon的博客 320

Kubernetes离线安装、Kubernetes二进制文件方式安装

Kubernetes在CentOS7下二进制文件方式安装、离线安装 一、下载Kubernetes(简称K8S)二进制文件 1)https://github.com/kubernetes/kubernetes/releases 从上边的网址中选择相应的版本,本文以1.9.1版本为例,从 CHANGELOG页面 下载二进制文件。 2)组件选择:选择Service Binaries中的kub

chen798213337的博客 2万+

活用QueryWrapper与@Select注解,构建MybatisPlus动态多表查询方案

本文深入探讨了如何结合MybatisPlus的QueryWrapper与@Select注解,构建高效灵活的动态多表关联查询方案。通过解析${ew.customSqlSegment}占位符机制,并设计通用的Service层封装,解决了复杂条件下多表查询的SQL拼接难题,显著提升了后台管理系统列表查询的开发效率与可维护性。

weixin_29291069的博客 271

CentOS8下超详细安装配置kubernetes(K8S)

一、环境准备 卸载podman,centos8默认安装了podman容器,它和docker可能有冲突需要卸载掉 sudo yum remove podman 关闭交换区 临时关闭 sudo swapoff -a 永久关闭 把/etc/fstab中的swap注释掉 sudo sed -i 's/.*swap.*/#&/' /etc/fstab 禁用selinux 临时关闭 setenforce 0 永久关闭 sudo sed -i "s/^SELINUX=enfo

witton的专栏 2万+

计算机等级考试(二级WPS)---真题14套

目录 真题14一、选择题二、WPS文字三、WPS表格四、WPS演示21.打开考生文件夹下的素材文档 “WPS.docx”(.docx 为文件扩展名),后续操作均基于此文件,否则不得分。小周正在整理一份关于极光的文档,请按要求帮助她完成文档的排版工作。1.将全文中的手动换行符全部替换为中文句号并回车,删除文中的空行和空格。2.将正文第 2 段(“在我國的古書…… 極光”)中的繁体字转换成简体字,并为其设置 “正文” 样式。3.对文档样式进行如下设置:4.为 “1.3 极光的形态” 一节中列出的五种极光形态特征

2401_82750246的博客 1176

黑猫带你学eMMC协议第33篇:eMMC CQE功能介绍——一种模仿UFS命令队列的发送机制

本文详细介绍了eMMC协议中的Command Queuing Engine (CQE)及其相关功能。CQE是eMMC 5.1版本引入的新特性,旨在通过硬件处理命令队列,简化软件代码的编写。文章首先介绍了CQE的基本概念,包括其与Host Controller Interface (HCI)的区别,以及CQE如何通过Task Descriptor List (TDL)管理任务。接着,文章详细描述了CQE如何发送命令和数据给eMMC,并解释了Task Descriptor和Transfer Descriptor

黑猫奥利奥的博客 981

Kubernetes(K8S)简介和安装部署详细教程

Kubernetes([kubə'netis])是一个由Google 开源的全新的分布式容器集群管理系统,由于从字母K到字母s中间有8个字母,所以简称K8s。

一位Java开发工程师 6617

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

k8s安装方式有几种?

Kubernetes(K8s)的安装方式多种多样,根据不同的安装环境和需求,可以选择不同的安装方式。

qq_43071699的博客 1566

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Linux安装Kubernetes(k8s)详细教程

Linux安装k8s、kubernetes安装过程、k8s安装流程、k8s在centos7上安装过程、Linux部署k8s、Linux部署kubernetes

RossiLover的博客 2427

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Kubernetes(k8s)安装以及搭建k8s-Dashboard详解

一、前期准备 1)前提条件 三台兼容的 Linux 主机。Kubernetes 项目为基于 Debian 和 Red Hat 的 - - Linux 发行版以及一些不提供包管理器的发行版提供通用的指令 每台机器 2 GB 或更多的 RAM (如果少于这个数字将会影响你应用的运行内存) 2 CPU 核或更多 集群中的所有机器的网络彼此均能相互连接(公网和内网都可以) 节点之中不可以有重复的主机名、MAC 地址或 product_uuid。 开启机器上的某些端口。 禁用交换分区。为了保证 kubelet 正常

匠人精神,持之以恒! 4683

k8s kubernetes

(Container Runtime Interface): 容器运行时接口,用来运行容器,k8s通过这个接口去兼容不同的容器,目前主要的CRI有CRI-O和containered,dockershim在k8s的1.24版本后从kubelet中剥离出来,主要由docker维护(不是亲儿子k8s也不会管了):containerd由docker开发,是docker用来操作runc的handler,与docker平级,docker生成的images等资源与containerd生成的images等资源不共享。

六月长安的博客 2735
上一篇: Kubernetes--初体验
下一篇: 2021-03-06 一周刷题心得记录
隙间光点
博客等级 码龄10年 29粉丝 80原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值