Kubernetes v1.20 系列文章目录
Kubernets(二)部署非高可用Kubernetes集群的环境准备
Kubernets(三)部署非高可用Kubernetes集群-通过阿里云源安装 kubeadm、kubelet 和 kubectl
文章目录
前言
你需要在每台机器上安装以下的软件包:
-
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 服务。
关于集群的创建在下一篇文章中介绍。