kubernetes 1.4.5集群部署

2016/11/16 23:39:58

环境: centos7

  1. [[email protected] server]$ uname -a
  2. Linux centos 3.10.0-327.el7.x86_64 #1 SMP Thu Nov 19 22:10:57 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

1. 初始化环境

关闭防火墙:

  1. [[email protected]-master fu]# systemctl stop firewalld
  2. [[email protected]-master fu]# systemctl disable firewalld

1.1 环境:

节点 IP
node-1 192.168.44.129
node-2 192.168.44.131
node-3 192.168.44.132

1.2 设置hostname

hostnamectl --static set-hostname hostname
IP hostname
192.168.44.129 k8s-master
192.168.44.131 k8s-node-1
192.168.44.132 k8s-node-2

master:

  1. [[email protected] fu]# hostnamectl --static set-hostname k8s-master

node-1

  1. [[email protected] fu]# hostnamectl --static set-hostname k8s-node-1

node-2

  1. [[email protected] fu]# hostnamectl --static set-hostname k8s-node-2

1.3 配置 hosts

  1. vi /etc/hosts
IP hostname

192.168.44.129

k8s-master

192.168.44.131

k8s-node-1

192.168.44.132

k8s-node-2

分别在hosts中加入:

  1. 192.168.44.129 k8s-master
  2. 192.168.44.131 k8s-node-1
  3. 192.168.44.132 k8s-node-2

或者,直接执行,在hosts中追加:

  1. echo ‘192.168.44.129 k8s-master
  2. 192.168.44.131 k8s-node-1
  3. 192.168.44.132 k8s-node-2‘ >> /etc/hosts

1.4安装kubelet 和kubeadm

添加yum  (注:root用户下执行)

  1. cat <<EOF > /etc/yum.repos.d/k8s.repo
  2. [kubelet]
  3. name=kubelet
  4. baseurl=http://files.rm-rf.ca/rpms/kubelet/
  5. enabled=1
  6. gpgcheck=0
  7. EOF

安装并启动:

  1. yum install docker kubelet kubeadm kubectl kubernetes-cni
  2. systemctl enable docker && systemctl start docker
  3. systemctl enable kubelet && systemctl start kubelet

2 部署 kubernetes master

2.1 添加yum(如环境统一处理,此处略过)

注:root用户下执行

  1. cat <<EOF> /etc/yum.repos.d/k8s.repo
  2. [kubelet]
  3. name=kubelet
  4. baseurl=http://files.rm-rf.ca/rpms/kubelet/
  5. enabled=1
  6. gpgcheck=0
  7. EOF
安装 kubernetes依赖环境:

yum有很多源,大多是网络上的。makecache建立一个缓存,以后用install安装软件时就在缓存中搜索,提高了速度。

  1. [[email protected]-master fu]# yum makecache
  2. [[email protected]-master fu]# yum install -y socat kubelet kubeadm kubectl kubernetes-cni

2.2 安装docker

  1. wget -qO- https://get.docker.com/ | sh

如果提示:

  1. bash: wget: 未找到命令

则先安装wget:

  1. [[email protected] fu]# yum -y install wget

如果已经安装过dokcer则可直接启动:

提示未启动:

  1. [[email protected] fu]# docker images
  2. Cannot connect to the Docker daemon. Is the docker daemon running on this host?

docker设为开机启动并启动:

  1. systemctl enable docker
  2. systemctl start docker

2.3 下载镜像

  1. images=(kube-proxy-amd64:v1.4.5 kube-discovery-amd64:1.0 kubedns-amd64:1.7 kube-scheduler-amd64:v1.4.5 kube-controller-manager-amd64:v1.4.5 kube-apiserver-amd64:v1.4.5 etcd-amd64:2.2.5 kube-dnsmasq-amd64:1.3 exechealthz-amd64:1.1 pause-amd64:3.0 kubernetes-dashboard-amd64:v1.4.1)
  2. for imageName in ${images[@]} ; do
  3. docker pull jicki/$imageName
  4. docker tag jicki/$imageName gcr.io/google_containers/$imageName
  5. docker rmi jicki/$imageName
  6. done

2.4 启动 kubernetes

  1. systemctl enable kubelet
  2. systemctl start kubelet

2.5 创建集群

  1. kubeadm init --api-advertise-addresses=192.168.44.129 --use-kubernetes-version v1.4.5

如提示:

  1. Running pre-flight checks
  2. preflight check errors:
  3. /etc/kubernetes is not empty

则:

  1. [[email protected]-master kubernetes]# rm -rf manifests/

然后再执行 init

2.6 记录 token

init打出的日志,把加入集群的token记录下来。

  1. Kubernetes master initialised successfully!
  2. You can now join any number of machines by running the following on each node:
  3. kubeadm join --token=a46536.cad65192491d2fd9 192.168.44.129

2.7 检查 kubelet 状态

  1. systemctl status kubelet

2.8 查询集群pods:
  1. [[email protected]-master system]# kubectl get nodes

