ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Kubernetes踩坑记---单点集群安装

2021-04-12 22:53:46  阅读:156  来源: 互联网

标签:坑记 service Kubernetes 容器 YAML --- start systemctl yum


   

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

  从今天起,我们开始研究k8s ,之所以叫k8s,是因为Kubernetes这个单词的K和S之间还有8个字母,为了方便书写,就直接用8来代替.国外也会偷懒,这就是证据哈哈,当然这是国际惯例

Kubernetes可以干嘛?以下就是他能做的事情,如果你是运维还不开始学习,不久的将来就彻底失业了:

  • 自动化容器的部署和复制

  • 随时扩展或收缩容器规模

  • 将容器组织成组,并且提供容器间的负载均衡

  • 很容易地升级应用程序容器的新版本

  • 提供容器弹性,如果容器失效就替换它,等等.

实际上,使用Kubernetes只需一个部署文件,使用一条命令就可以部署多层容器(前端,后台等)的完整集群:

$ kubectl create -f single-config-file.yaml

接下来我们一起搭建单点集群:

  实验环境:

坑一:

如果你是新手,建议使用全新的安装环境,从网络到yum源都是刚刚配置好的,这样不容易出错,要不然,稍有不慎就会一堆报错,而你百度也百度不出来结果

第一步: 把/etc/yum.repos.d/ 文件夹下所有的文件移动到/usr/local/benfei/  文件夹下.  因为我是用的虚拟机,在操作的时候,我直接把文件删除了(这个在生产环境下是不允许的,切记)

1  df -h 
2  umount /dev/sr0      //这里是卸载开机自动挂载的光驱
3  cd /etc/yum.repos.d/
4  ls
5  rm -rf ./*

第二步:  设置网络yum源,然后进行更新,设置缓存

  

7.wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
8  ls
9  yum update
10  yum makecache

第三步: 关闭防火墙,centos7默认使用firewall为防火墙,而Kubernatesd Master与工作Node之间会有大量的网络通信,安全的做法是在防火墙上配置各种需要相互通讯的端口号,在一个安全的内部网络环境中可以关闭防火墙服务

 

11  systemctl disable firewalld.service
12  systemctl stop firewalld.service

第四步: 安装etcd和kubernetes软件,在安装的时候docker就顺带安装了.

13  yum install -y etcd kubernetes

第五步:配置修改

14  vim /etc/sysconfig/docker

将配置文件里OPTIONS 修改成如下图所示的内容

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

 

15  vim /etc/kubernetes/apiserver

此处将配置文件中的框起来的地方的ServiceAccount去掉

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

 如果不去掉是会报错的

第六步: 按照如下步骤启动所有服务,如果启动成功,不会有任何提示.

 

    16  systemctl start etcd
   17  systemctl start docker
   18  systemctl start kube-apiserver.service
   19  systemctl start kube-controller-manager.service
   20  systemctl start kube-scheduler.service
   21  systemctl start kubelet.service
   22  systemctl start kube-proxy.service

现在一个单机版的K8S集群环境就安装成功了,接下来我们就可以在这个单机版的集群中愉快的玩耍了.

[root@localhost yum.repos.d]# kubectl get svc
NAME         CLUSTER-IP   EXTERNAL-IP   PORT(S)   AGE
kubernetes   10.254.0.1   <none>        443/TCP   1h

可以看到,K8s服务已经跑起来了.
在这里简单介绍下YAML配置文件,我们在下一个篇章里会用到

YAML读作/ˈjæməl/,他的本质就是一种通用的数据串行化格式.本身不需要安装,我们在学python时候也会经常用到.

基本语法如下:

  1. 对大小写比较敏感

  2. 使用缩进表示层级关系

使用YAML用于k8s的定义有很多好处,如下:

  • 便捷性:你将不再需要添加大量的参数到命令行中执行命令

  • 可维护性:YAML文件可以通过源头控制,可以跟踪每次的操作

  • 灵活性:通过YAML你将可以创建比命令行更加复杂的结构

YAML的结构类型,只要知道两种就可以: Lists和Maps

在K8S这里只要用以下几个用法就可以了

对象是一组键值对,使用冒号来结构来表示

apiVersion: v1

kind: ReplicationController

这里定义了一个RC 

所谓的RC就是保证在同一时间能够运行指定数量的Pod副本

你可以理解为Pod就是用来包裹容器的,在k8s中我们不会直接操作容器,而是把容器包装成Pod在进行管理.Pod是k8s里面最基本的操作单元.

说多了,这里理解写法就可以了,A: B的格式

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

标签:坑记,service,Kubernetes,容器,YAML,---,start,systemctl,yum
来源: https://blog.51cto.com/xinsz08/2702180

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有