1、环境介绍:

centos 7.4.1708 关闭selinux和iptable,环境很重要!

主机

ip地址

cpu核数

内存

swap

host解析

k8s-master

10.0.0.11

2+

1G+

关闭

需要

k8s-node1

10.0.0.12

1+

1G+

关闭

需要

温馨提示:本文中以有......为底色的命令,都需要执行

2、k8s-master节点安装

第一步:安装docker

yum install -y yum-utils device-mapper-persistent-data lvm2

wget -O /etc/yum.repos.d/docker-ce.repo https://download.docker.com/linux/centos/docker-ce.repo

sed -i 's+download.docker.com+mirrors.tuna.tsinghua.edu.cn/docker-ce+' /etc/yum.repos.d/docker-ce.repo

yum install docker-ce -y

systemctl enable docker.service

systemctl start docker.service

第二步:安装kubeadm和kubelet

a:添加k8s的yum源(目前仅发现阿里云有yum源)

cat <<EOF > /etc/yum.repos.d/kubernetes.repo

[kubernetes]

name=Kubernetes

baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64

enabled=1

gpgcheck=1

repo_gpgcheck=1

gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg

EOF

b:安装kubeadm和kubelet

yum install -y kubelet kubeadm kubectl ipvsadm

#ipvsadm是lvs的管理工具,新版k8s支持使用lvs做内部的负载均衡

c:内核优化

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

net.bridge.bridge-nf-call-ip6tables = 1

net.bridge.bridge-nf-call-iptables = 1

vm.swappiness=0

EOF

sysctl --system

systemctl enable kubelet.service

第三步:使用kubeadm初始化k8s的master节点

kubeadm init --apiserver-advertise-address=10.0.0.11 --image-repository registry.aliyuncs.com/google_containers --service-cidr=10.254.0.0/16 --pod-network-cidr=172.16.0.0/16

#这一步很容易失败

成功会有如下类似的输出:

Your Kubernetes master has initializedsuccessfully!

To start using your cluster, you need to run thefollowing as a regular user:

mkdir -p$HOME/.kube

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

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

You should now deploy a pod network to the cluster.

Run "kubectl apply -f [podnetwork].yaml"with one of the options listed at:

https://kubernetes.io/docs/concepts/cluster-administration/addons/

You can now join any number of machines by runningthe following on each node

as root:

kubeadm join 10.0.0.11:6443 --token 53h5el.u4oy0hxukuks9n3d --discovery-token-ca-cert-hash sha256:f0514233ef67c5a1da08661cf61ea78c95b0e72da72a8c80f452904ce581c9ce

首先按照提示拷贝下k8s的config文件

mkdir -p $HOME/.kube

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

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

其次把kubeadm join 10.0.0.11:6443 --token 53h5el.u4oy0hxukuks9n3d --discovery-token-ca-cert-hash sha256:f0514233ef67c5a1da08661cf61ea78c95b0e72da72a8c80f452904ce581c9ce的信息保存好,后期利用kubeadm添加node节点需要用到

检查k8s集群的状态:

kubectl get cs

第四步:为k8s配置网络

查看k8s的节点

kubectl get nodes

发现它的状态为NotReady,这是因为我们还没有为k8s按照网络插件,网络插件有多种方案,这里我们使用flannel.

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

vim kube-flannel.yml

76行修改为:"Network": "172.16.0.0/16", #kubeadm初始化的时候,我们用的--pod-network-cidr=172.16.0.0/16,网段需要修改为一致。

103行下面增加如下3行:

- key: node.kubernetes.io/not-ready

operator: Exists

effect: NoSchedule

110行和124行:registry.cn-shanghai.aliyuncs.com/gcr-k8s/flannel:v0.10.0-amd64 #网络原因,修改为国内地址,下载更快

130行增加一行:

- --iface=eth0 #根据自己的物理网卡名称来

kubectl apply -f kube-flannel.yml

kubectl get pods --namespace kube-system

#主要是看看kube-flannel-ds开头的pod是否已经Running,完成了,在往下走

kubectl get nodes

#这时NotReady状态已变为Ready,至此k8s master节点完成

3、k8s-node1节点安装