3 部署 kubernetes node

3.1 安装docker

  1. wget -qO- https://get.docker.com/ | sh

如果提示:

  1. bash: wget: 未找到命令

则先安装wget:

  1. [[email protected] fu]# yum -y install wget

设置docker开机启动并启动:

  1. systemctl enable docker
  2. systemctl start docker

3.2 下载镜像

  1. images=(kube-proxy-amd64:v1.4.5 kube-discovery-amd64:1.0 kubedns-amd64:1.7 kube-scheduler-amd64:v1.4.5 kube-controller-manager-amd64:v1.4.5 kube-apiserver-amd64:v1.4.5 etcd-amd64:2.2.5 kube-dnsmasq-amd64:1.3 exechealthz-amd64:1.1 pause-amd64:3.0 kubernetes-dashboard-amd64:v1.4.1)
  2. for imageName in ${images[@]} ; do
  3. docker pull jicki/$imageName
  4. docker tag jicki/$imageName gcr.io/google_containers/$imageName
  5. docker rmi jicki/$imageName
  6. done

3.3 安装并启动 kubernetes(如环境统一处理,此处略过)

可以按上面先指定yum源,速度会有提升

  1. yum makecache
  2. yum install -y socat kubelet kubeadm kubectl kubernetes-cni
  1. systemctl enable kubelet
  2. systemctl start kubelet

3.4 加入集群

复制自己master创建集群的返回值

  1. kubeadm join --token=a46536.cad65192491d2fd9 192.168.44.129

返回如下错误,须手动清空该目录

如果此错误,请查看防火墙或selinux

返回:

都加入成功后,通过get nodes查看集群状态:

重启机器会有延迟:

4 设置 kubernetes

  1. kubectl apply -f https://git.io/weave-kube
  2. daemonset "weave-net" created

4.2 查看系统服务状态

  1. # kube-dns 必须配置完网络才能 Running
  2. [[email protected]-master ~]#kubectl get pods --all-namespaces
  3. NAMESPACE NAME READY STATUS RESTARTS AGE
  4. kube-system dummy-2088944543-io6ca 1/1 Running 0 22m
  5. kube-system etcd-k8s-master 1/1 Running 0 22m
  6. kube-system kube-apiserver-k8s-master 1/1 Running 0 22m
  7. kube-system kube-controller-manager-k8s-master 1/1 Running 0 20m
  8. kube-system kube-discovery-982812725-rm6ut 1/1 Running 0 22m
  9. kube-system kube-dns-2247936740-htw22 3/3 Running 0 21m
  10. kube-system kube-proxy-amd64-lo0hr 1/1 Running 0 15m
  11. kube-system kube-proxy-amd64-t3qpn 1/1 Running 0 15m
  12. kube-system kube-proxy-amd64-wwj2z 1/1 Running 0 21m
  13. kube-system kube-scheduler-k8s-master 1/1 Running 0 21m
  14. kube-system weave-net-6k3ha 2/2 Running 0 11m
  15. kube-system weave-net-auf0c 2/2 Running 0 11m
  16. kube-system weave-net-bxj6d 2/2 Running 0 11m

4.3 其他主机控制集群

# 备份master节点的 配置文件

/etc/kubernetes/admin.conf

# 保存至 其他电脑, 通过执行配置文件控制集群

kubectl --kubeconfig ./admin.conf get nodes

4.4 配置dashboard

#下载 yaml 文件, 直接导入会去官方拉取images

curl -O https://rawgit.com/kubernetes/dashboard/master/src/deploy/kubernetes-dashboard.yaml

#编辑 yaml 文件

vi kubernetes-dashboard.yaml

image: gcr.io/google_containers/kubernetes-dashboard-amd64:v1.4.0

修改为

image: gcr.io/google_containers/kubernetes-dashboard-amd64:v1.4.1

imagePullPolicy: Always

修改为

imagePullPolicy: IfNotPresent

kubectl create -f ./kubernetes-dashboard.yaml

deployment "kubernetes-dashboard" created
service "kubernetes-dashboard" created
# 查看 NodePort ,既外网访问端口

kubectl describe svc kubernetes-dashboard --namespace=kube-system

NodePort:               <unset> 31736/TCP

# 访问 dashboard

http://10.6.0.140:31736

FAQ:

kube-discovery error

	failed to create "kube-discovery" deployment [deployments.extensions "kube-discovery" already exists]

systemctl stop kubelet;
docker rm -f -v $(docker ps -q);
find /var/lib/kubelet | xargs -n 1 findmnt -n -t tmpfs -o TARGET -T | uniq | xargs -r umount -v;
rm -r -f /etc/kubernetes /var/lib/kubelet /var/lib/etcd;

systemctl start kubelet

kubeadm init

来源: http://www.xf80.com/2016/10/31/kubernetes-update-1.4.5/#section-8

****博客:https://mritd.me/2016/10/29/set-up-kubernetes-cluster-by-kubeadm/

