一,安装kubernetes前的准备工作

     安装前的准备工作(master\worker都要进行)
     参见:
  1. https://www.cnblogs.com/architectforest/p/13141743.html
     说明:以上这些准备工作需要在worker 节点机器上操作一遍
 
     kubernetes的master节点的安装(需在master节点机器上操作):
     参见:
  1. https://www.cnblogs.com/architectforest/p/13153053.html
    演示例子说明:机器共两台:
     master节点机器: ip: 192.168.219.130, hostname: kubemaster
     woker 节点机器: ip: 192.168.219.136, hostname: node1
 

说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnblogs.com/architectforest

对应的源码可以访问这里获取: https://github.com/liuhongdi/

说明:作者:刘宏缔 邮箱: 371125307@qq.com

二,在worker节点安装kubernetes

1,新建kubernetes的repo
  1. [root@node1 ~]# vi /etc/yum.repos.d/kubernetes.repo
内容:
  1. [kubernetes]
  2. name=Kubernetes
  3. baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
  4. enabled=1
  5. gpgcheck=1
  6. repo_gpgcheck=1
  7. gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg 
 
2,安装三大件:
  1. [root@node1 ~]# dnf install kubectl kubelet kubeadm
安装完成后查看版本:
  1. [root@node1 ~]# kubelet --version
  2. Kubernetes v1.18.3
  1. [root@node1 ~]# kubeadm version
  2. kubeadm version: &version.Info{Major:"1", Minor:"18", GitVersion:"v1.18.3", GitCommit:"2e7996e3e2712684bc73f0dec0200d64eec7fe40",
    GitTreeState:"clean", BuildDate:"2020-05-20T12:49:29Z", GoVersion:"go1.13.9", Compiler:"gc", Platform:"linux/amd64"}
  1. [root@node1 ~]# kubectl version
  2. Client Version: version.Info{Major:"1", Minor:"18", GitVersion:"v1.18.3", GitCommit:"2e7996e3e2712684bc73f0dec0200d64eec7fe40",
    GitTreeState:"clean", BuildDate:"2020-05-20T12:52:00Z", GoVersion:"go1.13.9", Compiler:"gc", Platform:"linux/amd64"}
  3. The connection to the server localhost:8080 was refused - did you specify the right host or port?
3,使kubelet服务可以自启动
  1. [root@node1 ~]# systemctl enable kubelet

三,把worker节点加入到cluster

1,得到join命令:要在master节点上执行:
  1. [root@kubemaster ~]# kubeadm token create --print-join-command
  2. W0618 15:07:30.243762 115106 configset.go:202] WARNING: kubeadm cannot validate component configs
    for API groups [kubelet.config.k8s.io kubeproxy.config.k8s.io]
  3. kubeadm join 192.168.219.130:6443 --token cts238.khb7z4qwu1h6iens \
    --discovery-token-ca-cert-hash sha256:c718e29ccb1883715489a3fdf53dd810a7764ad038c50fd62a2246344a4d9a73
worker节点的ip要加入到master节点的防火墙:
  1. [root@kubemaster ~]# firewall-cmd --permanent --zone=trusted --add-source=192.168.219.136
  2. success
  3. [root@kubemaster ~]# firewall-cmd --reload
  4. success
2,回到worker节点上执行:
  1. [root@node1 ~]# kubeadm join 192.168.219.130:6443 --token cts238.khb7z4qwu1h6iens \
    --discovery-token-ca-cert-hash sha256:c718e29ccb1883715489a3fdf53dd810a7764ad038c50fd62a2246344a4d9a73
看到如下信息表示加入到cluster成功:
  1. This node has joined the cluster:
  2. * Certificate signing request was sent to apiserver and a response was received.
  3. * The Kubelet was informed of the new secure connection details.
  4.  
  5. Run 'kubectl get nodes' on the control-plane to see this node join the cluster.
3,查看woker节点上新增加的image
  1. [root@node1 ~]# docker images
  2. REPOSITORY TAG IMAGE ID CREATED SIZE
  3. calico/node v3.14.1 04a9b816c753 3 weeks ago 263MB
  4. calico/pod2daemon-flexvol v3.14.1 7f93af2e7e11 3 weeks ago 112MB
  5. calico/cni v3.14.1 35a7136bc71a 3 weeks ago 225MB
  6. registry.aliyuncs.com/google_containers/kube-proxy v1.18.3 3439b7546f29 4 weeks ago 117MB
  7. registry.aliyuncs.com/google_containers/pause 3.2 80d28bedfe5d 4 months ago 683kB
4,备注:
  1. error execution phase preflight: couldn't validate the identity of the API Server:
    could not find a JWS signature in the cluster-info ConfigMap for token ID “xgt21h"
这个错误提示表示token已过期
 

