centos 安装k8s

2023-11-14

第一步:(每台机子都做)

关闭防火墙

systemctl stop firewalld 
systemctl disable firewalld

第二步: (每台机子都做)

永久关闭selinux

sed -i 's/enforcing/disabled/' /etc/selinux/config  

第三步:(每台机子都做) #关闭swap 分区

sed -ri 's/.*swap.*/#&/' /etc/fstab  

第四步: #设置主机名:(每台机子都做)

cat >> /etc/hosts <<EOF
192.168.235.134  k8s-master
192.168.235.131  k8s-node-1
192.168.235.132  k8s-node-2
192.168.235.133  k8s-node-3
EOF

第五步: #ssh 相互免密登录 (每台机子都做,copy id的命令本机不需要)

ssh-keygen -t rsa
ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.235.131
ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.235.132
ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.235.133
ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.235.134

第六步: 安装docker(可以封装成一个sh脚本直接执行)

wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
yum -y install docker-ce
systemctl enable docker && systemctl start docker
cat > /etc/docker/daemon.json << EOF
{
  "registry-mirrors": ["https://b9pmyelo.mirror.aliyuncs.com"]
}
EOF
systemctl daemon-reload
systemctl restart docker

查看是否安装好:systemctl status docker

第七步: 添加阿里云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

第八步:(封装成脚本)

#!/bin/bash
# 关闭防火墙
systemctl disable firewalld
systemctl stop firewalld

# 关闭selinux
# 临时禁用selinux
setenforce 0
# 永久关闭 修改/etc/sysconfig/selinux文件设置
sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config

# 禁用交换分区
swapoff -a
# 永久禁用,打开/etc/fstab注释掉swap那一行。
sed -i 's/.*swap.*/#&/' /etc/fstab

# 修改内核参数
cat <<EOF >  /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF

# 开启br_netfilter
modprobe br_netfilter
sysctl -p /etc/sysctl.d/k8s.conf

# 设置kubernetes.repo

tee /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

# 安装kubernetes-1.18.2(必须指定k8s版本号)

yum install kubectl-1.18.2 kubelet-1.18.2 kubeadm-1.18.2 -y
systemctl enable kubelet && systemctl start kubelet

第九步:集群初始化

kubeadm init \
  --apiserver-advertise-address=192.168.235.134\
  --image-repository registry.aliyuncs.com/google_containers \
  --kubernetes-version v1.18.2 \
  --service-cidr=10.1.0.0/16 \
  --pod-network-cidr=10.244.0.0/16

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

第十步: 安装网络插件calico

curl https://docs.projectcalico.org/v3.10/manifests/calico.yaml -O
kubectl apply -f calico.yaml

第十一步:添加节点

kubeadm token create --print-join-command  #永久的,关机也不会丢失

得到的命令之后依次去从节点执行

kubeadm join 192.168.235.134:6443 --token v64ga0.0yz6c7r6ypy7kxgy     --discovery-token-ca-cert-hash sha256:5f7eb20f906c2506a5c0ea881a396b842aaa31c2ae06253087e9312bd2b9b7c9

添加完成后:

W0609 01:27:09.582159 36928 join.go:346] [preflight] WARNING: JoinControlPane.controlPlane settings will be ignored when control-plane flag is not set.
[preflight] Running pre-flight checks
[WARNING IsDockerSystemdCheck]: detected “cgroupfs” as the Docker cgroup driver. The recommended driver is “systemd”. Please follow the guide at https://kubernetes.io/docs/setup/cri/
[WARNING SystemVerification]: this Docker version is not on the list of validated versions: 20.10.17. Latest validated version: 19.03
[WARNING Hostname]: hostname “k8s-node1” could not be reached
[WARNING Hostname]: hostname “k8s-node1”: lookup k8s-node1 on 192.168.235.2:53: no such host
[preflight] Reading configuration from the cluster…
[preflight] FYI: You can look at this config file with ‘kubectl -n kube-system get cm kubeadm-config -oyaml’
[kubelet-start] Downloading configuration for the kubelet from the “kubelet-config-1.18” ConfigMap in the kube-system namespace
[kubelet-start] Writing kubelet configuration to file “/var/lib/kubelet/config.yaml”
[kubelet-start] Writing kubelet environment file with flags to file “/var/lib/kubelet/kubeadm-flags.env”
[kubelet-start] Starting the kubelet
[kubelet-start] Waiting for the kubelet to perform the TLS Bootstrap…