github上,kubernetes版本:https://github.com/kubernetes/kubernetes/releases

来自为知笔记(Wiz)

时间: 2024-10-18 04:37:39

kubernetes 1.4.5集群部署的相关文章

kubernetes V1.10.4 集群部署 (手动生成证书)

说明:本文档涉及docker镜像,yaml文件下载地址 链接:https://pan.baidu.com/s/1QuVelCG43_VbHiOs04R3-Q 密码:70q2 本文只是作为一个安装记录 1. 环境 1.1 服务器信息 主机名 IP地址 os 版本 节点 k8s01 172.16.50.131 CentOS Linux release 7.4.1708 (Core) master k8s02 172.16.50.132 CentOS Linux release 7.4.1708 (C

kubernetes集群部署

鉴于Docker如此火爆,Google推出kubernetes管理docker集群,不少人估计会进行尝试.kubernetes得到了很多大公司的支持,kubernetes集群部署工具也集成了gce,coreos,aws等iaas平台,部署起来也相当的方便.鉴于网上众多资料基于的是不少老版本,本篇文章针对最新的kubernetes及其依赖组件的部署简要阐述.通过本文可以比较粗暴的运行你的kubernetes集群,要优雅还需要更多的工作.部署主要分为三步: 1.准备机器并打通网络 如果要部署kube

Kubernetes集群部署DNS服务

Kubernetes集群部署DNS服务在kubernetes中每一个service都会被分配一个虚拟IP,每一个Service在正常情况下都会长时间不会改变,这个相对于pod的不定IP,对于集群中APP的使用相对是稳定的. 但是Service的信息注入到pod目前使用的是环境变量的方式,并且十分依赖于pod(rc)和service的创建顺序,这使得这个集群看起来又不那么完美,于是kubernetes以插件的方式引入了DNS系统,利用DNS对Service进行一个映射,这样我们在APP中直接使用域

Kubernetes集群部署篇( 一)

K8S集群部署有几种方式:kubeadm.minikube和二进制包.前两者属于自动部署,简化部署操作,我们这里强烈推荐初学者使用二进制包部署,因为自动部署屏蔽了很多细节,使得对各个模块感知很少,非常不利用学习.所以,这篇文章也是使用二进制包部署Kubernetes集群. 一.架构拓扑图 二.环境规划 角色 IP 主机名 组件 Master1 192.168.161.161 master1 etcd1,master1 master2 192.168.161.162 master2 etcd2,m

利用ansible来做kubernetes 1.10.3集群高可用的一键部署

请读者务必保持环境一致 安装过程中需要下载所需系统包,请务必使所有节点连上互联网. 本次安装的集群节点信息 实验环境:VMware的虚拟机 IP地址 主机名 CPU 内存 192.168.77.133 k8s-m1 6核 6G 192.168.77.134 k8s-m2 6核 6G 192.168.77.135 k8s-m3 6核 6G 192.168.77.136 k8s-n1 6核 6G 192.168.77.137 k8s-n2 6核 6G 192.168.77.138 k8s-n3 6核

Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列之部署master/node节点组件(四)

0.前言 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 1.部署master组件 master 服务器的组件有:kube-apiserver.kube-controller-manager.kube-scheduler 因此需要下载k8s master,下载地址:https://github.com/kubernetes/kubernetes/blob/master/CHANGE

使用kubeadm快速部署Kubernetes(v1.12.1)集群---来源:马哥教育马哥原创

使用kubeadm快速部署Kubernetes(v1.12.1)集群------来源:马哥教育马哥原创 Kubernetes技术已经成为了原生云技术的事实标准,它是目前基础软件领域最为热门的分布式调度和管理平台.于是,Kubernetes也几乎成了时下开发工程师和运维工程师必备的技能之一. 一.主机环境预设 1.测试环境说明 测试使用的Kubernetes集群可由一个master主机及一个以上(建议至少两个)node主机组成,这些主机可以是物理服务器,也可以运行于vmware.virtualbo

Centos7安装部署Kubernetes(K8s)集群

Kubernetes集群的安装有多种方式:下载源码包编译安装.下载编译好的二进制包安装.使用kubeadm工具安装等.本文是以二进制文件方式安装Kubernetes集群.系统环境 主机名 IP地址 操作系统 安装组件 k8s-master 192.168.2.212 Centos 7.5 64位 etcd.kube-apiserver.kube-controller-manager.kube-scheduler k8s-node1 192.168.2.213 Centos 7.5 64位 kub

《二》Kubernetes集群部署(master)-搭建单集群v1.0

搭建单集群平台的环境规划 多master环境规划 官方提供的三种部署方式 minikubeMinikube是一个工具,可以在本地快速运行一个单点的Kubernetes,仅用于尝试Kubernetes或日常开发的用户使用.部署地址:https://kubernetes.io/docs/setup/minikube/ kubeadmKubeadm也是一个工具,提供kubeadm init和kubeadm join,用于快速部署Kubernetes集群.部署地址:https://kubernetes.