四,在master节点上查看node

  1. [root@kubemaster ~]# kubectl get nodes
  2. NAME STATUS ROLES AGE VERSION
  3. kubemaster Ready master 26h v1.18.3
  4. node1 Ready <none> 2m57s v1.18.3
已经看到了node1节点,说明加入到cluster成功

五,在master和node1节点上安装一个nginx容器,并查看效果:

编辑rc文件
  1. [root@kubemaster k8s]# vi nginx-rc.yaml
内容:
  1. apiVersion: v1
  2. kind: ReplicationController
  3. metadata:
  4. name: nginx-demo
  5. spec:
  6. replicas: 2
  7. selector:
  8. app: nginx-demo
  9. template:
  10. metadata:
  11. labels:
  12. app: nginx-demo
  13. spec:
  14. containers:
  15. - name: nginx-demo
  16. image: nginx
  17. ports:
  18. - containerPort: 80
创建rc
  1. [root@kubemaster k8s]# kubectl apply -f nginx-rc.yaml
  2. replicationcontroller/nginx-demo created
 
查看效果:
  1. [root@kubemaster k8s]# kubectl get pods -o wide
  2. NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
  3. nginx-demo-b5vwt 1/1 Running 0 15m 172.16.141.16 node1 <none> <none>
  4. nginx-demo-j8n7d 1/1 Running 0 15m 172.16.141.13 node1 <none> <none>

用curl访问(注意此处要到worker节点node1上访问):

  1. [root@node1 ~]# curl http://172.16.141.13
  2. <!DOCTYPE html>
  3. <html>
  4. <head>
  5. <title>Welcome to nginx!</title>
  6. <style>
  7. body {
  8. width: 35em;
  9. margin: 0 auto;
  10. font-family: Tahoma, Verdana, Arial, sans-serif;
  11. }
  12. </style>
  13. </head>
  14. <body>
  15. <h1>Welcome to nginx!</h1>
  16. <p>If you see this page, the nginx web server is successfully installed and
  17. working. Further configuration is required.</p>
  18.  
  19. <p>For online documentation and support please refer to
  20. <a href="http://nginx.org/">nginx.org</a>.<br/>
  21. Commercial support is available at
  22. <a href="http://nginx.com/">nginx.com</a>.</p>
  23.  
  24. <p><em>Thank you for using nginx.</em></p>
  25. </body>
  26. </html>

生成service文件

  1. [root@kubemaster k8s]# vi nginx-svc.yaml

内容:

  1. apiVersion: v1
  2. kind: Service
  3. metadata:
  4. name: nginx-demo
  5. spec:
  6. type: NodePort
  7. ports:
  8. - port: 80
  9. nodePort: 30020
  10. selector:
  11. app: nginx-demo

创建service

  1. [root@kubemaster k8s]# kubectl apply -f nginx-svc.yaml
  2. service/nginx-demo created

从浏览器访问服务:(说明:192.168.219.136是woker节点node1的ip)

