kubernetes 1.12 从零开始(一): 部署环境准备

Tags: 视频教程  kubernetes 

目录

说明

本系列所有文章可以在系列教程汇总中找到,演示和讲解视频位于网易云课堂·IT技术快速入门学院 课程说明资料QQ交流群Kubernetes1.12从零开始(初):课程介绍与官方文档汇总,探索过程遇到的问题记录在:Kubernetes1.12从零开始(一):遇到的问题与解决方法

这一节准备一下接下来将要使用的环境。我这里使用的是三个运行CentOS 7的虚拟机,用vagrant管理的virtualbox。使用哪种虚拟化软件没有关系,virtualbox、vmware都可以了,vagrant只是一个方便创建启动虚拟机的工具,也不是必须的。

本系列所有文章可以在系列教程汇总中找到,Kubernetes1.12从零开始(一):遇到的问题与解决方法记录了探索过程遇到的问题。

Vagrant和VirtualBox

Vagrant是一个虚拟化管理软件,它本身是一个命令行工具,可以通过它方便的创建、设置虚拟机,可以节对接virtualbox、vmware等虚拟化软件,甚至aws的云端虚拟机。

可以到Vagrant的官网上了解详情,后续操作只用到了最常的几个指令,见虚拟化技术汇总-工具Vagrant

在Mac上的安装方法:

brew cask install virtualbox
brew cask install vagrant

到网址Discover Vagrant Boxes中,找到virutalbox的CentOS 7镜像,然后下载到本地:

$ vagrant box add centos/7
==> box: Loading metadata for box 'centos/7'
    box: URL: https://vagrantcloud.com/centos/7
This box can work with multiple providers! The providers that it
can work with are listed below. Please review the list and choose
the provider you will be working with.

1) hyperv
2) libvirt
3) virtualbox
4) vmware_desktop

Enter your choice: 3
==> box: Adding box 'centos/7' (v1809.01) for provider: virtualbox
    box: Downloading: https://vagrantcloud.com/centos/boxes/7/versions/1809.01/providers/virtualbox.box
    box: Download redirected to host: cloud.centos.org
    box: Progress: 0% (Rate: 2156/s, Estimated time remaining: 90:05:49)

在国内下载可能会非常慢,我挂着翻qiang的vpn从香港下载快一些,可以想办法先把网址 https://vagrantcloud.com/centos/boxes/7/versions/1809.01/providers/virtualbox.box 中的virtualbox.box文件下载下来。然后用vagrant box add ./virtualbox.box命令加载。

加载完成之后,用vagrant box list可以看到本地可以用的虚拟机镜像:

$ vagrant box list
centos/7 (virtualbox, 1809.01)

VirtualBox没什么好说的,它和vmware都是本地虚拟化软件,virtualbox是开源的,后来被Oracle收购了。

用了vagrant之后,完全可以不接触virtualbox的管理界面,因为虚拟机的相关配置直接通过vagrant设置就可以了。

创建虚拟机

上一节准备好CentOS 7的虚拟机镜像之后,这一节创建虚拟机。先创建三个目录,每个虚拟机一个:

➜  mkdir node{1,2,3}
➜  ls
node1 node2 node3

node1虚拟机准备:

cd node1
vagrant init centos/7

node1目录中会生成一个名为Vagrantfile的文件,在其中被注掉的一行去掉注释,并将地址更改为33.11:

config.vm.network "private_network", ip: "192.168.33.11"

同时设置一下内存和CPU,注意把vb.gui设置为false,不然启动时会弹出virtualbox窗口:

config.vm.provider "virtualbox" do |vb|
  # Display the VirtualBox GUI when booting the machine
  vb.gui = false

  # Customize the amount of memory on the VM:
  vb.memory = "1024"
  vb.cpus = "2"
end

CPU最少两个,不然可能会影响Kubernetes一些组件的运行(资源不足,部署失败)。

然后执行下面的命令启动虚拟机,并登陆虚拟机:

vagrant up
vagrant ssh

要退出虚拟机,直接exit就可以了。

