虚拟机部署k8s

1. 创建虚拟机

 虚拟机用的是virtualBox和vagrant工具,百度安装virtualBox和vagrant

 创建vagrant目录并创建文件Vagrantfile内容为

Vagrant.configure("2") do |config|
config.vm.box = "ubuntu/bionic64"
config.vm.box_check_update = false
config.vm.provider "virtualbox"
#config.vm.network "public_network" $num_vms = 3
(1..$num_vms).each do |id|
config.vm.define "kube-node#{id+1}" do |node|
node.vm.hostname = "kube-node#{id+1}"
node.vm.network :private_network, ip: "10.64.4.#{id+1}", auto_config: true
config.vm.network "forwarded_port", guest: 8080, host: 8080, auto_correct: true # kube-apiserver
config.vm.network "forwarded_port", guest: 8086, host: 8086, auto_correct: true # kubectl proxy
config.vm.network "forwarded_port", guest: 443, host: 4443, auto_correct: true # harbor
node.vm.provider :virtualbox do |vb, override|
vb.name = "kube-node#{id+1}"
vb.gui = false
vb.memory = 2048
vb.cpus = 1
end
end
end
end

a.进入vagrant目录下运行命令vagrant up创建虚拟机,这时会创建3台虚拟机分别是kube-node2,kube-node3,kube-node4

 b.设置kube-node2的cpu数为2(安装k8s时需要),在virtualBox管理器中可以设置

2.配置虚拟机环境

 a.进入虚拟机运行命令vagrant ssh kube-node2

b.设置root的登录密码输入命令sudo passwd root 之后输入2次设置的密码

c.设置允许远程登录修改/etc/ssh/sshd_config文件,执行命令/etc/ssh/sshd_config修改内容

 PasswordAuthentication yes
 UsePAM no
 PermitRootLogin yes
 RSAAuthentication yes
 PubkeyAuthentication yes

  sshd_config文件中没有就添加上有就修改为上述保存退出后,运行命令sudo service sshd restart,其他2台虚拟机同样执行

 d.修改机器的hostname,hostname -i返回可路由的IP地址(这是为了解决k8s中Flanne网络中pod无法互访)

sudo vim /etc/hosts

  将最后一行 127.0.1.1      kube-node2      kube-node2

  修改为10.64.4.2       kube-node2      kube-node2

其他2台机器也改成ip对应的值

3.安装docker

 用root进入,并每台机器上执行

sudo apt-get update && apt-get install docker.io 命令安装doucker

4.安装k8s等工具

用root进入,并每台机器上执行

  a. sudo apt-get update && apt-get install -y apt-transport-https
  b. curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add # 添加key
  c. 在/etc/apt/sources.list.d/kubernetes.list文件中添加deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
       d. apt-get update # 更新
  e. apt-get install -y kubelet kubeadm kubectl #安装

5.初始化 master

  用root进入kube-root2中执行

    kubeadm init --apiserver-advertise-address 10.64.4.2 --pod-network-cidr=10.244.0.0/16

执行完可能会报ERROR ImagePull 可能是墙外镜像下不下来需要翻墙,我们可以用阿里云免费获取镜像.

免费获取墙外镜像  https://blog.csdn.net/yjf147369/article/details/80290881

6.   配置 kubectl

切换到普通用户vagrant下, 执行

  su vagrant 
mkdir -p $HOME/.kube
  sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
  sudo chown $(id -u):$(id -g) $HOME/.kube/config
  echo "source <(kubectl completion bash)" >> ~/.bashrc

7.安装pod网络,在root用户下执行

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

8.添加k8s-node3和k8s-node4

 在5步骤成功后会有  kubeadm join 10.64.4.2:6443 --token token --discovery-token-ca-cert-hash sha256: 替换相应的值在其他2个节点执行

