环境:三个centos7

K8s2是Master;K8s1是node1;K8s3是node2

官方文档:https://kubernetes.io/docs/setup/independent/install-kubeadm/

注意:kubernetes几乎所有的安装组件和docker 镜像都放在goolge自己的网站上

安装docker

所有节点都安装docker:可利用docker-machine安装;可参考:https://www.cnblogs.com/lkun/p/7655495.html

所有节点关闭swap:swapoff -a 这个如果不关闭的话在初始化集群的时候会报错(如果重启机器,需要重新关闭)

所有节点设置内核参数:为了支持桥接

cat <<EOF >  /etc/sysctl.d/k8s.conf

net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl -p

所有节点 配置k8S源

cat <<EOF > /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,kubeadm,kubectl

kubelet运行在cluster所有节点上,负责启动容器和Pod

kubeadm用于初始化Cluster

kubectl是Kubernetes命令行工具。通过kubectl可以部署和管理应用,查看各种资源,创建,删除和更新各种组件

安装kubelet,kubeadm,kubectl
yum install  kubelet kubeadm kubectl --disableexcludes=kubernetes
安装完成之后不需要手动启动服务,服务会在初始化的时候自动启动。
 
配置集群初始化的配置文件(master上)
vim /etc/kubernetes/kubeadm.conf
apiVersion: kubeadm.k8s.io/v1alpha1
kind: MasterConfiguration
kubernetesVersion: v1.11.2
imageRepository: registry.cn-hangzhou.aliyuncs.com/google_containers
#api:
  #controlPlaneEndpoint: internal-bgc-ops-test-k8s-lb-505377916.cn-northwest-1.elb.amazonaws.com.cn
apiServerCertSANs:
- K8S3
- K8S1
- 192.168.7.93
- 192.168.7.235
#- internal-bgc-ops-test-k8s-lb-505377916.cn-northwest-1.elb.amazonaws.com.cn
networking:
  podSubnet: 10.244.0.0/16
#etcd:
 # endpoints:
  #- http://192.168.7.93:2379
  #- http://192.168.7.235:2379
  #dataDir: /var/lib/etcd

 
 
 
所有节点配置 /etc/sysconfig/kubelet         只在国内需要配置,让kubelet从国内的镜像仓库拉取pause镜像,否则默认从Google的镜像仓库拉取,会无法访问
vim    /etc/sysconfig/kubelet
KUBELET_EXTRA_ARGS=--pod-infra-container-image=registry.cn-hangzhou.aliyuncs.com/google_containers/pause-amd64:3.1

在master1上执行初始化

kubeadm init --config /etc/kubernetes/kubeadm.conf

node节点加入集群:在node节点上执行master初始化之后最后提示的命令;

在node节点上执行master初始化之后最后提示的命令;

如果没保存,可以尝试以下命令

先在master 上通过kubeadm token list查看token

然后在node上执行:kubeadm join token 192.168.7.78:6443 i9gsiq.c3pr5uocthnbeacf  --discovery-token-unsafe-skip-ca-verification(允许 在没有--discovery-token-ca-cert-hash的情况下进行连接)

在master上查看节点情况: kubectl get node

目前还处于NotReady,继续下面步骤部署pod网络

部署pod网络

kubenetes cluster需要安装Pod网络,才能进行通信,否则不通。

kubenetes支持很多中网络方案,在这里选择flannel。

在master上安装flannel

wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

vim   kube-flannel.yml     修改kube-flannel.yml与/etc/kubernetes/kubeadm.conf一致

export KUBECONFIG=/etc/kubernetes/admin.conf

将master与本机的IP进行绑定,可以用 kubectl cluster-info进行查看,如果不设置,默认master是与本机的localhost:8080绑定的,8080本身没有启动,所以会报错

报错:The connection to the server localhost:8080 was refused - did you specify the right host or port?

kubectl create -f kube-flannel.yml     确认资源

设置完pod网络之后在master查看node状态:

如果依然有node处于NotReady的状态

通过以下方法排查:

kubectl get pod --all-namespaces  (查看pod的运行状况,除了Running的状态,其余全部不正常)

查看运行不正常的pod的原因

describe pod kube-flannel-ds-amd64-qlgtn  --namespace=kube-system  (命令输出的最后一行)

出现这个问题是由于我在node2上面在配置/etc/sysconfig/kubelet国内源的时候配置错误,按照之前上面的步骤进行配置

我的解决办法是:重新配置/etc/sysconfig/kubelet

在node2上执行    kubeadm   reset

在master上面执行 kubectl delete node {nodename}

然后在node2上面重新加入集群

以下配置为master的高可用配置,如果是单机版,可以忽略

将 master上的 /etc/kubernetes/pki 及 /etc/kubernetes/kubeadm.conf 拷贝至两个master上

在两个master上分别执行   kubeadm init --config /etc/kubernetes/kubeadm.conf

 
 
 

