美文网首页
k8s-01-安装及介绍

k8s-01-安装及介绍

作者: UncleZ_strive | 来源:发表于2019-12-10 21:02 被阅读0次

k8s的安装方式:

yum安装 1.5 最容易安装成功,最适合学习的
源码编译安装---难度最大 可以安装最新版
二进制安装---步骤繁琐 可以安装最新版 shell,ansible,saltstack
kubeadm 安装最容易, 网络 可以安装最新版
minikube 适合开发人员体验k8s, 网络

1.k8s集群的安装

1.k8s的架构
image.png

除了核心组件,还有一些推荐的Add-ons:

组件名称 说明
kube-dns 负责为整个集群提供DNS服务
Ingress Controller 为服务提供外网入口
Heapster 提供资源监控
Dashboard 提供GUI
Federation 提供跨可用区的集群
Fluentd-elasticsearch 提供集群日志采集、存储与查询
2.修改IP地址、主机和host解析(所有节点)
10.0.0.11  k8s-master
10.0.0.12  k8s-node-1
10.0.0.13  k8s-node-2
3.master节点安装etcd
  • 安装etcd服务
    yum install etcd -y

  • 修改配置文件

vim /etc/etcd/etcd.conf
ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379"
ETCD_ADVERTISE_CLIENT_URLS="http://10.0.0.11:2379"
  • 启动etcd服务
    systemctl start etcd.service
    systemctl enable etcd.service

  • 取值检验
    etcdctl set testdir/testkey0 0
    etcdctl get testdir/testkey0

  • 健康状态检查
    etcdctl -C http://10.0.0.11:2379 cluster-health

  • 配置多节点
    https://blog.csdn.net/yunlilang/article/details/79726424

4.master节点安装kubernetes
  • 安装k8s-master
    yum install kubernetes-master.x86_64 -y
  • 修改api配置文件
vim /etc/kubernetes/apiserver 
8行:  KUBE_API_ADDRESS="--insecure-bind-address=0.0.0.0"
11行:KUBE_API_PORT="--port=8080"
14行: KUBELET_PORT="--kubelet-port=10250"
17行:KUBE_ETCD_SERVERS="--etcd-servers=http://10.0.0.11:2379"
23行:KUBE_ADMISSION_CONTROL="--admission-control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ResourceQuota"
  • 修改config配置文件
vim /etc/kubernetes/config
22行:KUBE_MASTER="--master=http://10.0.0.11:8080"
  • 重启服务
systemctl enable kube-apiserver.service
systemctl restart kube-apiserver.service
systemctl enable kube-controller-manager.service
systemctl restart kube-controller-manager.service
systemctl enable kube-scheduler.service
systemctl restart kube-scheduler.service
  • 检查服务是否安装正常
[root@k8s-master ~]# kubectl get componentstatus 
NAME                 STATUS    MESSAGE             ERROR
scheduler            Healthy   ok                  
controller-manager   Healthy   ok                  
etcd-0               Healthy   {"health":"true"} 
5.node节点安装kubernetes
  • 安装k8s-node服务
    yum install kubernetes-node.x86_64 -y
  • 修改配置文件
vim /etc/kubernetes/config 
22行:KUBE_MASTER="--master=http://10.0.0.11:8080"
vim /etc/kubernetes/kubelet
5行:KUBELET_ADDRESS="--address=0.0.0.0"
8行:KUBELET_PORT="--port=10250"
11行:KUBELET_HOSTNAME="--hostname-override=10.0.0.12"
14行:KUBELET_API_SERVER="--api-servers=http://10.0.0.11:8080"
  • 重启服务
systemctl enable kubelet.service
systemctl restart kubelet.service
systemctl enable kube-proxy.service
systemctl restart kube-proxy.service
  • 在master节点检查
[root@k8s-master ~]# kubectl get nodes
NAME        STATUS    AGE
10.0.0.12   Ready     6m
10.0.0.13   Ready     3s
6.所有节点配置flannel网络
  • 所有节点安装flannel服务
yum install flannel -y
sed -i 's#http://127.0.0.1:2379#http://10.0.0.11:2379#g' /etc/sysconfig/flanneld
  • master节点:
etcdctl mk /atomic.io/network/config   '{ "Network": "172.18.0.0/16" }'
yum install docker -y
systemctl enable flanneld.service 
systemctl restart flanneld.service 
systemctl  restart  docker
systemctl  enable  docker
systemctl restart kube-apiserver.service
systemctl restart kube-controller-manager.service
systemctl restart kube-scheduler.service
  • node节点:
