Kubernetes七-服务器本地安装运行Kubernetes环境并通过yaml文件创建应用


之前我们学习了很多的概念及简单的使用官网提供的页面玩了玩k8S的基本内容,那本章我们来在自己的服务器环境中,实践安装搭建一个kubernetes环境。

由于时间问题,继续盗图,懒得自己画
在这里插入图片描述

1.安装前准备

关闭防火墙、设置selinux,千篇一律的设置,没劲,这里不做详细介绍。

2.安装etcd和K8S

yum install -y etcd kubernetes

3.修改配置文件

3.1docker配置文件

vi /etc/sysconfig/docker

修改如下内容:

OPTIONS='--selinux-enabled=false  --log-driver=journald --signature-verification=false --insecure-registry gcr.io'

3.2 K8S apiserver配置文件

删除ServiceAccount参数。

vim /etc/kubernetes/apiserver

在这里插入图片描述

4.启动所有服务

systemctl start etcd
systemctl start docker
systemctl start kube-apiserver
systemctl start kube-controller-manager
systemctl start kube-scheduler
systemctl start kubelet
systemctl start kube-proxy

5.单机版环境安装完毕,构建一个应用到Kubernetes中

5.1我们来创建一个RC定义的yaml文件mysql-rc.yaml

vim mysql-rc.yaml

编写入如下内容:

apiVersion: v1
kind: ReplicationController
metadata:
  name: mysql
spec:
  replicas: 1
  selector:
    app: mysql
  template:
    metadata:
      labels:
        app: mysql
    spec:
      containers:
      - name: mysql
        image: mysql
        ports:
        - containerPort: 3306
        env:
        - name: MYSQL_ROOT_PASSWORD
          value: "skyfans"

5.2 将ta发布到Kubernetes中。

kubectl create -f mysql-rc.yaml

在这里插入图片描述

5.2.1 查看创建的RC的情况

kubectl get rc

在这里插入图片描述

5.2.2 查看pod创建情况

kubectl get pods

在这里插入图片描述
什么情况??没有资源内容??我们明明创建了但是为什么没有呢??
仔细分析下:
在这里插入图片描述
通过截图我们可以看到,CURRENT数量为0.

扩展姿势:参数解释
DESIRED: 期望部署副本数
CURRENT: 当前部署副本数
UP-TO-DATE:最新部署副本数(图中无显示)
AVAILBLE: 运行中的副本数(图中无显示)
AGE: 已经运行的时间

就是说我们期望的是1,但是当前部署的副本数为0。为什么呢??

查询了下,发现了是个K8S的坑,我们安装完毕后,缺失了部分配置导致。

5.3 遇到坑1解决方法

5.3.1 执行如下命令

openssl genrsa -out /tmp/serviceaccount.key 2048

5.3.2 编辑apiserver配置文件

vim /etc/kubernetes/apiserver

找到编辑

KUBE_API_ARGS="--service_account_key_file=/tmp/serviceaccount.key"

5.3.3 编辑controller-manager配置文件:

vim /etc/kubernetes/controller-manager

找到编辑

KUBE_CONTROLLER_MANAGER_ARGS="--service_account_private_key_file=/tmp/serviceaccount.key"

5.3.4 重启服务

 systemctl restart kube-apiserver
 systemctl restart kube-controller-manager

5.3.5 删除原来的创建的RC

 kubectl delete -f mysql-rc.yaml

5.3.6 重新创建

 kubectl create -f mysql-rc.yaml

5.3.7 验证

kubectl get rc

在这里插入图片描述
哦了,已调整好了。

5.4遇到的坑2

好,我们在来看下pod的状态

kubectl get pods

在这里插入图片描述
状态是在创建,等待了几分钟后在查看
在这里插入图片描述
依然在创建,怎么可能??查看为啥呢?

kubectl describe pod mysql-714lt

在这里插入图片描述
在这里插入图片描述

看到registry.access.redhat.com/rhel7/pod-infrastructure:latest感觉很奇怪,我设置的仓库是gcr.io,为什么去拉取这个镜像,怀疑是不是什么没有安装好。尝试运行docker pull registry.access.redhat.com/rhel7/pod-infrastructure:latest,提示redhat-ca.crt: no such file or directory。

ls查看改文件是个软连接,链接目标是/etc/rhsm
在这里插入图片描述
查看没有rhsm相关内容。

尝试安装rhsm

yum install *rhsm*

再次查看状态,已经OK了。

kubectl describe pod mysql-714lt

好本章我们就讲到这里。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值