kubeadm方式安装kubernetes
系统: Ubuntu 18.04.2 LTS
内存: 8G
机器:
| 属性 | IP | Hostname | ssh |
| Master | 192.168.91.48 | blackray-pc | |
| node1 | 192.168.91.221 | node1-VirtualBox | node1@192.168.91.221 |
| node2 | 192.168.91.222 | node1-VirtualBox | node2@192.168.91.222 |
1 安装前准备
1.1 关闭系统swap分区(需要重启系统)
vi /etc/fstab,注释swap行的UUID信息

1.2 /etc/apt/source.list中配置阿里云k8s源
# kubeadm及kubernetes组件安装源
deb https://mirrors.aliyun.com/kubernetes/apt kubernetes-xenial main
1.3 安装kubeadm kubectl kubelet
apt-get update
apt-get install kubeadm kubelet kubectl -y
2 下载k8s需要的镜像,由于k8s.gcr.io国内访问不了,可以从docker.io上下载相同版本镜像,再重新打tag为源版本(可以先执行第三部,从报错信息中查看需要下载的镜像版本)
2.1
docker pull docker.io/mirrorgooglecontainers/kube-apiserver:v1.13.4
docker pull docker.io/mirrorgooglecontainers/kube-controller-manager:v1.13.4
docker pull docker.io/mirrorgooglecontainers/kube-scheduler:v1.13.4
docker pull docker.io/mirrorgooglecontainers/kube-proxy:v1.13.4
docker pull docker.io/mirrorgooglecontainers/pause:3.1
docker pull docker.io/mirrorgooglecontainers/etcd:3.2.24
docker pull docker.io/coredns/coredns:1.2.6
2.2 将镜像重新打tag回k8s.gcr.io
docker tag docker.io/mirrorgooglecontainers/kube-apiserver:v1.13.4 k8s.gcr.io/kube-apiserver:v1.13.4
docker tag docker.io/mirrorgooglecontainers/kube-controller-manager:v1.13.4 k8s.gcr.io/kube-controller-manager:v1.13.4
docker tag docker.io/mirrorgooglecontainers/kube-scheduler:v1.13.4 k8s.gcr.io/kube-scheduler:v1.13.4
docker tag docker.io/mirrorgooglecontainers/kube-proxy:v1.13.4 k8s.gcr.io/kube-proxy:v1.13.4
docker tag docker.io/mirrorgooglecontainers/pause:3.1 k8s.gcr.io/pause:3.1
docker tag docker.io/mirrorgooglecontainers/etcd:3.2.24 k8s.gcr.io/etcd:3.2.24
docker tag docker.io/coredns/coredns:1.2.6 k8s.gcr.io/coredns:1.2.6

3 初始化Master 使用flannel网络方案(执行第二步镜像的版本号从这一步的提示信息中获取)
3.1 kubeadm init --apiserver-advertise-address 192.168.91.48 --pod-network-cidr=10.244.0.0/16
执行完毕,在提示信息中提示工作节点如何加入集群的命令,如:
kubeadm join 192.168.91.48:6443 --token kt3n05.2kckopgl445znxir --discovery-token-ca-cert-hash sha256:34bf00baef51f48991e3eb6a9f898d2c93daf53d272d886c2b7b8417eb567f65
3.2 执行命令
sudo cp /etc/kubernetes/admin.conf $HOME/
sudo chown $(id -u):$(id -g) $HOME/admin.conf
export KUBECONFIG=$HOME/admin.conf (临时生效)
在/etc/profile文件中加入export KUBECONFIG=$HOME/admin.conf
3.3 安装flannel网络: kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
token过期(24小时过期)后可重新生成token:
kubeadm token create --ttl 0 (--ttl 0代表永不过期)
查看token: kubeadm token list
获取ca证书sha256编码hash值
openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //'
回显值:34bf00baef51f48991e3eb6a9f898d2c93daf53d272d886c2b7b8417eb567f65
新的加入命令
kubeadm join 192.168.91.48:6443 --token enzyy3.3v8g89erxgs33rzt --discovery-token-ca-cert-hash sha256:34bf00baef51f48991e3eb6a9f898d2c93daf53d272d886c2b7b8417eb567f65
4 node节点安装以下镜像(被墙,需要手动安装)
k8s.gcr.io/kube-proxy v1.13.4 fadcc5d2b066 2 weeks ago 80.3MB
k8s.gcr.io/pause 3.1 da86e6ba6ca1 15 months ago 742kB
镜像安装与第二步一致
5 工作几点加入集群,执行命令
kubeadm join 192.168.91.48:6443 --token kt3n05.2kckopgl445znxir --discovery-token-ca-cert-hash sha256:34bf00baef51f48991e3eb6a9f898d2c93daf53d272d886c2b7b8417eb567f65
6 在Master节点上查看节点状态
kubectl get node

STATUS状态值为READY时表示工作节点加入k8s集群成功并可正常工作
7 编写yaml文件,测试服务是否可正常调度(Master节点上)
nginx-service.yaml
apiVersion: v1
kind: Service
metadata:
labels:
app: nginx
name: nginx
spec:
ports:
- port: 80 #服务暴露的端口
protocol: TCP
targetPort: 80 #容器暴露的端口
nodePort: 30008 #节点暴露的端口
selector:
app: nginx
type: NodePort
---
apiVersion: apps/v1beta1
kind: Deployment
metadata:
name: nginx-deployment
spec:
replicas: 1
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx
ports:
- containerPort: 80
在yaml文件所在的工作目录执行 kubectl apply -f nginx-service.yaml

