Kubernetes 学习记录 一

本文参考 http://docs.kubernetes.org.cn/109.html 和 http://www.qfdmy.com/

简介

什么是Kubernees
Kubernees,简称k8s,ks是容器集群管理系统,是一个开源的平台,可以实现容器的自动化部署,自动扩缩容,维护等功能

特色

优势
快速部署应用
快速扩展应用
无缝对接新功能
节省资源,优化硬件资源的使用

特点
可移植: 支持公有云,私有云,混合云,多重云(multi-cloud)
可扩展: 模块化, 插件化, 可挂载, 可组合
自动化: 自动部署,自动重启,自动复制,自动伸缩/扩展

从传统到容器化部署

在这里插入图片描述

为什么要使用容器

传统应用部署和容器部署的区别

传统的应用部署
是通过插件或者脚本来安装应用,这样做的缺点是应用的运行、配置、管理、所有生存周期将与当前操作系统绑定,这样做并不利于应用的升级更新/回滚等操作,当然也可以通过创建虚机的方式来实现某些功能,但是虚拟机非常重,并不利于可移植性。

通过部署容器方式实现
沙箱机制,每个容器之间互相隔离,每个容器有自己的文件系统 ,容器之间进程不会相互影响,能区分计算资源。相对于虚拟机,容器能快速部署,由于容器与底层设施、机器文件系统解耦的,所以它能在不同云、不同版本操作系统间进行迁移

容器化部署的优势

  1. 快速创建/部署应用: 与虚拟机相比,容器镜像的创建更加容易。
  2. 持续开发、集成和部署: 提供可靠且频繁的容器镜像构建/部署,并使用快速和简单的回滚(由于镜像不可变性)。
  3. 开发和运行相分离: 在 build 或者 release 阶段创建容器镜像,使得应用和基础设施解耦。
  4. 开发,测试和生产环境一致性: 在本地或外网(生产环境)运行的一致性。
  5. 云平台或其他操作系统: 可以在 Ubuntu、RHEL、CoreOS、on-prem、Google Container Engine
    或其它任何环境中运行。
  6. 分布式,弹性,微服务化: 应用程序分为更小的、独立的部件,可以动态部署和管理。
    资源隔离
  7. 资源利用更高效

使用k8s能够做什么

  • 多个进程(作为容器运行)协同工作。(Pod)
  • 存储系统挂载
  • Distributing secrets
  • 应用健康检测
  • 应用实例的复制
  • Pod自动伸缩/扩展
  • Naming and discovering
  • 负载均衡
  • 滚动更新
  • 资源监控
  • 日志访问
  • 调试应用程序
  • 提供认证和授权

这里要注意的是,k8s并部署传统的Paas系统,Kubernetes不限制支持应用的类型,不限制应用框架,不限制受支持的语言,满足1要素轻应用,不提供中间件,不部署源码不编译应用,不提供或授权一个全面的应用程序配置语言/系统,也不提供任何机器配置,维护,但是他允许用户选择自己的日志,监控,另外,Kubernetes不仅仅是一个“编排系统”;它消除了编排的需要。“编排”的定义是指执行一个预定的工作流:先执行A,之B,然C。相反,Kubernetes由一组独立的可组合控制进程组成。怎么样从A到C并不重要,达到目的就好。当然集中控制也是必不可少,方法更像排舞的过程。这使得系统更加易用、强大、弹性和可扩展。

使用乌班图部署 Kubernetes 集群

准备工作
关闭交互空间

    swapoff -a

避免开机启动交换空间

    # 注释 swap 开头的行
    vi /etc/fstab

关闭防火墙

    ufw disable

配置DNS

    # 取消 DNS 行注释,并增加 DNS 配置如:114.114.114.114,修改后重启下计算机
    vi /etc/systemd/resolved.conf

安装 Docker
前面有文章
在 /etc/docker/daemon.json 中写入如下内容(以下配置修改 cgroup 驱动为 systemd,满足 K8S 建议)

    {
      "exec-opts": ["native.cgroupdriver=systemd"],
      "log-driver": "json-file",
      "log-opts": {
        "max-size": "100m"
      },
      "registry-mirrors": [
        "https://k7da99jp.mirror.aliyuncs.com/",
        "https://dockerhub.azk8s.cn",
        "https://registry.docker-cn.com"
      ],
      "storage-driver": "overlay2"
    }

安装 Kubernetes 必备工具

安装三个 Kubernetes 必备工具,分别为 kubeadm,kubelet,kubectl
加粗样式

    # 安装系统工具
    apt-get update && apt-get install -y apt-transport-https
    # 安装 GPG 证书
    curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add -
    # 写入软件源;注意:我们用系统代号为 bionic,但目前阿里云不支持,所以沿用 16.04 的 xenial
    cat << EOF >/etc/apt/sources.list.d/kubernetes.list
    deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
    EOF
    # 安装
    apt-get update && apt-get install -y kubelet kubeadm kubectl

同步时间

设置时区

 dpkg-reconfigure tzdata

时间同步

# 安装 ntpdate
apt-get install ntpdate
# 设置系统时间与网络时间同步(cn.pool.ntp.org 位于中国的公共 NTP 服务器)

ntpdate cn.pool.ntp.org
# 将系统时间写入硬件时间
hwclock --systohc

修改 cloud.cfg

主要作用是防止重启后主机名还原
vi /etc/cloud/cloud.cfg
# 该配置默认为 false,修改为 true 即可
preserve_hostname: true

单独节点配置

编辑 vi /etc/netplan/50-cloud-init.yaml 配置文件,修改内容如下

 network:
    ethernets:
        ens33:
          addresses: [192.168.23.132/24]
          gateway4: 192.168.23.2
          nameservers:
            addresses: [192.168.23.2]
    version: 2

配置主机名

    # 修改主机名
    hostnamectl set-hostname kubernetes-master
    # 配置 hosts
    cat >> /etc/hosts << EOF
    192.168.23.132 kubernetes-master
    EOF

最后ping一下百度
ping www.baidu.com ,看看dns也没有配置失败

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值