This node has joined the cluster:

  • Certificate signing request was sent to apiserver and a response was received.
  • The Kubelet was informed of the new secure connection details.

Run ‘kubectl get nodes’ on the control-plane to see this node join the cluster.
可以去主节点看一下添加的节点:

kubectl  get nodes

第十二步:安装dashboard

dashaboard 比较难下载,这里提供下载方式https://mp.csdn.net/mp_download/manage/download/UpDetailed
first:
修改yaml文件,默认的dashboard是没有配置NodePort的映射的。
在第42行下方添加2行
nodePort: 30000
type: NodePort

[root@k8s-master ~]# vim recommended.yaml
...
 40   ports:
 41     - port: 443
 42       targetPort: 8443
 43       nodePort: 30000
 44   type: NodePort
 45   selector:
 46     k8s-app: kubernetes-dashboard
...

second:
添加dashboard管理员用户凭证。

[root@k8s-master ~]# cat >> recommended.yaml << EOF
---
# ------------------- dashboard-admin ------------------- #
apiVersion: v1
kind: ServiceAccount
metadata:
  name: dashboard-admin
  namespace: kubernetes-dashboard

---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
  name: dashboard-admin
subjects:
- kind: ServiceAccount
  name: dashboard-admin
  namespace: kubernetes-dashboard
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
EOF

third:

 kubectl apply -f recommended.yaml

four:token 值获取



kubectl describe secrets -n kubernetes-dashboard dashboard-admin

 
**five:访问**