systemctl enable flanneld.service 
systemctl restart flanneld.service 
systemctl  restart  docker
systemctl restart kubelet.service
systemctl restart kube-proxy.service
  • 所有节点
vim /usr/lib/systemd/system/docker.service
在[Service]区域下增加一行
ExecStartPost=/usr/sbin/iptables -P FORWARD ACCEPT

systemctl daemon-reload 
systemctl restart docker
7.配置master为镜像仓库
  • 所有节点
vi /etc/docker/daemon.json
{
"registry-mirrors": ["https://registry.docker-cn.com"],
"insecure-registries": ["10.0.0.11:5000"]
}

systemctl restart docker
  • master节点
    启动registry镜像仓库
    docker run -d -p 5000:5000 --restart=always --name registry -v /opt/myregistry:/var/lib/registry registry

2:什么是k8s,k8s有什么功能?

k8s是一个docker集群的管理工具
k8s是容器的编排工具

1.k8s的核心功能

自愈: 重新启动失败的容器,在节点不可用时,替换和重新调度节点上的容器,对用户定义的健康检查不响应的容器会被中止,并且在容器准备好服务之前不会把其向客户端广播。

弹性伸缩:通过监控容器的cpu的负载值,如果这个平均高于80%,增加容器的数量,如果这个平均低于10%,减少容器的数量

服务的自动发现和负载均衡: 不需要修改您的应用程序来使用不熟悉的服务发现机制,Kubernetes 为容器提供了自己的 IP 地址和一组容器的单个 DNS 名称,并可以在它们之间进行负载均衡。

滚动升级和一键回滚: Kubernetes 逐渐部署对应用程序或其配置的更改,同时监视应用程序运行状况,以确保它不会同时终止所有实例。 如果出现问题,Kubernetes会为您恢复更改,利用日益增长的部署解决方案的生态系统。

私密配置文件管理: web容器里面,数据库的账户密码

2.k8s的历史

2014年 docker容器编排工具,立项
2015年7月 发布kubernetes 1.0, 加入cncf基金会 孵化
2016年,kubernetes干掉两个对手,docker swarm,mesos marathon 1.2版
2017年 1.5 -1.9
2018年 k8s 从cncf基金会 毕业项目
2019年: 1.13, 1.14 ,1.15,1.16 1.17
cncf :cloud native compute foundation
kubernetes (k8s): 希腊语 舵手,领航者 容器编排领域,
谷歌15年容器使用经验,borg容器管理平台,使用golang重构borg,kubernetes

3.k8s的应用场景

k8s最适合跑微服务项目!

相关文章

  • k8s-01-安装及介绍

    k8s的安装方式: yum安装 1.5 最容易安装成功,最适合学习的源码编译安装---难度最大 可以安装最新版二进...

  • 第0期:psychopy coder入门

    【Python介绍及安装】 排版:华华 Python 介绍及安装 PsychoPy的下载与安装方法 Letswav...

  • 第0期:psychopy coder入门

    【Python介绍及安装】 排版:华华 Python 介绍及安装 PsychoPy的下载与安装方法 Letswav...

  • 接口测试——requests 的基本了解

    ● requests介绍及安装 ● requests原理及源码介绍 ● 使用requests发送请求 ● 使用re...

  • Laravel5.5基础开发环境搭建

    目录: Laravel5.5运行环境介绍WAMP安装及配置babun命令行工具安装windows环境下git安装及...

  • 一、介绍及安装

    概述 程序设计语言是一种重要的计算机软件技术。没有程序设计语言,就没有计算机程序,自然也就谈不上计算机软件...

  • Nginx介绍及安装

    什么是Nginx? Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP 代理服...

  • mycli介绍及安装

    Mycli介绍 Mycli是一个MySQL命令行客户端工具,是一个印度人基于python写的一个工具,其最先发布的...

  • Zookeeper介绍及安装

    介绍: Zookeeper 是 Apache Hadoop 的子项目,是一个树型的目录服务,支持变更推送,适合作为...

  • linux——介绍及安装

    https://pan.baidu.com/s/1tQ8H3TToB5vrGKw0NF_5HQ

网友评论

      本文标题:k8s-01-安装及介绍

      本文链接:https://www.haomeiwen.com/subject/tuubgctx.html