kubeadm安装kubernetes-v1.13.1

centos虚拟机使用kubeadm安装k8s-v1.13.1。

机器信息如下:

主机名 ip
master 192.168.239.200
node1 192.168.239.201
node2 192.168.239.202

环境准备

设置主机名

192.168.239.200 master
192.168.239.201 node1
192.168.239.202 node2

关闭swap

swapoff -a
sed -i 's/.*swap.*/#&/' /etc/fstab

关闭防火墙

systemctl stop firewalld
systemctl disable firewalld

关闭selinux

setenforce 0

配置相关参数

net.ipv4.ip_forward=1
net.bridge.bridge-nf-call-iptables=1
net.bridge.bridge-nf-call-ip6tables=1
vm.swappiness=0 sysctl -p

docker安装

安装docker的yum源

yum-config-manager --add-repo  https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

查看docker版本

yum list docker-ce.x86_64  --showduplicates |sort -r
docker-ce.x86_64 3:18.09.0-3.el7 docker-ce-stable
docker-ce.x86_64 18.06.1.ce-3.el7 docker-ce-stable
docker-ce.x86_64 18.06.1.ce-3.el7 @docker-ce-stable
docker-ce.x86_64 18.06.0.ce-3.el7 docker-ce-stable
docker-ce.x86_64 18.03.1.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 18.03.0.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 17.12.1.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 17.12.0.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 17.09.1.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 17.09.0.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 17.06.2.ce-1.el7.centos docker-ce-stable

安装docker

yum install -y --setopt=obsoletes=0 docker-ce-18.06.1.ce-3.el7

systemctl start docker
systemctl enable docker

安装kubeadm等

配置阿里云源

vim /etc/yum.repos.d/kubernetes.repo