六,查看kubernetes的版本

  1. [root@kubemaster ~]# kubelet --version
  2. Kubernetes v1.18.3
  3. [root@kubemaster ~]# kubeadm version
  4. kubeadm version: &version.Info{Major:"1", Minor:"18", GitVersion:"v1.18.3", GitCommit:"2e7996e3e2712684bc73f0dec0200d64eec7fe40",
    GitTreeState:"clean", BuildDate:"2020-05-20T12:49:29Z", GoVersion:"go1.13.9", Compiler:"gc", Platform:"linux/amd64”}

七,查看linux的版本

  1. [root@kubemaster ~]# cat /etc/redhat-release
  2. CentOS Linux release 8.2.2004 (Core)
  3. [root@kubemaster ~]# uname -r
  4. 4.18.0-193.el8.x86_64

linux(centos8):安装kubernetes worker节点并加入到kubernetes集群(kubernetes 1.18.3)的更多相关文章

  1. linux(centos8):安装配置consul集群(consul 1.8.4 | centos 8.2.2004)

    一,什么是consul? 1,Consul 是 HashiCorp 公司推出的开源软件,用于实现分布式系统的服务发现与配置. Consul 是分布式的.高可用的. 可横向扩展的   2,官方网站: h ...

  2. Kubernetes v1.12/v1.13 二进制部署集群(HTTPS+RBAC)

    官方提供的几种Kubernetes部署方式 minikube Minikube是一个工具,可以在本地快速运行一个单点的Kubernetes,尝试Kubernetes或日常开发的用户使用.不能用于生产环 ...

  3. Zookeeper节点增删改查与集群搭建(笔记)

    1.上传文件目录说明 上传的文件一般放在 /home/下 安装文件一般在 /usr/local/下 2. 安装zookeeper 2.1将zookeeper-3.4.11.tar.gz拷贝到/home ...

  4. JAVAEE——宜立方商城06:Redis安装、数据类型和持久化方案、Redis集群分析与搭建、实现缓存和同步

    1. 学习计划 1.首页轮播图展示 2.Redis服务器搭建 3.向业务逻辑中添加缓存. 4.使用redis做缓存 5.缓存同步. 2. 首页轮播图动态展示 2.1. 功能分析 根据分类id查询内容列 ...

  5. Kubernetes 从懵圈到熟练:集群服务的三个要点和一种实现

    作者 | 声东 阿里云售后技术专家 文章来源:Docker,点击查看原文. 以我的经验来讲,理解 Kubernetes 集群服务的概念,是比较不容易的一件事情.尤其是当我们基于似是而非的理解,去排查服 ...

  6. 集群版本升级——rolling upgrade在ES 单节点从 restart 到加入集群,大概要 100s 左右的时间。也就是说,这 100s 内,该节点上的所有分片都是 unassigned 状态

    集群版本升级 Elasticsearch 作为一个新兴项目,版本更新非常快.而且每次版本更新都或多或少带有一些重要的性能优化.稳定性提升等特性.可以说,ES 集群的版本升级,是目前 ES 运维必然要做 ...

  7. yum安装k8s集群(kubernetes)

    此案例是以一个主,三个node来部署的,当然node可以根据自己情况部署 192.168.1.130 master 192.168.1.131 node1 192.168.1.132 node2 19 ...

  8. Kubernetes(k8s)1.12.2集群搭建

    本博客搭建k8s集群1.12.2版本 1. 准备2台以上最低2核4G的服务器 2. 关闭机器的防火墙 12 systemctl disable firewalldsystemctl stop fire ...

  9. kubeadm部署高可用集群Kubernetes 1.14.1版本

    Kubernetes高可用集群部署 部署架构: Master 组件: kube-apiserver Kubernetes API,集群的统一入口,各组件协调者,以HTTP API提供接口服务,所有对象 ...

随机推荐

  1. jzoj1497. 景点中心

    Description 话说宁波市的中小学生在镇海中学参加计算机程序设计比赛,比赛之余,他们在镇海中学的各个景点参观.镇海中学共有n个景点,每个景点均有若干学生正在参观.这n个景点以自然数1至n编号, ...

  2. Apache Pulsar 在腾讯 Angel PowerFL 联邦学习平台上的实践

    腾讯 Angel PowerFL 联邦学习平台 联邦学习作为新一代人工智能基础技术,通过解决数据隐私与数据孤岛问题,重塑金融.医疗.城市安防等领域. 腾讯 Angel PowerFL 联邦学习平台构建 ...

  3. [程序员代码面试指南]第9章-在两个长度相等的排序数组中找到第k小的数(二分)

    题目 给定两个有序数组arr1和arr2,再给定一个整数k,返回所有的数中第k小的数. 题解 利用题目"在两个长度相等的排序数组中找到第上中位数"的函数 分类讨论 k < 1 ...

  4. 217。数据中是否有重复元素(哈希表/set简法)

    给定一个整数数组,判断是否存在重复元素. 如果任意一值在数组中出现至少两次,函数返回 true .如果数组中每个元素都不相同,则返回 false . 示例 1: 输入: [1,2,3,1] 输出: t ...

  5. 解析nohup java -jar xxx &

    一直就知道 java -jar xx ctrl+c就退出了 来自这个文 https://blog.csdn.net/wngpenghao/article/details/83022185 java - ...

  6. iOS多线程之超实用理论+demo演示(可下载)

    目录 背景简介 GCD.OperationQueue 对比 核心理念 区别 GCD 队列 串行队列(Serial Queues) 并发队列(Concurrent Queues) 串行.并发队列对比图 ...

  7. 我搭建了一套企业级私有Git服务,抗住了每天上万次攻击!

    写在前面 事情是这样的,今年疫情期间,我在某云购买了一套服务器,做什么呢?不是用来部署项目,也不是用来搭建网站,而是用来做代码备份和管理.没错,都是我个人的代码,也许你会说,你个人能有多少代码啊?确实 ...

  8. IDEA—使用插件反编译jar包

    关注微信公众号:CodingTechWork,一起学习进步. 引言   在产品上线后,如果遇到问题阻塞,我们第一步要做的就是去查看日志,但是代码不是一个人写的,说不定就会遇到没有日志的,遇到这种情况, ...

  9. django 的基础设计

    一.web程序工作流程 二.django  的基础介绍 目的:了解Django框架的作用和特点 作用: 简便.快速的开发数据库驱动的网站 Django的优势 快速开发 MVT 功能齐全 Django学 ...

  10. Emgu.CV怎么加载Bitmap

    EmguCV 在4.0.1版本之后没办法用Bitmap创建Image了. 我给大家说下 EmguCV怎么加载Bitmap 下边是 EmguCV 官方文档写的,意思是从4.0.1以后的版本不能直接Bit ...