k8s dockerk个人学习(1)的更多相关文章

  1. k8s dockerk个人学习(2)

    部署nginx和应用 部署nginx时我们需要把nginx的配置文件那出来便于以后修改nginx的配置,放置nginx配置文件时我们用k8s的pv的存储方式来存放这些文件 1.安装nfs服务,在kub ...

  2. dockerk个人学习(0)

    接下来几篇记录学习docker和ks的部署搭建环境和应用部署等

  3. k8s的chart学习(下)

    1.开发自己的chart Kubernetes 给我们提供了大量官方 chart,不过要部署微服务应用,还是需要开发自己的 chart,下面就来实践这个主题. 1.1创建 chart 执行 helm ...

  4. k8s的chart学习(上)

    chart 是 Helm 的应用打包格式.chart 由一系列文件组成,这些文件描述了 Kubernetes 部署应用时所需要的资源,比如 Service.Deployment.PersistentV ...

  5. Android开发学习4

    学习内容: 1.RecyclerView 2.WebView

  6. k8s的网络学习

    1.Kubernetes 网络模型 Kubernetes 采用的是基于扁平地址空间的网络模型,集群中的每个 Pod 都有自己的 IP 地址,Pod 之间不需要配置 NAT 就能直接通信.另外,同一个 ...

  7. K8s & Openshift案例学习

    1. openshift排错技巧:https://mp.weixin.qq.com/s?__biz=MzAwMDc2NjQ4Nw==&mid=2663494178&idx=1& ...

  8. .NET Core on K8S快速入门课程学习笔记

    课程链接:http://video.jessetalk.cn/course/explore 良心课程,大家一起来学习哈! 目录 01-介绍K8s是什么 02-为什么要学习k8s 03-如何学习k8s ...

  9. k8s学习

    k8s简介 在学习k8s之前,相信大家和我一样,肯定都学习和使用过docker容器,并且对容器技术有了一个基本的认识.引用张磊老师的总结:其实一个"容器",实际上是一个由Linux ...

随机推荐

  1. WinForm一次只打开一个程序

    WinForm如果我们希望一次只打开一个程序,那么我们在程序每次运行的时候都需要检测线程是否存在该程序,如果存在就呼出之前的窗体,C#代码如下: using System; using System. ...

  2. 女生学java是否真的没有优势

    随着女性越来越独立,我们可以看到再以前我们认为不适合女性朋友从事的工作,也出现了越来越多的女生,例如对IT行业也不再跟之前一样畏惧.虽然当下很多人所持的观点依旧是,女生不适合IT行业,但是很多女生已经 ...

  3. 3-23 Rspec自动化测试(开始练习)

    闰年程序 leap_year_spec.rb require_relative './leap_year' describe "Leap Year" do it "201 ...

  4. RabbitMq windows 安装

    参考官方网址: http://www.rabbitmq.com/install-windows-manual.html http://www.rabbitmq.com/install-windows. ...

  5. java回收算法

    两个最基本的java回收算法:复制算法和标记清理算法                 复制算法:两个区域A和B,初始对象在A,继续存活的对象被转移到B.此为新生代最常用的算法              ...

  6. spark submit 入门

    spark dirver本质是一个spark集群的驱动程序,你要调用spark集群的计算功能,必须要通过它! from pyspark import SparkConf, SparkContext c ...

  7. qScrollArean的使用

    1◆ qScrollArean的使用   qt designer 工具 有时会 卡死的   2◆ 展示效果   滚动条   3◆ 操作   4◆ 说明 qt designer会卡死的    

  8. [置顶]使用scrapy_redis,自动实时增量更新东方头条网全站新闻

    存储使用mysql,增量更新东方头条全站新闻的标题 新闻简介 发布时间 新闻的每一页的内容 以及新闻内的所有图片.项目文件结构. 这是run.py的内容 1 #coding=utf-8 2 from ...

  9. glusterfs分布式存储

    一,分布式文件系统理论基础 1.1 分布式文件系统出现 计算机通过文件系统管理,存储数据,而现在数据信息爆炸的时代中人们可以获取的数据成指数倍的增长,单纯通过增加硬盘个数来扩展计算机文件系统的存储容量 ...

  10. zabbix的搭建与入门

    一,Zabbix架构 zabbix 是一个基于 WEB 界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案.zabbix 能监视各种网络参数,保证服务器系统的安全运营:并提供灵活的通知机制 ...