[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=0

node结点不用安装kubectl

yum install -y kubelet kubeadm kubectl

systemctl enable kubelet
systemctl start kubelet

安装master结点

国内无法访问google的镜像源,需要自己生成放到docker hub。

如何自己生成镜像放到docker hub请看Docker Hub上自动制做Docker镜像

下载自己生成的镜像源

vim pull-kube-image.sh

#!/bin/bash
images=(kube-scheduler:v1.13.1
kube-proxy:v1.13.1
kube-controller-manager:v1.13.1
kube-apiserver:v1.13.1
pause:3.1
coredns:1.2.6
etcd:3.2.24)
for imagename in ${images[@]}; do
docker pull mathlsj/$imagename
docker tag mathlsj/$imagename k8s.gcr.io/$imagename
docker rmi mathlsj/$imagename
done docker pull quay.io/coreos/flannel:v0.10.0-amd64

查看镜像源

docker images 

REPOSITORY                              TAG                 IMAGE ID            CREATED             SIZE
k8s.gcr.io/kube-scheduler v1.13.1 9bf9c8fb24af 7 days ago 79.6MB
k8s.gcr.io/kube-proxy v1.13.1 6fbfd87ede1f 7 days ago 80.2MB
k8s.gcr.io/kube-controller-manager v1.13.1 f5e8b3a9a6bf 7 days ago 146MB
k8s.gcr.io/kube-apiserver v1.13.1 14219a09a24c 7 days ago 181MB
k8s.gcr.io/pause 3.1 68112c580347 8 days ago 742kB
k8s.gcr.io/coredns 1.2.6 75ca836e805a 8 days ago 40MB
k8s.gcr.io/etcd 3.2.24 c10486f7ea38 9 days ago 220MB
k8s.gcr.io/kubernetes-dashboard-amd64 v1.8.3 0c60bcf89900 11 months ago 102MB
quay.io/coreos/flannel v0.10.0-amd64 f0fad859c909 11 months ago 44.6MB

节点初始化

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

看到Your Kubernetes master has initialized successfully!就表示初始化成功了。

要使用kubectl需要以下命令

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

查看初始化情况

kubectl get nodes

NAME     STATUS   ROLES    AGE     VERSION
master Ready master 3d1h v1.13.2 kubectl get pod --all-namespaces NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system coredns-86c58d9df4-2nhd5 0/1 Pending 0 35m
kube-system coredns-86c58d9df4-l2wt9 0/1 Pending 0 35m
kube-system etcd-master 1/1 Running 0 34m
kube-system kube-apiserver-master 1/1 Running 0 34m
kube-system kube-controller-manager-master 1/1 Running 0 34m
kube-system kube-proxy-fqjvp 1/1 Running 0 35m
kube-system kube-scheduler-master 1/1 Running 0 34m

安装flannel网络

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

安装node结点

在安装前,先完成前面的环境准备,docker安装和安装kubeadm等。

下载镜像源

vim pull-kube-image.sh

#!/bin/bash
images=(kube-proxy:v1.13.1
pause:3.1
coredns:1.2.6)
for imagename in ${images[@]}; do
docker pull mathlsj/$imagename
docker tag mathlsj/$imagename k8s.gcr.io/$imagename
docker rmi mathlsj/$imagename
done docker pull quay.io/coreos/flannel:v0.10.0-amd64

查看镜像

docker images

REPOSITORY                              TAG                 IMAGE ID            CREATED             SIZE
k8s.gcr.io/kube-proxy v1.13.1 6fbfd87ede1f 7 days ago 80.2MB
k8s.gcr.io/pause 3.1 68112c580347 8 days ago 742kB
k8s.gcr.io/coredns 1.2.6 75ca836e805a 8 days ago 40MB
quay.io/coreos/flannel v0.10.0-amd64 f0fad859c909 11 months ago 44.6MB

查看token,在master结点上看

kubeadm token list

TOKEN                     TTL       EXPIRES                     USAGES                   DESCRIPTION                                                EXTRA GROUPS
km7adp.vu3fugeopqgyj8rk 23h 2019-01-15T09:22:48-05:00 authentication,signing The default bootstrap token generated by 'kubeadm init'. system:bootstrappers:kubeadm:default-node-token

加入节点

kubeadm join --discovery-token km7adp.vu3fugeopqgyj8rk --discovery-token-ca-cert-hash sha256:4e05312726ad565688309951d6c8afb2965e1ce80f736d0123b4363581fcb106 192.168.239.200:6443

在master上查看状态

kubectl get nodes

NAME     STATUS   ROLES    AGE   VERSION
master Ready master 92m v1.13.2
node1 Ready <none> 41m v1.13.2 kubectl get pods --all-namespaces -o wide NAMESPACE NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
kube-system coredns-86c58d9df4-2nhd5 1/1 Running 0 84m 10.244.1.2 node1 <none> <none>
kube-system coredns-86c58d9df4-l2wt9 1/1 Running 0 84m 10.244.1.3 node1 <none> <none>
kube-system etcd-master 1/1 Running 0 83m 192.168.239.200 master <none> <none>
kube-system kube-apiserver-master 1/1 Running 0 83m 192.168.239.200 master <none> <none>
kube-system kube-controller-manager-master 1/1 Running 0 83m 192.168.239.200 master <none> <none>
kube-system kube-flannel-ds-amd64-786l8 1/1 Running 0 16m 192.168.239.200 master <none> <none>
kube-system kube-flannel-ds-amd64-pc4fp 1/1 Running 0 16m 192.168.239.201 node1 <none> <none>
kube-system kube-proxy-fqjvp 1/1 Running 0 84m 192.168.239.200 master <none> <none>
kube-system kube-proxy-skndl 1/1 Running 0 33m 192.168.239.201 node1 <none> <none>
kube-system kube-scheduler-master 1/1 Running 0 83m 192.168.239.200 master <none> <none>

参考文档

kubeadm安装kubernetes-v1.13.1的更多相关文章

  1. Centos7 使用 kubeadm 安装Kubernetes 1.13.3

    目录 目录 什么是Kubeadm? 什么是容器存储接口(CSI)? 什么是CoreDNS? 1.环境准备 1.1.网络配置 1.2.更改 hostname 1.3.配置 SSH 免密码登录登录 1.4 ...

  2. 使用 kubeadm 安装 kubernetes v1.16.0

    近日通过kubeadm 安装 kubernetes v1.16.0,踩过不少坑,现记录下安装过程. 安装环境: 系           统:CentOS Linux release 7.6 Docke ...

  3. kubeadm安装kubernetes V1.11.1 集群

    之前测试了离线环境下使用二进制方法安装配置Kubernetes集群的方法,安装的过程中听说 kubeadm 安装配置集群更加方便,因此试着折腾了一下.安装过程中,也有一些坑,相对来说操作上要比二进制方 ...

  4. 使用kubeadm安装kubernetes v1.14.1

    使用kubeadm安装kubernetes v1.14.1 一.环境准备 操作系统:Centos 7.5 ​ ⼀ 一台或多台运⾏行行着下列列系统的机器器: ​ Ubuntu 16.04+ ​ Debi ...

  5. [转] CentOS7 用 kubeadm 快速安装 Kubernetes v1.13.4 最新教程

    [转 + 编辑][From] https://www.jianshu.com/p/4d61f18bc62d  , https://www.jianshu.com/p/5ff6e26d1912 时间是2 ...

  6. kubeadm安装kubernetes 1.13.1集群完整部署记录

    k8s是什么 Kubernetes简称为k8s,它是 Google 开源的容器集群管理系统.在 Docker 技术的基础上,为容器化的应用提供部署运行.资源调度.服务发现和动态伸缩等一系列完整功能,提 ...

  7. 使用kubeadm安装Kubernetes v1.10

    关于K8S: Kubernetes是Google开源的容器集群管理系统.它构建于docker技术之上,为容器化的应用提供资源调度.部署运行.服务发现.扩 容缩容等整一套功能,本质上可看作是基于容器技术 ...

  8. 使用kubeadm部署Kubernetes v1.13.3

    kubeadm是官方社区推出的一个用于快速部署kubernetes集群的工具. 这个工具能通过两条指令完成一个kubernetes集群的部署: 1. 安装要求 在开始之前,部署Kubernetes集群 ...

  9. kubeadm安装Kubernetes V1.10集群详细文档

    https://www.kubernetes.org.cn/3808.html?tdsourcetag=s_pcqq_aiomsg 1:服务器信息以及节点介绍 系统信息:centos1708 mini ...

  10. K8S学习笔记之二进制部署Kubernetes v1.13.4 高可用集群

    0x00 概述 本次采用二进制文件方式部署,本文过程写成了更详细更多可选方案的ansible部署方案 https://github.com/zhangguanzhang/Kubernetes-ansi ...

随机推荐

  1. 【JavaScript】事件捕获、事件冒泡与事件委托

    2018年12月18日 最近在学习js时,遇到了三个名词:事件捕获.事件冒泡.事件委托. 一.事件捕获和事件冒泡 事件捕获和事件冒泡是为了解决网页中的事件流(事件发生的顺序)而提出的概念. 事件捕获是 ...

  2. NN元数据工作机制

    HDFS的实现思路:1.HDFS通过分布式集群来存储文件,为客户端提供便捷的访问方式2.文件存储到HDFS集群去的时候,被切分为block3.HDFS存放在若干datanode节点 上4.HDFS文件 ...

  3. DIJKSTRA 临接表

    #include <iostream> #include <algorithm> #include <cmath> #include <cstdio> ...

  4. kubernetes 源码安装部署 1.12

    一. 前期准备 参考文档 https://jimmysong.io/kubernetes-handbook/practice/create-tls-and-secret-key.html 1. 安装g ...

  5. 指定Gpu range系列函数

    tensorflow指定GPU训练 import os os.environ[CUDA_VISIABLE_DEVICES] = '0,1'记住DEVICES是复数 range()返回的是range o ...

  6. 【ubuntu】-桌面假死的解决办法

    第一,通过ctrl+art+F1(1-6),启动本地终端 切换到了字符界面tty1 第二,查询进程,ps -e |grep tty7 得到tty7的pid号 第三,杀死tty7的进程 , kill 9 ...

  7. 原生JS动态添加和删除类

    原生JS动态添加和删除类 由于需要, 给按钮组监听点击事件(要求用事件委托),当有一个按钮被点击时,相应的给该按钮添加一个类(激活类),其他没有点击的按钮就要移出该类 添加和和删除类有三种方法 首先等 ...

  8. 20175307《Java程序设计》第5周学习总结

    教材内容总结 6.1  接口 1接口声明 接口使用关键字interface来进行声明 eg:interface  接口的名字 2接口体 接口体中包含常量的声明和抽象方法两部分(没有变量) 注意一定的要 ...

  9. 软件测试1gkd

        通过老师课上的讲解以及对书本和百度百科的学习,我对软件测试有如下的理解.     软件开发的最基本要求是按时.高质量地发布软件产品,而软件测试是软件质量保证的最重要的手段之一.在整个软件生命周 ...

  10. tree与GridView交互

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="OgGridView.asp ...