centos7下kubernetes(3。部署kubernetes)的更多相关文章

  1. [转帖]centos7 使用kubeadm 快速部署 kubernetes 国内源

    centos7 使用kubeadm 快速部署 kubernetes 国内源 https://www.cnblogs.com/qingfeng2010/p/10540832.html 前言 搭建kube ...

  2. [原]CentOS7安装Rancher2.1并部署kubernetes (二)---部署kubernetes

    ##################    Rancher v2.1.7  +    Kubernetes 1.13.4  ################ ##################### ...

  3. 在Centos7下安装与部署.net core

    在Centos7下安装与部署.net core 2018年02月28日 19:36:16 阅读数:388 个人安装流程,参照文档 https://www.cnblogs.com/Burt/p/6566 ...

  4. # centos7下FFmpeg环境部署记录

    # centos7下FFmpeg环境部署记录 随着视频在网站上的应用越来越多,越来越多的网站服务器需要支持视频转码,视频压缩,FFmpeg是目前最好用的网站服务器后台转码程序,应用最多.FFmpeg是 ...

  5. centos7使用kubeadm安装部署kubernetes 1.14

    应用背景: 截止目前为止,高热度的kubernetes版本已经发布至1.14,在此记录一下安装部署步骤和过程中的问题排查. 部署k8s一般两种方式:kubeadm(官方称目前已经GA,可以在生产环境使 ...

  6. centos7 使用kubeadm 快速部署 kubernetes 国内源

    前言 搭建kubernetes时看文档以及资料走了很多弯路,so 整理了最后成功安装的过程已做记录.网上的搭建文章总是少一些步骤,想本人这样的小白总是部署不成功(^_^). 准备两台或两台以上的虚拟机 ...

  7. centos7.1使用kubeadm部署kubernetes 1.16.2的master高可用

    机器列表,配置域名解析 cat /etc/hosts192.168.200.210 k8s-master1192.168.200.211 k8s-master2192.168.200.212 k8s- ...

  8. CentOS7 下 Hadoop 分布式部署

    Hadoop 服务划分 使用三台节点,集群部署规划如下 服务\主机 hadoop1 hadoop2 hadoop3 HDFS NameNode DataNode DataNode SecondaryN ...

  9. [原]CentOS7安装Rancher2.1并部署kubernetes (三)---解决登录kubernets超时和部署测试Pod和Containter[nginx为例]

    ##################    Rancher v2.1.7  +    Kubernetes 1.13.4  ################ ##################### ...

  10. [原]CentOS7安装Rancher2.1并部署kubernetes (一)---部署Rancher

    ##################    Rancher v2.1.7  +    Kubernetes 1.13.4  ################ ##################### ...

随机推荐

  1. 【Java每日一题】20170210

    20170209问题解析请点击今日问题下方的“[Java每日一题]20170210”查看(问题解析在公众号首发,公众号ID:weknow619) package Feb2017; public cla ...

  2. JS基础(二)事件监听练习之table鼠标悬停行变色

    JS监听事件简单学习: [object].addEvent("事件类型","处理函数","冒泡事件或捕获事件");   [object].r ...

  3. Flask 系列之 LoginManager

    说明 操作系统:Windows 10 Python 版本:3.7x 虚拟环境管理器:virtualenv 代码编辑器:VS Code 实验目标 通过使用 flask-login 进行会话管理的相关操作 ...

  4. 7个拒绝使用TypeScript的借口

    译者按: TypeScript 学习成本不高,项目切换成本不低,不过还是值得试一试的! 原文:7 bad excuses for not using TypeScript 译者: Fundebug 为 ...

  5. IIS服务器被配置为不列出此目录的内容

    使用 IIS 管理器启用目录浏览. 打开 IIS 管理器. 在“功能”视图中,双击“目录浏览”. 在“目录浏览”页上,在“操作”窗格中单击“启用”.

  6. blfs(systemd版本)学习笔记-构建gnome桌面系统后的配置及安装的应用

    我的邮箱地址:zytrenren@163.com欢迎大家交流学习纠错! 一.构建安装ibus-libpinyin的笔记地址:https://www.cnblogs.com/renren-study-n ...

  7. 二进制安装 kubernetes 1.12(一) - 安装 ETCD

    软件环境 软件 版本 操作系统 CentOS 7.4 Docker 18-ce Kubernetes 1.12 服务器角色 角色 IP 组件 k8s-master 192.168.0.205 kube ...

  8. 26.Odoo产品分析 (三) – 人力资源板块(6) – 工资表(2)

    查看Odoo产品分析系列--目录 接上一篇Odoo产品分析 (三) – 人力资源板块(6) – 工资表(1) 4. 缴纳登记册 在"缴纳登记册"菜单中可以查看所有的登记册并新建:  ...

  9. Android为TV端助力 转载弩的博客

    Android.mk简介:Android.mk文件用来告知NDK Build 系统关于Source的信息. Android.mk将是GNU Makefile的一部分,且将被Build System解析 ...

  10. (转载)SPARKR,对RDD操作的介绍

    原以为,用sparkR不能做map操作, 搜了搜发现可以. lapply等同于map, 但是不能操作spark RDD. spark2.0以后, sparkR增加了 dapply, dapplycol ...