K8s 本地快速搭建详细步骤

k8s新的版本与之前1.5的部署方式发生改变,官方将kubernetes大组件中的服务例如(kube-proxy、kube-api等服务)剥离出来封装成容器的形式来简化部署的方式。以下为三个必装的服务:

kubelet :运行在 Cluster 所有节点上,主要负责启动 Pod 和容器。

kubeadm :用于初始化和引导Cluster(是官方推出快速部署k8s集群,其本 质是将k8s的相关服务容器化)

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

注意:两台机器的时间一定要一致,并且docker-ce的版本不能大于17.03(如果是搭建k8s v1.9.6版本  切记!!),docker可以使用官方的源进行安装,安装的时候指定需要安装的版本,或者使用rpm包安装即可。

安装配置

系统环境:centos7.3

1)配置准备

1. 修改host文件和主机名称

hostnamectl set-hostname 主机名   

时间同步  ntpdate 0.asia.pool.ntp.org

然后重启服务端

2. 关闭firewalld

systemctl stop firewalld

systemctl disable firewalld

3. 关闭swap(重启机器后,记得一定要再次执行,这种这是临时的关闭swap)

swapoff -a

4. 关闭selinux

setenforce 0

5. 添加kubernetes源

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

2)Docker 安装

 
此处注意docker和K8S 之间版本的对应关系(docker的版本一定不能高于17.03)
 
1. 安装插件和添加存储库
 
yum install -y yum-utils device-mapper-persistent-data lvm2 
 

 

2、docker 安装  填坑

### 低版本的docker -要先安装docker-ce-selinux-17.03.2.ce,否则安装docker-ce会报错

yum -y install https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-selinux-17.03.2.ce-1.el7.centos.noarch.rpm

yum makecache fast && yum install docker-ce-17.03.0.ce

3、执行完上述步骤后 检查服务状态,并启动docker。

docker -version     查看版本

systemctl status docker    查看启动状态

systemctl start docker    启动docker

systemctl enable docker  设置开机启动

3)K8S 安装

1、修改参数  配置位置 Master 和 node


    修改内核两个参数(这两个是参数是防止应用部署在centos系统情况下由于iptables被绕过而导致的路由错误)
简单的说就是使流过网桥的流量也进入iptables/netfilter框架中:

执行:
cat <<EOF > /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF

执行:
sysctl --system


2、安装组件


配置位置 Master 和 node:
yum makecache fast && yum install -y kubelet-1.9.6  kubeadm-1.9.6 kubectl-1.9.6 kubernetes-cni-0.6.0


#确保kubelets使用的cgroup-driver和docker使用的cgroup-driver一样:
sed -i "s/cgroup-driver=systemd/cgroup-driver=cgroupfs/g" /etc/systemd/system/kubelet.service.d/10-kubeadm.conf


查看对应的版本是否一致
kubeadm version
kubelet  --version
kubectl version

3、启动kubelet服务:

配置位置 Master 和 node

swapoff -a

systemctl daemon-reload

systemctl start kubelet

systemctl enable kubelet

/************************************ 上述步骤  每个节点都的执行 !!!!**************************************************/

4 、集群初始化:(Master节点执行)配置位置 Master

### 在初始化之如果卡顿 ,很可能是低版本需要下载镜像 ,需要下载的镜像都在我的/images.sh脚本里面,下载执行即可(将下载的镜像已经修改tag了  )

然后于执行权限   chmod -R 777 ./images.sh

kubeadm init --kubernetes-version=v1.9.6 --apiserver-advertise-address 192.168.182.131 --pod-network-cidr=10.244.0.0/16 

   说明: --apiserver-advertise-address

   指明用Master的哪个interface与Cluster 的其他节点通信

   说明: –pod-network-cidr

   指定Pod网络的范围k8s支持多种网络方案不同的网络方案对这个配置有不同的要求,这里设置为 10.244.0.0/16是因为我们将使用flanne 网络方案,所以设置成这个 CIDR。

  ####问题一:   如果提示(端口占用)或者文件已存在

    初始化 Kubernetes 问题(端口占用)或者文件已存在

                      解决方法:kubeadm reset   然后再执行初始化操作。   

     --------------------- 这一步 坑比较多  ----------------------

     主要查看日志提示  tail -f /var/log/message

5、root用户还不能使用kubelet控制集群,需要配置下环境变量:              

$mkdir -p $HOME/.kube

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

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

6、部署pod网络

配置位置 Master 和 Node

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

node节点执行:Node节点上执行如下加入:

kubeadm join --token 9f7a7b.b33f0746688759ad 192.168.182.131:6443 --discovery-token-ca-cert-hash sha256:fdb8bb2dfbbe1d2a5c532b24cb1db90d560d33ea95d5b58ae987b7a8f2448b97

### 测试查看
 
kubect get nodes
 
 

###问题一:

如果node节点一直是NoReady状态 ,在node 节点上执行  systemctl status  kubectl 查看状态

 如果node节点的kubectl 服务一会儿启动一会儿停止 (可能是网络没有准备好,检查flannel网络),分析日志查询命令:

journalctl -xefu kubelet

下一节:将写一篇关于kubernetes-dashboard的安装和登录

 

有问题联系方式  qq: 370217838

 

 

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值