访问http://192.168.91.221:30008 或 http://192.168.91.222:30008出现nginx首页即表示正常运行

kubeadm方式安装kubernetes的更多相关文章
- 企业运维实践-还不会部署高可用的kubernetes集群?使用kubeadm方式安装高可用k8s集群v1.23.7
关注「WeiyiGeek」公众号 设为「特别关注」每天带你玩转网络安全运维.应用开发.物联网IOT学习! 希望各位看友[关注.点赞.评论.收藏.投币],助力每一个梦想. 文章目录: 0x00 前言简述 ...
- 使用kubeadm方式安装K8S
Kubeadm安装 kubeadm是Kubernetes官方提供的用于快速安装Kubernetes集群的工具,伴随Kubernetes每个版本的发布都会同步更新,kubeadm会对集群配置方面的一些实 ...
- linux(centos8):kubeadm单机安装kubernetes(kubernetes 1.18.3)
一,kubernetes安装的准备工作: 1,准备工作的各步骤请参见: https://www.cnblogs.com/architectforest/p/13141743.html 2, ma ...
- yum方式安装kubernetes
环境准备 master01 node01 node02,连通网络,修改hosts文件,确认3台主机相互解析 vim /etc/hosts 127.0.0.1 localhost localhost.l ...
- 从centos7镜像到搭建kubernetes集群(kubeadm方式安装)
在网上看了不少关于Kubernetes的视频,虽然现在还未用上,但是也是时候总结记录一下,父亲常教我的一句话:学到手的东西总有一天会有用!我也相信在将来的某一天会用到现在所学的技术.废话不多扯了... ...
- 二进制文件方式安装kubernetes集群
所有操作全部用root使用者进行,高可用一般建议大于等于3台的奇数,我们使用3台master来做高可用 练习环境说明: 参考GitHub master: kube-apiserver,kube-con ...
- [转] CentOS7 用 kubeadm 快速安装 Kubernetes v1.13.4 最新教程
[转 + 编辑][From] https://www.jianshu.com/p/4d61f18bc62d , https://www.jianshu.com/p/5ff6e26d1912 时间是2 ...
- 二进制方式安装Kubernetes 1.14.2高可用详细步骤
00.组件版本和配置策略 组件版本 Kubernetes 1.14.2 Docker 18.09.6-ce Etcd 3.3.13 Flanneld 0.11.0 插件: Coredns Dashbo ...
- 使用kubeadm安装kubernetes 1.21
文章原文 配置要求 至少2台 2核4G 的服务器 本文档中,CPU必须为 x86架构 CentOS 7.8 或 CentOS Stream 8 安装后的软件版本为 Kubernetes v1.21.x ...
随机推荐
- [原创]CI持续集成系统环境--Gitlab+Gerrit+Jenkins完整对接https://www.cnblogs.com/kevingrace/p/5651447.html
近年来,由于开源项目.社区的活跃热度大增,进而引来持续集成(CI)系统的诞生,也越发的听到更多的人在说协同开发.敏捷开发.迭代开发.持续集成和单元测试这些拉风的术语.然而,大都是仅仅听到在说而已, ...
- C#从Excel中读取数据为空
将HDR设置为YES,IMEX设置为1即可. OleDbConnection objConn = new OleDbConnection("Provider=Microsoft.ACE.OL ...
- [ppurl]从”皮皮书屋”下载电子书的姿势
(欢迎转载,转载请注明出处:http://blog.csdn.net/hcbbt/article/details/42072545) 写在前面的扯皮 为什么标题的"皮皮书屋"加上了 ...
- 图表 Chart
工作中,需要实现如下的图表,查阅了不少的资料,问了不少的人,下面对下图表的实现代码做下讲解. 实现代码: chart1.Series.Clear();//清空图表中的序列,图表中有默认的序列 //ch ...
- VC++显示文件或文件夹属性
When you select a file or folder in Explorer window, and choose 'Properties' from the menu, you get ...
- 《Node.js入门》CentOS 6.5下Node.js Web开发环境搭建笔记
近期想尝试一下英特尔的基于WebRTC协同通信开发套件,所以须要在本地搭建Node.js Web的开发測试环境. 这里讲的是CentOS 下的搭建方法.使用Windows的小伙伴请參考: <No ...
- C#封装C++DLL(特别是char*对应的string)
1.新建一个C#-Windows-类库(用于创建C#类库(.dll)的项目)类型的工程 2.对于普通C++函数 XXXX_API void cppFun(int i); 在cs代码中添加 [DllIm ...
- AndroidManifest.xml文件详解(activity)(四)
android:multiprocess 这个属性用于设置Activity的实例能否被加载到与启动它的那个组件所在的进程中,如果设置为true,则可以,否则不可以.默认值是false. 通常,一个新的 ...
- ajax 传递数组类型参数后台接收不到的问题
在做排序功能的时候需要将一个数组的数据传递到后台,(当时怎么没用json,如果用json就没有那么多的事情了),数据提交采用ajax! 先看代码 js: submitbtn: function () ...
- iOS 遍历控件
NSArray *subviews = [_bgImageView subviews]; for (id objInput in subviews) { if ([objInput isKindOfC ...