内外网络互通

[root@k8s-1 ~]# cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)

 配置k8syum仓库,及Docker-ceyum仓库

[root@k8s-1 yum.repos.d]# vim  /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
gpgcheck=0
enable=1 [root@k8s-1 yum.repos.d]# wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
--2019-05-10 11:03:16-- https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
正在解析主机 mirrors.aliyun.com (mirrors.aliyun.com)... 47.246.0.251, 47.246.0.253, 47.246.0.254, ...
正在连接 mirrors.aliyun.com (mirrors.aliyun.com)|47.246.0.251|:443... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:2640 (2.6K) [application/octet-stream]
正在保存至: “docker-ce.repo” 100%[====================================================================================================================================================================================================================================>] 2,640 --.-K/s 用时 0s 2019-05-10 11:03:17 (152 MB/s) - 已保存 “docker-ce.repo” [2640/2640])

 安装

[root@k8s-1 yum.repos.d]# yum install docker-ce kubelet kubeadm  kubectl kubernetes-cni

  设置开机自启启动docker

[root@k8s-1 yum.repos.d]# systemctl enable docker

  设置开机自启启动kubelet

[root@k8s-1 yum.repos.d]# systemctl enable kubelet.service

  启动docker与kubelet

[root@k8s-1 yum.repos.d]# systemctl start docker
[root@k8s-1 yum.repos.d]# systemctl start kubelet

  由于国内网络原因,kubernetes的镜像托管在google云上,无法直接下载,所以直接把把镜像搞下来有个技术大牛把gcr.io的镜像每天同步到https://github.com/anjia0532/gcr.io_mirror这个站点,因此,如果需要用到gcr.io的镜像,可以执行如下的脚本进行镜像拉取

 

[root@k8s-1 yum.repos.d]#  vim pullimages.sh

#!/bin/bash
images=(kube-proxy-amd64:v1.11.1 kube-scheduler-amd64:v1.11.1 kube-controller-manager-amd64:v1.11.1
kube-apiserver-amd64:v1.11.1 etcd-amd64:3.2.18 coredns:1.1.3 pause:3.1 )
for imageName in ${images[@]} ; do
docker pull anjia0532/google-containers.$imageName
docker tag anjia0532/google-containers.$imageName k8s.gcr.io/$imageName
docker rmi anjia0532/google-containers.$imageName
done
[root@k8s-1 yum.repos.d]# sh pullimages.sh

  kubernetes集群不允许开启swap

[root@k8s-1 yum.repos.d]# vi /etc/fstab

#
# /etc/fstab
# Created by anaconda on Wed May 8 12:34:12 2019
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root / xfs defaults 0 0
UUID=6c895b50-de9d-4a3e-8a25-3867ac58f21c /boot xfs defaults 0 0
#/dev/mapper/centos-swap swap swap defaults 0 0 永久禁用 [root@k8s-1 yum.repos.d]# swapoff -a 临时关闭,当前生效

  编写kubeadm.yaml;kubeadm 1.14 配置文件

[root@k8s-1 yum.repos.d]# cd
[root@k8s-1 ~]# vim kubeadm.yaml apiVersion: kubeadm.k8s.io/v1beta1
kind: ClusterConfiguration
controllerManager:
extraArgs:
horizontal-pod-autoscaler-use-rest-clients: "true"
horizontal-pod-autoscaler-sync-period: "10s"
node-monitor-grace-period: "10s"
apiServer:
extraArgs:
runtime-config: "api/all=true"
kubernetesVersion: "stable-1.14"

  启动

[root@k8s-1 ~]# kubeadm init --config kubeadm.yaml

  这样就可以完成 Kubernetes Master 的部署了,这个过程只需要几分钟,部署完成后,kubeadm 会生成一行指令:

kubeadm join 192.168.183.7:6443 --token 18ov5i.7l91ujayrn6x29d1 \
--discovery-token-ca-cert-hash sha256:5914bfca1399d70664a90ef0d80c8aa776e1b2a5aa203b30613131e47808149c

  配置kubectl与apiserver的认证

[root@k8s-1 ~]# mkdir -p $HOME/.kube
[root@k8s-1 ~]# sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
[root@k8s-1 ~]# sudo chown $(id -u):$(id -g) $HOME/.kube/config

  检查健康

[root@k8s-1 ~]# kubectl get cs
NAME STATUS MESSAGE ERROR
scheduler Healthy ok
controller-manager Healthy ok
etcd-0 Healthy {"health":"true"}

  检查状态

[root@k8s-1 ~]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
k8s-1 NotReady master 22m v1.14.1

部署网络插件

[root@k8s-1 ~]# kubectl apply -f https://git.io/weave-kube-1.6
serviceaccount/weave-net created
clusterrole.rbac.authorization.k8s.io/weave-net created
clusterrolebinding.rbac.authorization.k8s.io/weave-net created
role.rbac.authorization.k8s.io/weave-net created
rolebinding.rbac.authorization.k8s.io/weave-net created
daemonset.extensions/weave-net created

  查看状态

[root@k8s-1 ~]# kubectl get pods -n kube-system
NAME READY STATUS RESTARTS AGE
coredns-fb8b8dccf-bhst6 1/1 Running 0 28m
coredns-fb8b8dccf-mtmsl 1/1 Running 0 28m
etcd-k8s-1 1/1 Running 0 27m
kube-apiserver-k8s-1 1/1 Running 0 27m
kube-controller-manager-k8s-1 1/1 Running 0 27m
kube-proxy-ww2kz 1/1 Running 0 28m
kube-scheduler-k8s-1 1/1 Running 0 27m
weave-net-mg6m4 2/2 Running 0 69s

  

