Kubernets(三)部署非高可用Kubernetes集群-通过阿里云源安装 kubeadm、kubelet 和 kubectl

Kubernetes v1.20 系列文章目录

Kubernetes(一)认识 kubernetes

Kubernets(二)部署非高可用Kubernetes集群的环境准备

Kubernets(三)部署非高可用Kubernetes集群-通过阿里云源安装 kubeadm、kubelet 和 kubectl

Kubernets(四)创建集群

Kubernetes(五)揭开 kubeadm 的神秘面纱

Kubernetes(六)第一个kubernetes 对象

文章目录

  • Kubernetes v1.20 系列文章目录
  • 前言
  • 一、Ansible 进行部署环境检查
    • 补充: 修改单节点Pod 数量,默认110个
    • 目录结构
    • 1. deploy-kubeadm.yml
    • 2. files/kubernetes.repo
    • 3. 使用方法
    • 4. 关于 Kubelet 服务
      • kubelet 配置文件的产生

前言

你需要在每台机器上安装以下的软件包:

  • kubeadm:用来初始化集群的指令。

  • kubelet:在集群中的每个节点上用来启动 Pod 和容器等。

  • kubectl:用来与集群通信的命令行工具。

⚠️确保它们三个版本一致!

一、Ansible 进行部署环境检查

补充: 修改单节点Pod 数量,默认110个

[root@node ~]# vim /etc/sysconfig/kubelet
KUBELET_EXTRA_ARGS="--max-pods=200"
[root@node ~]# vim /usr/lib/systemd/system/kubelet.service
[Service]
Environment=-/etc/sysconfig/kubelet

[root@node sysconfig]# systemctl daemon-reload
[root@node sysconfig]# systemctl restart kubelet

查看是否生效

kubectl describe node 节点名称 | grep pods: -B 5

目录结构

.
├── deploy-kubeadm.yml
└── files
   └── kubernetes.repo

1. deploy-kubeadm.yml

---
- name: Deploy  kubeadm  kubelet kubectl
  hosts: k8s
  gather_facts: no
  vars:
    pkgs_dir: /kubeadm-pkg
    pkgs: ["kubelet", "kubeadm", "kubectl", "ipvsadm"]

    # 变量 download_host 需要手动设置
    # 且值需要是此 playbook 目标主机中的一个
    # 需要写在 inventory 文件中的名称
    download_host: "k8s-master"

  tasks:
    - name: "只需要给 {{ download_host }}安装仓库文件"
      when: inventory_hostname == download_host
      copy:
        src: files/kubernetes.repo
        dest: /etc/yum.repos.d/kubernetes.repo

    - name: 创建存放 rmp 包的目录
      when: inventory_hostname == download_host
      file:
        path: "{{ pkgs_dir }}"
        state: directory
        
    - name:  下载软件包
      when: inventory_hostname == download_host
      yum:
        name: "{{ pkgs }}"
        download_only: yes
        download_dir: "{{ pkgs_dir }}"

    - name: 传输 rpm 包到远程节点
      when: inventory_hostname != download_host
      copy:
        src: "{{ pkgs_dir }}"
        dest: "/"

    - name: 正在执行从本地安装软件包
      shell:
        cmd: yum -y localinstall *
        chdir: "{{ pkgs_dir }}"
        warn: no
      async: 600
      poll: 0
      register: yum_info
...

2. files/kubernetes.repo

[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg

3. 使用方法


ansible-playbook -i hosts.ini deploy-kubeadm.yml

4. 关于 Kubelet 服务

对于此文档中使用的 kubernetes1.20.4 版本, kubelet 已经取消了

/etc/sysconfig/kubelet 文件中的 KUBELET_EXTRA_ARGS 变量。

将会使用 /var/lib/kubelet/config.yaml 文件作为 kubelet 的配置文件,
kubelet 将会依照此配置文件进行启动。

kubelet 配置文件的产生

此文件默认是没有的

  • 对于 master 节点,会在集群初始化的过程中生成,生成后初始化程序会自动启动 kubelet 服务。

  • 对于 node 节点,会在将节点加入到集群中生成,生成后会自从启动kubelet 服务。

关于集群的创建在下一篇文章中介绍。

你可能感兴趣的:(kubernetes,kubernetes,阿里云,kubelet)