用同样方式准备node2和node3,不同的是分别将它们的IP地址配置为192.168.33.12192.168.33.13

如果你用其它的方式创建虚拟机,要创建host模式网卡

使用Vagrant创建虚拟机的时候,在Vagrantfile中设置了IP:

config.vm.network "private_network", ip: "192.168.33.11"

这样会自动在虚拟机中创建一个host模式的网卡,并将它的IP按照配置文件进行设置。

我们后续部署的Kubernetes集群,组件之间通信都用这个host模式网卡的IP。

如果你是直接用vmware或者virtualbox等创建的虚拟机,注意在它们的管理页面中添加一个host模式的网卡。

虚拟机时间同步

虚拟机的时间需要保持一致,否则可能导致证书认定失败。这里用ntp进行时间同步:

sudo yum install ntp
sudo systemctl start ntpd
sudo systemctl enable ntpd

允许密码登陆

修改/etc/ssh/sshd_config

PasswordAuthentication yes

重启sshd服务:

systemctl restart sshd

参考

  1. 虚拟化技术汇总-工具Vagrant
  2. vagrant
  3. virtualbox

kubernetes

  1. kubernetes 使用:多可用区、Pod 部署拓扑与 Topology Aware Routing
  2. kubernetes 扩展:Cloud Controller Manager
  3. kubernetes 准入:操作合法性检查(Admission Control)
  4. kubernetes 鉴权:用户操作权限鉴定(Authorization)
  5. kubernetes 认证:用户管理与身份认证(Authenticating)
  6. kubernetes 开发:代码生成工具
  7. kubernetes 扩展:operator 开发
  8. kubernetes 扩展:CRD 的使用方法
  9. kubernetes configmap 热加载,inotifywatch 监测文件触发热更新
  10. kubernetes 扩展:扩展点和方法(api/cr/plugin...)
  11. kubernetes 调度组件 kube-scheduler 1.16.3 源代码阅读指引
  12. kubernetes 代码中的 k8s.io 是怎么回事?
  13. 阅读笔记《不一样的 双11 技术,阿里巴巴经济体云原生实践》
  14. kubernetes ingress-nginx 启用 upstream 长连接,需要注意,否则容易 502
  15. ingress-nginx 的限速功能在 nginx.conf 中的对应配置
  16. kubernetes 中的容器设置透明代理,自动在 HTTP 请求头中注入 Pod 信息
  17. kubernetes ingress-nginx 的测试代码(单元测试+e2e测试)
  18. kubernetes ingress-nginx http 请求复制功能与 nginx mirror 的行为差异
  19. kubernetes 基于 openresty 的 ingress-nginx 的状态和配置查询
  20. kubernetes ingress-nginx 0.25 源代码走读笔记
  21. kubernetes ingress-nginx 的金丝雀(canary)/灰度发布功能的使用方法
  22. kubernetes 操作命令 kubectl 在 shell 中的自动补全配置
  23. kubernetes 组件 kube-proxy 的 IPVS 功能的使用
  24. kubernetes initializer 功能的使用方法: 在 Pod 等 Resource 落地前进行修改
  25. kubernetes 版本特性: 新特性支持版本和组件兼容版本
  26. kubernetes API 与 Operator: 不为人知的开发者战争(完整篇)
  27. kubernetes 1.12 从零开始(七): kubernetes开发资源
  28. kubernetes 1.12 从零开始(六): 从代码编译到自动部署
  29. kubernetes 网络方案 Flannel 的学习笔记
  30. kubernetes 1.12 从零开始(五): 自己动手部署 kubernetes
  31. kubernetes 1.12 从零开始(四): 必须先讲一下基本概念
  32. kubernetes 1.12 从零开始(三): 用 kubeadm 部署多节点集群
  33. kubernetes 1.12 从零开始(二): 用 minikube 部署开发测试环境
  34. kubernetes 1.12 从零开始(一): 部署环境准备
  35. kubernetes 1.12 从零开始(零): 遇到的问题与解决方法
  36. kubernetes 1.12 从零开始(初): 课程介绍与官方文档汇总
  37. kubernetes 集群状态监控:通过 grafana 和 prometheus
  38. 一些比较有意思的Kubernetes周边产品
  39. Borg论文阅读笔记
  40. kubelet下载pod镜像时,docker口令文件的查找顺序
  41. kubernetes 的 Client Libraries 的使用
  42. kubernetes的网络隔离networkpolicy
  43. kube-router的源码走读
  44. kubernetes 跨网段通信: 通过 calico 的 ipip 模式
  45. kubernetes的调试方法
  46. kubernetes 与 calico 的衔接过程
  47. 怎样理解 kubernetes 以及微服务?
  48. kubernetes中部署有状态的复杂分布式系统
  49. kubernetes的apiserver的启动过程
  50. kubernetes的api定义与装载
  51. kubernetes的federation部署,跨区Service
  52. kubernetes的编译、打包、发布
  53. kubernetes的第三方包的使用
  54. kubernetes的Storage的实现
  55. kubernetes 的 Apiserver 的 storage 使用
  56. kubernetes的Controller-manager的工作过程
  57. kubernetes的Client端Cache
  58. kubernetes 的 Apiserver 的工作过程
  59. kubernetes的CNI插件初始化与Pod网络设置
  60. kubernetes的Pod变更过程
  61. kubernetes的kubelet的工作过程
  62. kuberntes 的 Cmdline 实现
  63. kubernetes的Pod内挂载的Service Account的使用方法
  64. kubernetes的社区资源与项目参与方式
  65. kubernetes的Kube-proxy的转发规则分析
  66. kubernetes的基本操作
  67. kubernetes在CentOS上的集群部署
  68. kubernetes在CentOS上的All In One部署
  69. 怎样选择集群管理系统?

