博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
如何搭建Kubernetes
阅读量:6060 次
发布时间:2019-06-20

本文共 3381 字,大约阅读时间需要 11 分钟。

集群方案:

发行版:ubuntu16.04

内核:4.4.0-62-generic·

版本:Kubernetes: 1.14.0·

网络方案:flannel network

1.禁用交换内存

通常我们安装的系统默认都是启用交换内存的,但是kubelet(1.8版本开始)是不支持交换内存。

swapoff -a

如何搭建Kubernetes

2.修改主机名和hosts文件

编辑/etc/hostname并添加:

kube-master

将以下行添加到/etc/hosts:

192.168.0.2 kube-master

192.168.0.3 kube-worker-1

192.168.0.4 kube-worker-2

完成以上系统环境配置后,建议重启一下服务器

3.安装Docker和Kubernetes

Docker安装有很多,以下是其中一种:

1.删除系统上可能存在的旧版Docker:

sudo apt remove docker docker-engine docker.io

2.确保您拥必要的软件包以允许使用Docker的存储库:

sudo apt install apt-transport-https ca-certificates curl software-properties-common

3.添加Docker的GPG密钥:

curl -fsSL | sudo apt-key add -

4.验证GPG密钥的指纹:

sudo apt-key fingerprint 0EBFCD88

5.添加stableDocker存储库:

sudo add-apt-repository "deb [arch=amd64] $(lsb_release -cs) stable"

6.更新软件包索引并安装Docker CE:

sudo apt updates

sudo apt install docker-ce

7.将限的Linux用户帐户添加到该docker组:

sudo usermod -aG docker $USER

8.通过运行内置的“Hello World”程序检查安装是否成功:

docker run hello-world

9.安装kubeadm,kubectl和kubelet

curl -s | sudo apt-key add -e

echo 'deb kubernetes-xenial main' | sudo tee /etc/apt/sources.list.d/kubernetes.lists

sudo apt updates

sudo apt install -y kubelet kubeadm kubectl

4.初始化

1.在初始化的时候会在https://dl.k8s.io上拖拉镜像,由于我是部署在国内的节点,所以就需要手动拉镜像并修改下标签。

docker pull mirrorgooglecontainers/kube-apiserver-amd64:v1.14.1

docker pull mirrorgooglecontainers/kube-controller-manager-amd64:v1.14.1

docker pull mirrorgooglecontainers/kube-scheduler-amd64:v1.14.1

docker pull mirrorgooglecontainers/kube-proxy-amd64:v1.14.1

docker pull mirrorgooglecontainers/pause:3.1

docker pull mirrorgooglecontainers/etcd-amd64:3.3.10

docker pull coredns/coredns:1.3.1

docker tag docker.io/mirrorgooglecontainers/kube-apiserver-amd64:v1.14.1 k8s.gcr.io/kube-apiserver:v1.14.1

docker tag docker.io/mirrorgooglecontainers/kube-controller-manager-amd64:v1.14.1 k8s.gcr.io/kube-controller-manager:v1.14.1

docker tag docker.io/mirrorgooglecontainers/kube-scheduler-amd64:v1.14.1 k8s.gcr.io/kube-scheduler:v1.14.1

docker tag docker.io/mirrorgooglecontainers/kube-proxy-amd64:v1.14.1 k8s.gcr.io/kube-proxy:v1.14.1

docker tag docker.io/mirrorgooglecontainers/pause:3.1 k8s.gcr.io/pause:3.1

docker tag docker.io/mirrorgooglecontainers/etcd-amd64:3.3.10 k8s.gcr.io/etcd:3.3.10

docker tag docker.io/coredns/coredns:1.3.1 k8s.gcr.io/coredns:1.3.1

docker rmi mirrorgooglecontainers/kube-apiserver-amd64:v1.14.1

docker rmi mirrorgooglecontainers/kube-controller-manager-amd64:v1.14.1

docker rmi mirrorgooglecontainers/kube-scheduler-amd64:v1.14.1

docker rmi mirrorgooglecontainers/kube-proxy-amd64:v1.14.1

docker rmi mirrorgooglecontainers/pause:3.1

docker rmi mirrorgooglecontainers/etcd-amd64:3.3.10

docker rmi coredns/coredns:1.3.1

2.初始化master节点

kubeadm init --pod-network-cidr=10.0.0.0/16 --apiserver-advertise-address=0.0.0.0

如何搭建Kubernetes

以上输出就是初始化完毕了,注意:保留kubeadm join….这句信息,后面节点加入使用。

3.在主节点上,配置kubectl工具:

mkdir -p $HOME/.kube

sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config

sudo chown $(id -u):$(id -g) $HOME/.kube/config

4.检查节点的状态kubectl get nodes。输出类似于:

如何搭建Kubernetes

这里可以看出master的状态是NotReady,这是由于还没有安装cni插件

5.安装flannel network add-on:--CNI

kubectl apply -f

然后现在重新kubectl get nodes检查就会发现是Ready状态了。

6.使用kubectl get pods --all-namespaces以查看在kube-system命名空间中创建的pod,当kube-system的状态都是running才算是初始化完成了。

如何搭建Kubernetes

当出现某个pod的状态异常时,可以使用kubectl describe pod $namespace来查看错误的原因

5.添加word节点

1.kubeadm join使用初始化输出的信息

如何搭建Kubernetes

2.在主节点上,用于kubectl查看从节点现在是否已就绪

如何搭建Kubernetes

如何搭建Kubernetes

文章来自公众号:睿江云计算

睿江云官网链接:

转载于:https://blog.51cto.com/13475644/2407643

你可能感兴趣的文章
HDU5012:Dice(bfs模板)
查看>>
iphone openssh
查看>>
Linux下MEncoder的编译
查看>>
Xamarin使用ListView开启分组视图Cell数据展示bug处理
查看>>
Javascript中闭包(Closure)的探索(一)-基本概念
查看>>
spark高级排序彻底解秘
查看>>
ylbtech-LanguageSamples-PartialTypes(部分类型)
查看>>
福建省促进大数据发展:变分散式管理为统筹集中式管理
查看>>
开发环境、生产环境、测试环境的基本理解和区别
查看>>
tomcat多应用之间如何共享jar
查看>>
Flex前后台交互,service层调用后台服务的简单封装
查看>>
技术汇之物联网设备网关技术架构设计
查看>>
OSX10.11 CocoaPods 升级总结
查看>>
深入浅出Netty
查看>>
3.使用maven创建java web项目
查看>>
笔记本搜索不到某一AP广播的SSID,信道的原因
查看>>
基于Spring MVC的异常处理及日志管理
查看>>
MediaBrowserService 音乐播放项目《IT蓝豹》
查看>>
MySQL入门12-数据类型
查看>>
Windows Azure 保留已存在的虚拟网络外网IP(云服务)
查看>>