其中,为节点打上“污点”(Taint)的命令是:

[root@k8s-1 ~]# kubectl taint nodes --all node-role.kubernetes.io/master-
node/k8s-1 untainted

  可视化插件,下载镜像  参考:https://github.com/kubernetes/dashboard

[root@k8s-1 ~]# wget https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.1/src/deploy/recommended/kubernetes-dashboard.yaml
--2019-05-10 11:59:19-- https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.1/src/deploy/recommended/kubernetes-dashboard.yaml
正在解析主机 raw.githubusercontent.com (raw.githubusercontent.com)... 151.101.0.133, 151.101.64.133, 151.101.128.133, ...
正在连接 raw.githubusercontent.com (raw.githubusercontent.com)|151.101.0.133|:443... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:4577 (4.5K) [text/plain]
正在保存至: “kubernetes-dashboard.yaml” 100%[====================================================================================================================================================================================================================================>] 4,577 --.-K/s 用时 0s 2019-05-10 11:59:20 (32.5 MB/s) - 已保存 “kubernetes-dashboard.yaml” [4577/4577])

  

  

利用kubeadm快速部署k8s的更多相关文章

  1. 通过kubeadm快速部署K8S集群

    kubeadm是官方社区推出的一个用于快速部署kubernetes集群的工具. 这个工具能通过两条指令完成一个kubernetes集群的部署: # 创建一个 Master 节点 $ kubeadm i ...

  2. 利用kubeadm快速部署 kubernetes 集群

    结合一下两个教程 https://www.cnblogs.com/along21/p/10303495.html 链接:https://pan.baidu.com/s/1O_pcywfso4VFOsF ...

  3. 使用kubeadm快速部署一套K8S集群

    一.Kubernetes概述 1.1 Kubernetes是什么 Kubernetes是Google在2014年开源的一个容器集群管理系统,Kubernetes简称K8S. K8S用于容器化应用程序的 ...

  4. Kubernetes探索学习001--Centos7.6使用kubeadm快速部署Kubernetes集群

    Centos7.6使用kubeadm快速部署kubernetes集群 为什么要使用kubeadm来部署kubernetes?因为kubeadm是kubernetes原生的部署工具,简单快捷方便,便于新 ...

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

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

  6. 通过kubeadm工具部署k8s集群

    1.概述 kubeadm是一工具箱,通过kubeadm工具,可以快速的创建一个最小的.可用的,并且符合最佳实践的k8s集群. 本文档介绍如何通过kubeadm工具快速部署一个k8s集群. 2.主机规划 ...

  7. 菜鸟系列k8s——快速部署k8s集群

    快速部署k8s集群 1. 安装Rancher Rancher是业界唯一完全开源的企业级容器管理平台,为企业用户提供在生产环境中落地使用容器所需的一切功能与组件. Rancher2.0基于Kuberne ...

  8. 使用RKE快速部署k8s集群

    一.环境准备 1.1环境信息 IP地址 角色 部署软件 10.10.100.5 K8s Master Etcd.Control 10.10.100.17 K8s Worker1 Worker 10.1 ...

  9. 利用Docker快速部署Mysql

    写在前面 我又来更新了~~~,今天内容较少,主要是利用Docker快速部署Mysql和初始化数据 利用Docker下载Mysql 简洁明了,在命令提示符中输入 docker pull mysql:8. ...

随机推荐

  1. [Xcode 实际操作]九、实用进阶-(5)使用正则表达式判断格式是否正确

    目录:[Swift]Xcode实际操作 本文将演示使用正则表达式判断邮箱的格式是否正确. 在项目导航区,打开视图控制器的代码文件[ViewController.swift] import UIKit ...

  2. app发布证书、真机调试证书、测试证书、推送证书详细过程

    原文网址: http://www.cnblogs.com/cxbblog/p/4028159.html 一:发布证书 遵旨:哪个开发者的哪台电脑要发布哪个app (这句话可以多读几遍) 通过上边的遵旨 ...

  3. w3c网址和标准化过程

  4. C#基础之方法

    方法组成为: public void Fun(string name) { 代码块 } 1.方法的访问级别:修饰符,即上边的Public 2.返回类型:方法是否具有返回值,上边方法无返回值即为void ...

  5. flask_之参数传递

    参数篇 request接收数据 request对象 method:当前请求方法(POST,GET等) url:当前链接地址 path:当前链接的路径 environ:潜在的WSGI环境 headers ...

  6. UVa10375:选择与除法(唯一分解定理)

    The binomial coefficient C(m,n) is defined as Given four natural numbers p, q, r, and s, compute the th ...

  7. 116 Populating Next Right Pointers in Each Node 每个节点的右向指针

    给定一个二叉树    struct TreeLinkNode {      TreeLinkNode *left;      TreeLinkNode *right;      TreeLinkNod ...

  8. 安装gnvm (windows下nodejs版本管理工具)

    一些写在前面的话,为什么装这个?前两天看avalon视频的时候,里面有介绍去哪儿的前端构建工具fekit.我这人吧,好奇心特别强,就打算安装用用看.在安装时它提示要求node版本0.8.x,所以我选择 ...

  9. 使用Yeoman 创建 angular应用

    一.安装 Yeoman npm install yo -g 如果提示当前nodejs版本和npm版本太低,先升级下再安装yeoman. 安装成功后,默认只有webapp和Mocha这两个生成器. 二. ...

  10. jQuery height() innerHeight() outerHight() width() innerWidth() outerWidth()源码解读

    在第二层each,传入的对象以height举例是这样的,{padding:innerHeight,content:height,"":outerHeight} 对它遍历调用func ...