1.部署虚拟机

详细步骤可以查看我的这篇博客

2.部署k8s

(1)准备

搭建K8S集群,准备三台2核4G的虚拟机(内存⾄少2G以上),操作系统选择⽤centos 7以上版本,先在三台机器上装好docker,点击查看docker安装教程

(2)安装

在三台机器上都执⾏如下命令操作:

1.关闭 selinux和防火墙:
永久关闭
sed -i 's/enforcing/disabled/' /etc/selinux/config
临时关闭
setenforce 0关闭防火墙
systemctl disable firewalld
systemctl stop firewalld
2.关闭 swap
临时关闭
swapoff -a 永久关闭
vim /etc/fstab
#注释掉swap这行
#/dev/mapper/centos‐swap swap swap defaults 0 0
systemctl reboot #重启⽣效
free ‐m #查看下swap交换区是否都为0,如果都为0则swap关闭成功
3.给三台机器分别设置主机名

hostnamectl set-hostname <hostname>
第1台:k8s‐master
第2台:k8s‐node1
第3台:k8s‐node2

4.在 k8s‐master机器添加hosts,执行如下命令,ip需要修改成你的机器的ip
vi /etc/hosts
192.168.65.160 k8s-master
192.168.65.203 k8s-node1
192.168.65.210 k8s-node2
5.添加k8s yum源
vi /etc/yum.repos.d/kubernetes.repo
输入以下内容:
[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
6.如果之前安装过k8s,先卸载旧版本

yum remove -y kubelet kubeadm kubectl

7.查看可以安装的版本

yum list kubelet --showduplicates | sort -r

8.安装kubelet、kubeadm、kubectl 指定版本,我们使kubeadm安装k8s集群

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

9.启动kubelet

(1)slave节点执行:

systemctl enable kubelet
systemctl start kubelet

(2)master节点执行:

systemctl enable kubelet
systemctl start kubelet
kubeadm init --apiserver-advertise-address=192.168.65.160 --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

执⾏完后结果如下图:

10.部署master

#配置使用kubectl 命令工具(类似docker这个命令),执行上图第2个红框的命令

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

#查看kubectl是否能正常使用
kubectl get nodes
#安装 Pod 网络插件

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
11.部署slave

#配置使用kubectl 命令工具(类似docker这个命令),执行上图第2个红框的命令

将node节点加⼊进master节点的集群⾥,复制上图第三个红框⾥的命令执⾏

kubeadm join 192.168.65.160:6443 --token hbovty.6x82bkdlsk6dfy32 --discovery-token-ca-cert-hash sha256:659511b431f276b2a5f47397677b1dff74838ae5eb18e24135e6dae1b8c45840

注意:自动生成的密钥有效期为24h,建议手动生成个永久的,具体看这里

12.在master节点查看node

kubectl get nodes

其他:

一、卸载k8s服务
# 卸载服务
kubeadm reset# 删除rpm包
rpm -qa|grep kube*|xargs rpm --nodeps -e# 删除容器及镜像
docker images -qa|xargs docker rmi -f
二、动态修改虚拟机cpu、内存配置

注意:要先关机修改最大使用量,再开机修改分配数量,以下步骤按部就班执行

查看虚拟机信息
virsh list --all 设置最大cpu颗数和最大内存使用量:(关机状态下)
virsh setvcpus bbotte --maximum 4 --config
virsh setmaxmem bbotte 1048576 --config修改虚拟机cpu核心数(开机状态)
virsh setvcpus vmName 4修改内存
virsh setmem vmName 819200 --config --live

在单机(物理机)上用虚拟机部署kubernetes集群相关推荐

  1. 部署Kubernetes集群(二进制 v1.18.8版)

    第一章 kubernetes 功能介绍 · kubernetes 从入门到实践 · 看云 二进制 部署Kubernetes集群 组件版本 组件 版本 二进制包下载地址 备注 centos 7.8.20 ...

  2. Kubernetes---通过Ansible自动化快速部署Kubernetes集群

    Kubernetes-通过Ansible自动化快速部署Kubernetes集群 目录 Kubernetes-通过Ansible自动化快速部署Kubernetes集群 一.安装ansible 二.环境准 ...

  3. 部署kubernetes集群

    在本例中使用三台机器来部署kubernetes集群 172.16.36.50 master 172.16.36.51 cti-1 172.16.36.54 cti-4 关闭三台机器的防火墙 syste ...

  4. 部署Kubernetes集群(二进制 v1.18.5版)

    文章目录 一.Kubernetes的基本知识 1. 安装要求 2. 系统初始化配置 二.部署Etcd集群 2.1 准备cfssl证书生成工具 2.2 生成Etcd证书 2.2.1 自签证书颁发机构(C ...

  5. 使用Kubespray部署Kubernetes集群

    Kubespray是Google开源的一个部署生产级别的Kubernetes服务器集群的开源项目,它整合了Ansible作为部署的工具.项目地址:https://github.com/kubernet ...

  6. 容器编排技术 -- 使用Minikube 部署 Kubernetes 集群

    容器编排技术 -- 使用Minikube 部署 Kubernetes 集群 单机部署 创建Kubernetes cluster(单机版)最简单的方法是minikube: 首先下载kubectl cur ...

  7. 使用Rancher的RKE快速部署Kubernetes集群

    简要说明: 本文共涉及3台Ubuntu机器,1台RKE部署机器(192.168.3.161),2台Kubernetes集群机器(3.162和3.163). 先在Windows机器上,将rke_linu ...

  8. ② kubeadm快速部署Kubernetes集群

    文章目录 1. 安装要求 2. 目标 3. 准备环境 4. 所有节点安装Docker/kubeadm/kubelet 4.1 安装Docker(以一台为例,其他相同) 4.2 添加kubernetes ...

  9. RKE部署Kubernetes集群

    安装docker 在各个节点建立自定义账户,使其可以用命令操作docker useradd <user_name> passwd <user_name> usermod -aG ...

最新文章

  1. important meeting with friends
  2. CompletableFuture API用法介绍(二)
  3. Nginx中ngx_http_upstream_module模块
  4. 文件服务器访问权限分配,设置文件服务器的访问权限
  5. [css] 你是怎样抽离样式模块的?
  6. Windows远程连接的用户名和密码怎么设置?
  7. 栈溢出笔记1.5 换一个汇编工具
  8. Android Studio:解决DataBinding v4包问题
  9. 今晚直播丨有关Oracle 19c认证体系的一些变化及备考技巧
  10. 深入理解iPhone委托模式兼谈iPhone生命周期
  11. GestureDetector类的用法
  12. win7下处理桌面文件丢失及黑屏的有效方法
  13. 冲击波病毒内幕点滴(2) (转)
  14. DSP2812之中断系统
  15. 直流开环调速系统 simulink仿真
  16. 国内各大高校开源镜像站
  17. 白天黑夜、中午和傍晚的固定配色绘画技巧
  18. 手机老是收不到短信验证码?我来告诉你为什么!
  19. sscanf小技巧-洛谷P7911 网络连接
  20. 用计算机亩换算成平方,亩换算平方(平方米换算亩计算器)

热门文章

  1. css里的deg,CSS角度单位:deg、grad、rad、turn
  2. NullPointerException空指针异常
  3. 【全面】人工智能技术栈与学习路线:机器学习 深度学习 视觉 NLP 推荐系统
  4. 消息重试框架 Spring-Retry 和 Guava-Retry,这个框架有点意思
  5. 软件测试详解17--接口对接
  6. C++ 算法篇 动态规划----区间动态规划
  7. ActiveMQ从入门到精通(全)
  8. 三、Android系统内核编译及刷机实战 (修改反调试标志位)
  9. Vue插件报错:Vue.js is detected on this page.
  10. 轻量应用服务器 饥荒,饥荒服务端世界设置生成