Jenkins X--(6)虚拟机里搭建Minikube环境

上一节完成了虚拟机环境的搭建。这一节开始在虚机上基于minikube搭建k8s环境,用于后面JenkinsX的环境构建。在开始之前,需要对操作系统做一些配置,以方便后续的操作。

版本清单:

Docker:Version:          18.06.1-ce

minikube:                  v1.4.0

kubeadm:                    v1.13.4

kubectl:                        v1.13.4

kubelet:                        v1.13.4

1、配置工作

图形界面

CentOS7默认启用了很耗资源的图形界面,在搭建过程中可以选择是否关闭。资源充足的可以忽略,后面jenkinx console启动浏览器时会用到图形界面。这里建议使用SecureCRT登录操作。

命令模式

systemctl set-default multi-user.target

图形模式

systemctl set-default graphical.target

配置yum源

这里将CentOS默认的yum源替换为aliyun的yum源,安装软件和依赖时会很快。执行如下命令:

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

yum makecache

关闭防火墙

关闭防火墙并且禁止开启自启动

systemctl stop firewalld & systemctl disable firewalld

关闭SeLinux

执行命令:

setenforce 0

关闭Swap

在安装K8S集群时,Linux的Swap内存交换机制是一定要关闭的,否则会因为内存交换而影响性能以及稳定性,修改完成后,需要重启。

sed -i '/ swap / s/^/#/' /etc/fstab


2、安装Docker

在安装K8s之前,需要先安装Docker,这里安装的版本是版本清单里的18.06.1-ce。在安装之前先配置一下阿里云的镜像地址,防止安装过程因为网络问题中断。

配置Docker仓库

将阿里云的仓库镜像添加到yum源

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

yum makecache

安装Docker并设置开机自启

指定版本安装Docker

yum install docker-ce-18.06.1.ce-3.el7

systemctl start docker & systemctl enable docker

Docker的版本

docker version

Docker测试,出现“Hello from Docker!” 说明成功。

[root@localhost ~]# docker run hello-world

Unable to find image 'hello-world:latest' locally

latest: Pulling from library/hello-world

1b930d010525: Pull complete

Digest: sha256:c3b4ada4687bbaa170745b3e4dd8ac3f194ca95b2d0518b417fb47e5879d9b5f

Status: Downloaded newer image for hello-world:latest

Hello from Docker!

This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:

1. The Docker client contacted the Docker daemon.

2. The Docker daemon pulled the "hello-world" image from the Docker Hub.

    (amd64)

3. The Docker daemon created a new container from that image which runs the

    executable that produces the output you are currently reading.

4. The Docker daemon streamed that output to the Docker client, which sent it

    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:

$ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:

https://hub.docker.com/

For more examples and ideas, visit:

https://docs.docker.com/get-started/

[root@localhost ~]#

3、安装Kubernetes

下面就开始安装K8s相关的组件,在安装之前,先添加aliyun的yum源。

添加K8S镜像源仓库

拷贝下面的脚本直接执行

cat < /etc/yum.repos.d/kubernetes.repo

[kubernetes]

name=Kubernetes

baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64

enabled=1

gpgcheck=0

repo_gpgcheck=0

gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg

        http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg

EOF

安装kubelet、kubectl、kubeadm

按下面顺序指定版本安装k8s的这几个组件,并设置kubelet开启自启动

yum install kubelet-1.13.4-0

yum install kubectl-1.13.4-0

yum install kubeadm-1.13.4-0

systemctl enable kubelet && systemctl start kubelet

安装minikube

参考:https://kubernetes.io/docs/tasks/tools/install-minikube/指定版本安装。

curl -Lo minikube https://storage.googleapis.com/minikube/releases/v1.4.0/minikube-linux-amd64 && chmod +x minikube && sudo cp minikube /usr/local/bin/ && rm minikube

安装k8s集群

使用minikube start启动一个K8s集群。在minikubev1.4.0的版本里,可以指定docker镜像的国别(--image-mirror-country)和镜像仓库(--image-repository),这样就不用去翻墙下载镜像了。如果你的minikube没有这两个选项,可参考之前写的一篇问题《Jenkins X--(4)不用翻墙也能下载国外的镜像》。

指定--kubernetes-version=‘v1.13.4’  这样每次就下载跟这个版本相关的依赖组件和镜像,