视频教程

  1. kubernetes 1.12 从零开始(七): kubernetes开发资源
  2. kubernetes 1.12 从零开始(六): 从代码编译到自动部署
  3. kubernetes 1.12 从零开始(五): 自己动手部署 kubernetes
  4. kubernetes 1.12 从零开始(四): 必须先讲一下基本概念
  5. kubernetes 1.12 从零开始(三): 用 kubeadm 部署多节点集群
  6. kubernetes 1.12 从零开始(二): 用 minikube 部署开发测试环境
  7. kubernetes 1.12 从零开始(一): 部署环境准备
  8. kubernetes 1.12 从零开始(零): 遇到的问题与解决方法
  9. kubernetes 1.12 从零开始(初): 课程介绍与官方文档汇总
  10. 【视频】新型监控告警工具prometheus(普罗米修斯)入门使用(附视频讲解)
  11. 【视频】超级账本HyperLedger: Fabric Go SDK的使用
  12. 【视频】超级账本HyperLedger: Fabric使用kafka进行区块排序(共识)
  13. 【视频】超级账本HyperLedger: 为Fabric的Peer节点配置CouchDB
  14. 【视频】超级账本HyperLedger: Fabric从1.1.0升级到1.2.0
  15. 【视频】超级账本HyperLedger: 使用Ansible进行Fabric多节点分布式部署(实战)
  16. 【视频】超级账本HyperLedger: Fabric进阶,在已有的Channel中添加新的组织
  17. 【视频】超级账本HyperLedger: Fabric-CA的使用演示(两个组织一个Orderer三个Peer)
  18. 【视频】超级账本HyperLedger: Fabric的全手动、多服务器部署教程
  19. 【视频】超级账本HyperLedger: Fabric nodejs SDK的使用
  20. 超级账本HyperLedger: Fabric部署过程时遇到的问题汇总
  21. 【视频】8元小课之自动化运维工具ansible(二): 文档阅读摘要
  22. 【视频】8元小课之自动化运维工具ansible(一): 使用入门

推荐阅读

Copyright @2011-2019 All rights reserved. 转载请添加原文连接,合作请加微信lijiaocn或者发送邮件: [email protected],备注网站合作

友情链接:  系统软件  程序语言  运营经验  水库文集  网络课程  微信网文  发现知识星球