k8s dockerk个人学习(1)
虚拟机部署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)的更多相关文章
- k8s dockerk个人学习(2)
部署nginx和应用 部署nginx时我们需要把nginx的配置文件那出来便于以后修改nginx的配置,放置nginx配置文件时我们用k8s的pv的存储方式来存放这些文件 1.安装nfs服务,在kub ...
- dockerk个人学习(0)
接下来几篇记录学习docker和ks的部署搭建环境和应用部署等
- k8s的chart学习(下)
1.开发自己的chart Kubernetes 给我们提供了大量官方 chart,不过要部署微服务应用,还是需要开发自己的 chart,下面就来实践这个主题. 1.1创建 chart 执行 helm ...
- k8s的chart学习(上)
chart 是 Helm 的应用打包格式.chart 由一系列文件组成,这些文件描述了 Kubernetes 部署应用时所需要的资源,比如 Service.Deployment.PersistentV ...
- Android开发学习4
学习内容: 1.RecyclerView 2.WebView
- k8s的网络学习
1.Kubernetes 网络模型 Kubernetes 采用的是基于扁平地址空间的网络模型,集群中的每个 Pod 都有自己的 IP 地址,Pod 之间不需要配置 NAT 就能直接通信.另外,同一个 ...
- K8s & Openshift案例学习
1. openshift排错技巧:https://mp.weixin.qq.com/s?__biz=MzAwMDc2NjQ4Nw==&mid=2663494178&idx=1& ...
- .NET Core on K8S快速入门课程学习笔记
课程链接:http://video.jessetalk.cn/course/explore 良心课程,大家一起来学习哈! 目录 01-介绍K8s是什么 02-为什么要学习k8s 03-如何学习k8s ...
- k8s学习
k8s简介 在学习k8s之前,相信大家和我一样,肯定都学习和使用过docker容器,并且对容器技术有了一个基本的认识.引用张磊老师的总结:其实一个"容器",实际上是一个由Linux ...
随机推荐
- Linq 使用skip和take分页
static int Main(string[] args) { //每页条数 const int pageSize = 2; //页码 0就是第一条数据 int pageNum = 0; strin ...
- Python的第二次作业
羊车门问题 1.我认为 会 增加选中汽车的机会,原因如下: 不换的情况:对于参赛者而言无论选哪一扇门都有1/3的几率能获得车子. 换的情况 :对于参赛者而言,有两种情况「1.参赛者第一次就选择到了正 ...
- protobuf3.5.1使用的简单例子
前言 1. 什么是protobuf Google Protocol Buffer( 简称 Protobuf) 是 Google 公司内部的混合语言数据标准,是一种轻便高效的结构化数据存储格式,平台无关 ...
- bat批处理文件运行时隐藏cmd窗口
想让bat运行时隐藏cmd窗口,最好的方法是使用vbs文件实现, 1.新建一个文本文档,改名为123.vbs,编辑内容: set ws=WScript.CreateObject("WScri ...
- PHP:第三章——PHP中嵌套函数和条件函数
PHP中的嵌套函数: <?php header("Content-Type:text/html;charset=utf-8"); function A(){ echo &qu ...
- kernel jenkins build script
#!/bin/bash #gcc: site="https://releases.linaro.org" #https://releases.linaro.org/componen ...
- Openwrt WiFi Configure(1)
1 Scope of Document This document describes how to custom wifi option 2 Requiremen 2.1 ...
- 【转载】maven用处
http://bbs.csdn.net/topics/80014314 当您的项目逐渐变得庞大和复杂时,最好使用一种构建工具来自动构建您的项目.例如,一个典型的java项目,每次构建时都要经历编译ja ...
- docker 部署 flask(二)编写及生成镜像。
简介: 上一篇文章,我们简单的测试了一下服务器环境和docker基础镜像.并没有涉及我们自己编写的flask python程序. 现在,我们就要把我们自己的flask程序,放进docker镜像. 但是 ...
- 软工作业No.9 第六周 事后诸葛亮分析报告
甜美女孩项目2048结果 整理:邓画月.曾祎祺 设想和目标 1. 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述? 弄一个给用户消磨时间的游戏,定义的很清楚.该游戏玩 ...