第一步:安装docker

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

yum install -y yum-utils device-mapper-persistent-data lvm2

wget -O /etc/yum.repos.d/docker-ce.repo https://download.docker.com/linux/centos/docker-ce.repo

sed -i 's+download.docker.com+mirrors.tuna.tsinghua.edu.cn/docker-ce+' /etc/yum.repos.d/docker-ce.repo

yum install docker-ce -y

systemctl enable docker.service

systemctl start docker.service

第二步:安装kubelet kubeadm

#a:添加k8s的yum源(目前仅发现阿里云有yum源)

cat <<EOF > /etc/yum.repos.d/kubernetes.repo

[kubernetes]

name=Kubernetes

baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64

enabled=1

gpgcheck=1

repo_gpgcheck=1

gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg

EOF

#b:安装kubeadm和kubelet

yum install -y kubelet kubeadm kubectl ipvsadm

#c:内核优化

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

net.bridge.bridge-nf-call-ip6tables = 1

net.bridge.bridge-nf-call-iptables = 1

vm.swappiness=0

EOF

sysctl --system

systemctl enable kubelet.service

第三步:使用kubeadm加入集群

kubeadm join 10.0.0.11:6443 --token 53h5el.u4oy0hxukuks9n3d --discovery-token-ca-cert-hash sha256:f0514233ef67c5a1da08661cf61ea78c95b0e72da72a8c80f452904ce581c9ce

#这个命令如果当时没保存,可以在master节点上执行下面的命令查看

kubeadm token create --print-join-command

等待一段时间以后,docker把kube-proxy、flannel和pause的镜像都pull下来以后,回到master节点继续

4、k8s集群使用之前:

a:为新增的node节点添加角色

[root@k8s-master ~]# kubectl get nodes

NAME STATUS ROLES AGE VERSION

k8s-master Ready master 4h21m v1.13.3

k8s-node1 Ready <none> 77m v1.13.3

#这时我们发现新增的k8s-node1没有角色

给k8s-node1添加角色

kubectl label nodes k8s-node1 node-role.kubernetes.io/node=

再次查看

[root@k8s-master ~]# kubectl get nodes

NAME STATUS ROLES AGE VERSION

k8s-master Ready master 4h21m v1.13.3

k8s-node1 Ready node 77m v1.13.3

b:kubectl命令行自动补全

默认情况下kubectl命令不能补全,操作很不方便

添加kubectl自动补全方法:

source <(kubectl completion bash)

效果:

[root@k8s-master ~]# kubectl

annotate certificate create explain plugin set

api-resources cluster-info delete expose port-forward taint

api-versions completion describe get proxy top

apply config diff label replace uncordon

attach convert drain logs rollout version

auth cordon edit options run wait

autoscale cp exec patch scale

5、k8s集群运行一个nginx容器并被外界访问

kubectl create deployment nginx --image=nginx:1.14

kubectl expose deployment nginx --port=80 --type=NodePort

查看nginx的方法端口,从下图可以看出我的端口是30875

浏览器测试访问http://10.0.0.11:30875

