文章目录

  • 前言
  • 一、准备工作
    • 1.VMware的安装
    • 2.安装操作系统
  • 二、kubernetes单机版安装和使用
    • 1. 环境准备
    • 2. 部署docker
    • 3. 安装 kubeadm、kubelet 和 kubectl
    • 4. 部署Kubernetes Master
    • 5. 加入Kubernetes Node
    • 6. 测试
  • 三、总结

前言

Kubernetes 是用于自动部署,扩展和管理容器化应用程序的开源系统。
为什么需要 Kubernetes ?
真实的生产环境应用会包含多个容器,而这些容器还很可能会跨越多个服务器主机部署。Kubernetes 提供了为那些工作负载大规模部署容器的编排与管理能力。Kubernetes 编排让你能够构建多容器的应用服务,在集群上调度或伸缩这些容器,以及管理它们随时间变化的健康状态。

提示:以下是本篇文章正文内容

一、准备工作

系统:CentOS7
虚拟机:目前常见的虚拟机软件分别是 VMware 和 Virtualbox ,我使用的是VMWare,可以去官网进行下载,也可以找别人的压缩包进行下载。
下面我将简单介绍以下VMware的安装过程

1.VMware的安装

首先我们进入到官网(https://www.vmware.com/)

点击workspace,找到products右下角的Workstation Pro,打开,根据自己的系统选择版本,pro是需要购买的,不过我们可以选择试用30天

点击下载即可,接下来是安装,根据指引完成操作即可(一直点下一步,需要更改安装路径的自己更改即可),安装完成后打开,应该是这样一个界面

验证是否安装成功
打开设置–>网络和Internet–>高级网络设置–>更改适配器选项
看见下面左侧两个设备就说明虚拟机安装成功

2.安装操作系统

选择安装CentOS7,我照样是进入官网进行下载,也可以下载别人的压缩包。
官网下载地址:https://www.centos.org/download/

根据自己的电脑选择合适的文件进行下载,我选择是x86_64,也就是64位。点击RPMs(一种用于互联网下载包的打包及安装工具),进入如下界面,点击isos,选择一个镜像地址下载
在这里插入图片描述



接下来就是简单的VMware安装centos,过程比较简单,可以参考:

https://blog.csdn.net/tsundere_x/article/details/104263100

二、kubernetes单机版安装和使用

1. 环境准备

主机名 IP 角色
docker-k8s01 192.168.10.130 master
docker-k8s02 192.168.10.131 node01
docker-k8s03 192.168.10.132 node02

查看当前IP,保证 Linux 系统 ifcfg-ens33 文件中 IP 地址、虚拟网络编辑器地址和Windows 系统 VM8 网络 IP 地址相同

#ifconfig

执行如下命令:

# 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld# 关闭selinux
vim /etc/selinux/config
sed -i 's/enforcing/disabled/' /etc/selinux/config  # 永久# 关闭swap
swapoff -a  # 临时
sed -ri 's/.*swap.*/#&/' /etc/fstab    # 永久# 根据规划设置主机名
hostnamectl set-hostname <hostname># 在master添加hosts
cat >> /etc/hosts << EOF
192.168.10.130 k8smaster
192.168.10.131 k8snode1
192.168.10.132 k8snode2
EOF# 将桥接的IPv4流量传递到iptables的链
cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl --system  # 生效# 时间同步
yum install ntpdate -y
ntpdate time.windows.com

2. 部署docker

1.切换镜像源
$ wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
2.安装特定版本的docker-ce
$ yum -y install docker-ce-18.06.1.ce-3.el7
3.配置文件
$ cat > /etc/docker/daemon.json << EOF
{"registry-mirrors": ["https://b9pmyelo.mirror.aliyuncs.com"]
}
EOF
4.启动docker
$ systemctl enable docker && systemctl start docker
5.查看docker版本
$ docker --version
18.06.1-ce

安装截图

3. 安装 kubeadm、kubelet 和 kubectl

添加阿里云镜像源

输入指令: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
输入下面两个命令进行安装
yum install -y kubelet-1.18.0 kubeadm-1.18.0 kubectl-1.18.0systemctl enable kubelet

安装效果如下图所示:

4. 部署Kubernetes Master

在192.168.10.130(也就是我们的Master上)执行

$ kubeadm init \--apiserver-advertise-address=192.168.10.130 \--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

5. 加入Kubernetes Node

在192.168.10.131 和192.168.10.132(Node01和Node02)执行下面的语句

kubeadm join 192.168.10.130:6443 --token 4or4z4.fcqslk46vnnz6soc \--discovery-token-ca-cert-hash sha256:124f37009d5d2a2524f8607d86c73b33f468e6dfdbbc33f871ff9dc587552552 #这串代码是在上一步部署master成功后显示的,可以自行查看

这边截图显示 This node has joined the cluster ,表面加入成功

kubectl get nodes #查看结点


如果这边的状态是Not Ready,需要安装相关插件

方式1
wget https://raw.githubusercontect.com/coreos/flannel/master/Documentation/kube-flannel.yml
方式2
如果镜像地址访问不了,可以去csdn上找别人上传的kube-flannel.yml文件,我选用的这个方式,有兴趣的可以关注这篇文章> https://blog.csdn.net/weixin_43298522/article/details/109769013#使用配置文件启动flannel
kubectl apply -f kube-flannel.yml

那么到目前为止,集群已经搭建成功。

6. 测试

在集群中创建一个pod,验证是否正常运行:

$ kubectl create deployment nginx --image=nginx #部署nginx
$ kubectl expose deployment nginx --port=80 --type=NodePort #暴露端口
$ kubectl get pod,svc #查看服务状态

运行结果如下:
这里的ip是指服务器的ip,port是指docker分配给nginx的端口

通过http://192.168.10.130:30747/查看,可以发现测试成功。

三、总结

在k8s的配置和使用过程中,我还是遇到了不少的问题,也是通过上网查询一一进行解决。主要问题如下:

1. raw.githubusercontent.com无法访问,
解决办法1:可以sed命令修改为docker hub镜像仓库
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
解决办法2:去网上找别人的kube-flannel文件,上文已经给出链接2.默认token有效期为24小时,当过期之后,该token就不可用了
解决办法:kubeadm token create --print-join-command3.在节点配置过程中如果出现错误,无法进行,可以进行重置操作

Kubernetes安装和试用相关推荐

  1. Proovread安装与试用

    proovread安装与试用 2018.12.04 19:52:21字数 204阅读 118 [TOC] 安装环境 Ubuntu18.10 Perl 5.10.1 or later Log::Log4 ...

  2. Kubernetes安装之证书验证

    前言 昨晚(Apr 9,2017)金山软件的opsnull发布了一个开源项目和我一步步部署kubernetes集群,下文是结合我之前部署kubernetes的过程打造的kubernetes环境和ops ...

  3. kubernetes安装_kubernetes安装教程之三:安装kubeadm

    kubernetes安装教程之三:安装kubeadm 准备安装包和镜像 安装可以使用VPN下载 ````bash yum --downloadonly --downloaddir=/opt/rpm k ...

  4. MAC OS X Yosemite安装与试用

    MAC OS X Yosemite安装与试用 北京时间2014年6月3日凌晨,苹果公司在美国旧金山Moscone中心召开2014年度全球开发者大会(WWDC 2014),发布了新一代Mac操作系统OS ...

  5. Rancher Kubernetes Engine(RKE)正式发布:闪电般的Kubernetes安装部署体验

    作为Rancher 2.0的重要组件,Rancher Kubernetes Engine(RKE)现已正式全面发布!这是Rancher Labs推出的新的开源项目,一个极致简单易用.闪电般快速.支持一 ...

  6. kuboard使用mysql_Kuboard Kubernetes安装

    一.简介 Kubernetes 容器编排已越来越被大家关注,然而使用 Kubernetes 的门槛却依然很高,主要体现在这几个方面: 集群的安装复杂,出错概率大 Kubernetes相较于容器化,引入 ...

  7. VS2005-此计算机上已安装了试用版。必须先卸载以前安装的试用版后才能安装另一个试用版

    VS2005-此计算机上已安装了试用版.必须先卸载以前安装的试用版后才能安装另一个试用版 以前安装过vs 2005后来安了2008,2005删了,现在项目需要2005,再准备安上,安的时候提示&quo ...

  8. VS2005-此计算机下已安装了试用版,必须先卸载以前安装的试用版后才能安装另一个试用版

    VS2005-此计算机下已安装了试用版,必须先卸载以前安装的试用版后才能安装另一个试用版 VS2005-此计算机上已安装了试用版,必须先卸载以前安装的试用版后才能安装另一个试用版. VS2005-此计 ...

  9. Rancher Kubernetes Engine(RKE)正式发布:闪电般的Kubernetes安装部署体验 1

    2019独角兽企业重金招聘Python工程师标准>>> 作为Rancher 2.0的重要组件,Rancher Kubernetes Engine(RKE)现已正式全面发布!这是Ran ...

最新文章

  1. python读取excelsheet-python实现读取excel文件中所有sheet操作示例
  2. 中关村创业大街上的“野心”青年:在这里不用拼爹
  3. java查找链表中间元素_如何通过Java单次查找链表的中间元素
  4. 程序人家:你的老板逼你上微服务了吗??
  5. sublime text plugins
  6. python获取本机ip地址_python3 获取本机ip地址
  7. VIM教程与学习资料汇总(转载自善用佳软)
  8. SQL server 2005下载地址
  9. 贝塞尔曲线及实践案例
  10. div实现antd Descriptions描述列表(可灵活修改、固定宽度)
  11. 利用OneDNS同步chrome数据
  12. 软件工程--团队答辩
  13. 在股东协议中,如何设定关于股权转让的相关规定,如股东优先购买权、股权出售限制、股权转让审批流程等?
  14. linux mysql stop 报错_mysql linux上安装使用
  15. shell in find exclude
  16. MFC实现基本图形绘制、变换、自由曲线绘制、图形裁剪和填充
  17. docker安装redis无法启动: The container name “/ly-redis“ is already in use by container
  18. ziperello 资源分享
  19. 建筑平面图, 建筑设计图, 家具摆放图, 制作, 开发, 软件, VC++源代码组件库2018!
  20. Deep Residual Learning for Image Recognition (ResNet)

热门文章

  1. linux 系统中判别固态硬盘(SSD)和机械硬盘(HDD)
  2. linux运行彩虹猫,在 Linux 命令行中观看彩虹猫来稍事休息
  3. 计算机地质绘图实验报告,计算机地质绘图实习报告作业二.doc
  4. Assertion t = 0 t n classes failed
  5. 华秋DFM新功能全网上线,助力PCBA可焊性分析
  6. java数据库重要吗_我个人感觉数据库这方面对于程序员来说很重要,无论是对于JAVA程序员还是DOTNET程序员以及其他编程人员来说都是必须掌握的。为了帮助大家更好的来回顾T-SQL...
  7. SQL Server 2012 官方培训课程体系
  8. msck repair error
  9. StarRocks3.0介绍
  10. 15、基于STM32的温湿度超限报警器