Kubernetes安装和试用


前言

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-k8s01192.168.10.130master
docker-k8s02192.168.10.131node01
docker-k8s03192.168.10.132node02

查看当前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.0

systemctl 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-command

3.在节点配置过程中如果出现错误,无法进行,可以进行重置操作
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值