```bash
https://192.168.12.30:30000
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

centos 安装k8s 的相关文章

随机推荐

  • 基于Keil创建汇编语言的STM32工程

    本文是在Keil嵌入式开发环境下完成一个基于STM32汇编程序的编写 学习在没有硬件条件下进行仿真调试 观察ARM寄存器的变化状况 记录过程生成的 hex文件各段的大小 了解Hex文件格式及其前8个字节内容含义 文章目录 一 新建工程 二
  • 建立双机调试

    1 首先你得有一个VMware 我这里是VM10 主机是64windows操作系统 2 我在虚拟机中装了32 位win7 3 下载 VirtualKD 我预先放在百度云盘的资源 https pan baidu com s 1eRD4AR4
  • C# 系统应用之无标题窗体移动的两种方法

    在做项目界面设计中 常常为了美观需要设置窗体属性 FormBorderStyle 窗体边框和标题栏外观 为None无标题窗口 此时隐藏标题的窗口怎样实现移动呢 我根据自己的项目从自己完成的两种方法进行讲解 一 MouseDown Mouse
  • TypeScript的类型推导

    TypeScript 简称ts 是一种静态类型的编程语言 在类型检查和类型推导方面具有一定的优势 类型推导是TypeScript在代码编写的过程中自动识别并设置变量类型 从而提高代码的可读性和健壮性 减少了代码中潜在的错误 在 TypeSc
  • 编译原理实验一:词法分析

    实验一 词法分析程序 一 实验目的 通过设计编制调试一个具体的词法分析程序 加深对词法分析原理的理解 并掌握在对程序设计语言源程序进行扫描过程中将其分解为各类单词的词法分析方法 编制一个读单词过程 从输入的源程序中 识别出各个具有独立意义的
  • 网络入门基础(网络布线)

    目录 前言 一 布线系统 1 工作区子系统 2 水平子系统 3 垂直子系统 4 管理子系统 5 设备间子系统 6 建筑群子系统 二 布线材料 1 线槽 2 桥架 走线架 3 配线架 三 网络机柜 四 网络布线 1 需求分析与走线设计 2 估
  • STM32F1之485通信

    485与PC通信 准备工作 首先我们需要准备的工具是一根USB 485转接数据线 STM32F103单片机 也可以是其他单片机 思想思路类似 两根公对公杜邦线 为了让板子和转接口连接 连线工作本人用的485转接器是T R 接F103单片机B
  • zookeeper启动报错:-bash: zkServer.sh: command not found

    zkServer sh command not found 明明已经进入了zookeeper的安装目录bin下了 执行zkServer sh start 没有这个命令 有这个命令 但启动不了 我的两种解决方法 1 一种是到zookeeper
  • 关于Ant自动化编包问题排查价格小思路

    1 确定一下JDK环境变量是否正确 何为是否正确 也就是源码所需要的版本和环境变量所需要的版本是否一致 2 确定引入的中间版本是否正确 同JDK 3 是否使用了正确的编译器 何为使用了正确的编译器 正常情况下不需要指定编译器 使用环境变量配
  • 编码器输出:HTL、TTL

    HTL 即常说的推挽 就是NPN PNP的组合 所以其同时支持PNP与NPN控制电路 电路简单 好用 工作电压较宽 编码器常用5到30V均可 注 HTL输出信号电平一般等同工作电压减三极管压降 有较强的抗干扰能力 它的主要缺点是工作速度比较
  • 如何在华三H3C交换机开启http或web界面远程登录管理

    华三交换机开启web界面实验 现在很多的华三交换机和路由器默认已经自带了WEB图形界面 只需要电脑配置一个互通的ip地址连接后就能登录到web界面 操作管理起来非常方便 但有时某些是没有开启web界面的 下面就以华三模拟器交换机为例操作配置
  • < C++ >:C++ 类和对象(上)

    目录 1 面向过程和面向对象的初步认识 2 类的引入 3 类的访问限定符及封装 3 1 访问限定符 3 2 封装 4 类的声明和定义或类的定义 可以理解成声明和定义 5 类的作用域 6 类的实例化 7 类对象模型 7 1 如何计算类对象的大
  • 释放技术的想象-解码腾讯云软件架构与应用

    欢迎大家前往腾讯云社区 获取更多腾讯海量技术实践干货哦 关于腾讯 你可能玩过 王者荣耀 你可能用过 微信 和它的 小程序 你可能看过 腾讯视频 并且曾为之付费 你可能已经是多年的 QQ 老手但还不知道什么是 MQ 作为成立多年的老牌互联网公
  • 为何零信任架构身份管理平台更可靠?

    随着信息技术的不断进步 云计算 物联网以及移动设备的普及 信息泄露等安全问题愈发频繁 近期 一起某高校学生的信息泄露事件引发了大家的广泛讨论 该校学生利用其身份便利 非法获取了大量学生的姓名 学号 照片等隐私信息 这次热门话题的讨论后 人们
  • python实现排列组合代码

    def combination n c com 1 limit 0 per for pos in range limit n t per pos if len set t len t if len t c yield pos else fo
  • 22道常见RocketMQ面试题以及答案

    面试宝典到手 搞定面试 不再是难题 系列文章传送地址 请点击本链接 1 RocketMQ是什么 2 RocketMQ有什么作用 3 RoctetMQ的架构 4 RoctetMQ的优缺点 8 消息过滤 如何实现 9 消息去重 如果由于网络等原
  • 基于WSL2+NVIDIA Docker的开发环境最佳实践

    1 Windows 11 安装WSL2 Ubuntu 22 04 LTS 1 1 安装windows附加功能 点击 设置 gt 应用 gt 可选功能 gt 更多windows功能 弹出的窗口 勾选 适用于Linux的Windows子系统 和
  • 学习dubbo遇到的报错:UnsatisfiedDependencyException: Error creating bean with name ‘us

    学习dubbo直连方式遇到的报错 记录一下 org springframework beans factory UnsatisfiedDependencyException Error creating bean with name use
  • win10企业版更新和安全中没有 “恢复”这个选项_永别了您内,整疯我的Win10自动更新...

    朋友终于买了台微星GP75 用来驾驭重制版剑三的网游史最大客户端 号称几乎无短板 处处贵到痛点的香香75的确值得 游戏流畅丝滑 开强冷模式手托半点不热 不过就在昨天 朋友突然问我 微星笔记本自带的win10系统可以退回win7吗 害 这哥果
  • centos 安装k8s

    第一步 每台机子都做 关闭防火墙 systemctl stop firewalld systemctl disable firewalld 第二步 每台机子都做 永久关闭selinux sed i s enforcing disabled