kubeadm安装k8s1.13的更多相关文章

  1. kubeadm安装kubernetes-v1.13.1

    kubeadm安装kubernetes-v1.13.1 centos虚拟机使用kubeadm安装k8s-v1.13.1. 机器信息如下: 主机名 ip master 192.168.239.200 n ...

  2. 高可用安装k8s1.13.0 --不能带cavisor、不能加cni ,带上这两个总是报错,kubelet无法启动

    高可用安装k8s1.13.0 --不能带cavisor,总是报错,kubelet无法启动

  3. CentOS 7.6 使用kubeadm安装Kubernetes 13

    实验环境:VMware Fusion 11.0.2 操作系统:CentOS 7.6 主机名 IP地址 CPU 内存 k8s2m 172.16.183.151 2核 4G k8s2n 172.16.18 ...

  4. kubernetes 实践三:使用kubeadm安装k8s1.16.0

    环境版本说明: 三台vmware虚拟机,系统版本CentOS7.6. Kubernetes 1.16.0,当前最新版. flannel v0.11 docker 18.09 使用kubeadm可以简单 ...

  5. 使用kubeadm 安装 kubernetes 1.15.1

    简介: Kubernetes作为Google开源的容器运行平台,受到了大家的热捧.搭建一套完整的kubernetes平台,也成为试用这套平台必须迈过的坎儿.kubernetes1.5版本以及之前,安装 ...

  6. Centos7 使用 kubeadm 安装Kubernetes 1.13.3

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

  7. k8s1.13.3安装istio(helm方式)

    官方文档:https://istio.io/zh/docs/setup/kubernetes/install/helm/ 一.环境信息 centos7 k8s1.13.3 主机名 ip cpu ram ...

  8. kubernetes实战(二十五):kubeadm 安装 高可用 k8s v1.13.x

    1.系统环境 使用kubeadm安装高可用k8s v.13.x较为简单,相比以往的版本省去了很多步骤. kubeadm安装高可用k8s v.11 和 v1.12 点我 主机信息 主机名 IP地址 说明 ...

  9. 通过 Kubeadm 安装 K8S 与高可用,版本1.13.4

    环境介绍: CentOS: 7.6 Docker: 18.06.1-ce Kubernetes: 1.13.4 Kuberadm: 1.13.4 Kuberlet: 1.13.4 Kuberctl: ...

随机推荐

  1. 阶段3 3.SpringMVC·_07.SSM整合案例_05.ssm整合之Spring整合SpringMVC的框架

    点击超连接,执行controller里面的方法 那么就需要在Controller里面定义Service对象,就需要依赖注入进来. 启动tomcat服务器,web.xml里面的前端控制器会帮我加载spr ...

  2. 阶段3 3.SpringMVC·_04.SpringMVC返回值类型及响应数据类型_3 响应之返回值是void类型

    定义先的标签 返回void 测试默认的跳转 虽然是404但是方法执行了. 默认请求了 testVoid.jsp这个页面.请求路径叫什么 就访问哪个jsp页面. 使用request请求转发 抛出的异常 ...

  3. FICO相关号码范围IMG设定

    一.定义会计文件号码范围——FBN1 二.定义总账检视的文件号码范围——FAGL_DOCNR 三.指派客户科目群组的号码范围 四.定义供应商号码范围——XKN1  五.维护订单号码范围——KONK

  4. spring boot configuration annotation processor not found in classpath

    <dependency> <groupId> org.springframework.boot </groupId> <artifactId> spri ...

  5. 基于axis的WebService的案例

    1.axis axis是Apache旗下产品,它是一个webservice容器,可被用于创建.部署和运行webservice.网址http://axis.apache.org/,网址上的部分截图如下. ...

  6. EMA指数平滑移动平均

    英文参考:http://www.incrediblecharts.com/indicators/exponential_moving_average.php Exponential moving av ...

  7. NOIp2013D2T3 华容道【搜索&图论-最短路】

    题目传送门 暴力搜索 看到这道题的第一反应就是直接上$bfs$啦,也没有想到什么更加优秀的算法. 然后就是$15$分钟打了$70$分,有点震惊,纯暴力诶,这么多白给分嘛,太划算了,这可是$D2T3$诶 ...

  8. LINQ查询表达式详解(1)——基本语法、使用扩展方法和Lambda表达式简化LINQ查询

    简介 使用线程的主要原因:应用程序中一些操作需要消耗一定的时间,比如对文件.数据库.网络的访问等等,而我们不希望用户一直等待到操作结束,而是在此同时可以进行一些其他的操作.  这就可以使用线程来实现. ...

  9. 统计学习方法 | 第1章 统计学习方法概论 | Scipy中的Leastsq()

    Scipy是一个用于数学.科学.工程领域的常用软件包,可以处理插值.积分.优化.图像处理.常微分方程数值解的求解.信号处理等问题.它用于有效计算Numpy矩阵,使Numpy和Scipy协同工作,高效解 ...

  10. PTA(Basic Level)1036.跟奥巴马一起编程

    美国总统奥巴马不仅呼吁所有人都学习编程,甚至以身作则编写代码,成为美国历史上首位编写计算机代码的总统.2014 年底,为庆祝"计算机科学教育周"正式启动,奥巴马编写了很简单的计算机 ...