指定--vm-driver=none 将K8s组件安装在宿主机里,而不是VM里,这样也就不用再虚机里再安装虚机了。

minikube start --image-mirror-country='cn' --image-repository='registry.cn-hangzhou.aliyuncs.com/google_containers' --vm-driver=none --kubernetes-version='v1.13.4'

安装过程如下

[root@localhost ~]# minikube start --image-mirror-country='cn' --image-repository='registry.cn-hangzhou.aliyuncs.com/google_containers' --vm-driver=none --kubernetes-version='v1.13.4'

* minikube v1.4.0 on Centos 7.6.1810

* Using image repository registry.cn-hangzhou.aliyuncs.com/google_containers

* Running on localhost (CPUs=4, Memory=5948MB, Disk=26607MB) ...

* OS release is CentOS Linux 7 (Core)

* Preparing Kubernetes v1.13.4 on Docker 18.06.1-ce ...

* Downloading kubeadm v1.13.4

* Downloading kubelet v1.13.4

* 拉取镜像 ...

* 正在启动 Kubernetes ...

* Configuring local host environment ...

*

! The 'none' driver provides limited isolation and may reduce system security and reliability.

! For more information, see:

  - https://minikube.sigs.k8s.io/docs/reference/drivers/none/

*

! kubectl and minikube configuration will be stored in /root

! To use kubectl or minikube commands as your own user, you may need to relocate them. For example, to overwrite your own settings, run:

*

  - sudo mv /root/.kube /root/.minikube $HOME

  - sudo chown -R $USER $HOME/.kube $HOME/.minikube

*

* This can also be done automatically by setting the env var CHANGE_MINIKUBE_NONE_USER=true

* Waiting for: apiserver proxy etcd scheduler controller dns

* Done! kubectl is now configured to use "minikube"

安装完成后,查看kube-system空间里的pod情况,都已经处于Running状态。

[root@localhost ~]# kubectl get pod -n kube-system

NAME                              READY  STATUS    RESTARTS  AGE

coredns-89cc84847-bdpvm            1/1    Running  0          8m7s

coredns-89cc84847-nksg2            1/1    Running  0          8m7s

etcd-minikube                      1/1    Running  0          7m12s

kube-addon-manager-minikube        1/1    Running  0          8m7s

kube-apiserver-minikube            1/1    Running  0          7m20s

kube-controller-manager-minikube  1/1    Running  0          7m7s

kube-proxy-2klgq                  1/1    Running  0          8m7s

kube-scheduler-minikube            1/1    Running  0          7m11s

storage-provisioner                1/1    Running  0          8m4s


查看docker镜像,发现都是从配置好的aliyun镜像拉取下来的。

查看kubectl version ,Client和Server都已经启动,版本都是v1.13.4。

[root@localhost ~]# kubectl version

Client Version: version.Info{Major:"1", Minor:"13", GitVersion:"v1.13.4", GitCommit:"c27b913fddd1a6c480c229191a087698aa92f0b1", GitTreeState:"clean", BuildDate:"2019-02-28T13:37:52Z", GoVersion:"go1.11.5", Compiler:"gc", Platform:"linux/amd64"}

Server Version: version.Info{Major:"1", Minor:"13", GitVersion:"v1.13.4", GitCommit:"c27b913fddd1a6c480c229191a087698aa92f0b1", GitTreeState:"clean", BuildDate:"2019-02-28T13:30:26Z", GoVersion:"go1.11.5", Compiler:"gc", Platform:"linux/amd64"}

OK,基于minikube的K8s环境已经完成。如果想学习K8s的,这个环境就够了。可以在上面尽情的玩耍了。目前K8s的版本更新非常快,依赖的组件版本也在不断迭代。如果想学习最好的资源就是官方文档。可以自行百度,大多都是英文文档,是时候考验英语老师的水平了哈。

======================================

本人水平有限,难免有错误或疏漏,望大家指正,欢迎留言交流。欢迎关注本人微信公众号:DevOps亮哥

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 160,108评论 4 364
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,699评论 1 296
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,812评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,236评论 0 213
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,583评论 3 288
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,739评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,957评论 2 315
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,704评论 0 204
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,447评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,643评论 2 249
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,133评论 1 261
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,486评论 3 256
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,151评论 3 238
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,108评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,889评论 0 197
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,782评论 2 277
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,681评论 2 272

推荐阅读更多精彩内容