Centos7上使用Kind搭建Kubernetes环境

Centos7上使用Kind搭建Kubernetes环境及所遇到的问题

本文介绍在Centos7上使用Kind搭建Kubernetes环境时,过程中出现的问题以及对应的解决方案,最后运行一个实例验证是否安装成功。

什么是Kind

Kind是可以用来安装Kubernetes的工具,能够搭建一套开箱即用的Kubernetes环境,并且支持快速创建多个Kubernetes集群。

Kind的原理就是将Kubernetes相关的控制单元——诸如Etcd、kubelet、Controller Manager等以容器的方式运行,并且在镜像的内部使用Kubeadm做集群部署,这样就借助容器镜像,在本地搭建起一个开箱的Kubernetes。

Kind项目链接:https://github.com/kubernetes-sigs/kind

Kind的特点

  • 开箱即用,支持搭建多个高可用的Kubernetes集群
  • 最小的安装依赖——只需要Docker
  • 命令简单,可以快速创建集群
  • 通过了CNCF社区的K8S Conformance 测试

搭建单机的Kubernetes环境

安装Docker

# 安装docker所需的工具
yum install -y yum-utils device-mapper-persistent-data lvm2
# 配置阿里云的docker源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 指定安装这个版本的docker-ce
yum install -y docker-ce
# 启动docker
systemctl enable docker && systemctl start docker
容器镜像加速

到阿里云里面查找容器服务入口,然后里面有一个容器镜像加速,可以找到镜像加速的网址。得到网址之后,加入到daemon.json配置文件中。

mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{
   "registry-mirrors": ["https://zxdefssd.mirror.aliyuncs.com"],
   "exec-opts": ["native.cgroupdriver=systemd"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docke

安装Kind

安装Kind的命令:

curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.10.0/kind-linux-amd64
chmod +x ./kind
mv ./kind /usr/local/bin/kind

安装kubectl

然后安装kubectl,比较方便管理。

yum install -y kubectl

相关报错与解决

  1. 首先curl访问不到对应网址,解决方法是修改hosts文件:
    echo "140.82.114.4 github.com" >> /etc/hosts
    
  2. 然后在安装kubectl的时候,需要配置yum.repo.d
    cd /etc/yum.repo.d
    #mkdir -p
    tee <<-'EOF'
    [kubernetes]
    name=Kubernetes
    #baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
    baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
    enabled=1
    gpgcheck=1
    repo_gpgcheck=1
    #gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg 	https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
    gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg 	https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
    EOF
    
  3. kind命令找不到,我是直接设置了alias,kind是一个可执行文件。

安装完成:
在这里插入图片描述

启动Kind

#建立单节点集群
kind create cluster --name my-cluster

然后会有如下提示,最后节点建立成功。
在这里插入图片描述
输入如下命令可以查看节点信息:

kubectl get po -n kube-system

在这里插入图片描述
节点建立之后就相当于我们拥有了一个kubernetes环境,紧接着,可以开始部署镜像了。

使用Kubernetes运行Nginx镜像

搭建完kubernetes环境之后,我们可以试着部署Nginx镜像。
首先创建一个yaml文件:nginx-deployment.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
spec:
  selector:
    matchLabels:
      app: nginx
  replicas: 2
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.7.9
        ports:
        - containerPort: 80

然后启动

kubectl apply -f nginx-deployment.yaml

# 如果发生修改——比如版本升级,可以直接修改nginx-deployment.yaml的内容,然后再执行一次
kubectl apply -f nginx-deployment.yaml

可以检查一下这个yaml的运行状态

kubectl get pods -l app=nginx
NAME                                READY     STATUS    RESTARTS   AGE
nginx-deployment-67594d6bf6-9gdvr   1/1       Running   0          10m
nginx-deployment-67594d6bf6-v6j7w   1/1       Running   0          10m

查看对象的细节

kubectl describe pod nginx-deployment-67594d6bf6-9gdvr

Name:               nginx-deployment-67594d6bf6-9gdvr
Namespace:          default
Priority:           0
PriorityClassName:  <none>
Controlled By:      ReplicaSet/nginx-deployment-67594d6bf6
...
Events:

  Type     Reason                  Age                From               Message

  ----     ------                  ----               ----               -------
  
  Normal   Scheduled               1m                 default-scheduler  Successfully assigned default/nginx-deployment-67594d6bf6-9gdvr to node-1
  Normal   Pulling                 25s                kubelet, node-1    pulling image "nginx:1.7.9"
  Normal   Pulled                  17s                kubelet, node-1    Successfully pulled image "nginx:1.7.9"
  Normal   Created                 17s                kubelet, node-1    Created container
  Normal   Started                 17s                kubelet, node-1    Started container

进入到容器中

 kubectl exec -it nginx-deployment-5c678cfb6d-lg9lw -- /bin/bash

删除

kubectl delete -f nginx-deployment.yaml

参考:
https://www.cnblogs.com/zhaocici/p/14594992.html

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值