利用kubeadm快速部署k8s
内外网络互通
- [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的更多相关文章
- 通过kubeadm快速部署K8S集群
kubeadm是官方社区推出的一个用于快速部署kubernetes集群的工具. 这个工具能通过两条指令完成一个kubernetes集群的部署: # 创建一个 Master 节点 $ kubeadm i ...
- 利用kubeadm快速部署 kubernetes 集群
结合一下两个教程 https://www.cnblogs.com/along21/p/10303495.html 链接:https://pan.baidu.com/s/1O_pcywfso4VFOsF ...
- 使用kubeadm快速部署一套K8S集群
一.Kubernetes概述 1.1 Kubernetes是什么 Kubernetes是Google在2014年开源的一个容器集群管理系统,Kubernetes简称K8S. K8S用于容器化应用程序的 ...
- Kubernetes探索学习001--Centos7.6使用kubeadm快速部署Kubernetes集群
Centos7.6使用kubeadm快速部署kubernetes集群 为什么要使用kubeadm来部署kubernetes?因为kubeadm是kubernetes原生的部署工具,简单快捷方便,便于新 ...
- [转帖]centos7 使用kubeadm 快速部署 kubernetes 国内源
centos7 使用kubeadm 快速部署 kubernetes 国内源 https://www.cnblogs.com/qingfeng2010/p/10540832.html 前言 搭建kube ...
- 通过kubeadm工具部署k8s集群
1.概述 kubeadm是一工具箱,通过kubeadm工具,可以快速的创建一个最小的.可用的,并且符合最佳实践的k8s集群. 本文档介绍如何通过kubeadm工具快速部署一个k8s集群. 2.主机规划 ...
- 菜鸟系列k8s——快速部署k8s集群
快速部署k8s集群 1. 安装Rancher Rancher是业界唯一完全开源的企业级容器管理平台,为企业用户提供在生产环境中落地使用容器所需的一切功能与组件. Rancher2.0基于Kuberne ...
- 使用RKE快速部署k8s集群
一.环境准备 1.1环境信息 IP地址 角色 部署软件 10.10.100.5 K8s Master Etcd.Control 10.10.100.17 K8s Worker1 Worker 10.1 ...
- 利用Docker快速部署Mysql
写在前面 我又来更新了~~~,今天内容较少,主要是利用Docker快速部署Mysql和初始化数据 利用Docker下载Mysql 简洁明了,在命令提示符中输入 docker pull mysql:8. ...
随机推荐
- Python及Pycharm安装详细教程
参考:http://blog.csdn.net/qq_29883591/article/details/52664478 首先我们来安装python 1.首先进入网站下载:点击打开链接(或自己输入网址 ...
- HDU1010 Tempter of the Bone【小狗是否能逃生----DFS奇偶剪枝(t时刻恰好到达)】
Tempter of the Bone Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u ...
- 利用jstack定位典型性能问题实例
此文已由作者朱笑天授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 问题的起因是笔者在一轮性能测试的中,发现某协议的响应时间很长,去观察哨兵监控里的javamethod监控可以 ...
- 2014-7-7 NOIP模拟赛(图论)
1.无线通讯网(wireless.pas/cpp/c) [题目描述] 国防部计划用无线网络连接若干个边防哨所.2种不同的通讯技术用来搭建无线网络:每个边防哨所都要配备无线电收发器:有一些哨所还可以增配 ...
- 【Luogu P1502】 窗口的星星
→传送窗口 (复制一下题面好了~) 题目背景 小卡买到了一套新房子,他十分的高兴,在房间里转来转去. 题目描述 晚上,小卡从阳台望出去,“哇~~~~好多星星啊”,但他还没给其他房间设一个窗户,天真的小 ...
- cmd - 使用curl命令的注意点
前言 最近在cmd中使用curl命令来测试rest api,发现有不少问题,这里记录一下. 在cmd中使用curl命令的注意事项 json不能由单引号包括起来 json数据里的双引号要用反斜杠\转义 ...
- [Python]IndentationError: unindent does not match any outer indentation level
这个是缩进没对齐 可能是混用了tab与空格,到这里显示空白就可以看出来.
- 使用JMeter上传文件
使用JMeter录制文件上载 创建JMeter测试计划的最简单方法是使用HTTP(s)测试脚本记录器记录相应的请求.JMeter充当代理服务器,捕获Web浏览器与被测应用程序(AUT)之间的所有流量, ...
- flask_之参数传递
参数篇 request接收数据 request对象 method:当前请求方法(POST,GET等) url:当前链接地址 path:当前链接的路径 environ:潜在的WSGI环境 headers ...
- mybatis(错误) 项目启动时报“Result Maps collection already contains value forxxx”的解决方案
使用逆向工程生成代码时,一定要将原来的代码删除干净,如果覆盖的话,不是真正的覆盖,在原来的代码上增加重复的代码,导致出错