Kubernetes(一)认识 kubernetes
Kubernets(二)部署非高可用Kubernetes集群的环境准备
Kubernets(三)部署非高可用Kubernetes集群-通过阿里云源安装 kubeadm、kubelet 和 kubectl
Kubernets(四)创建集群
Kubernetes(五)揭开 kubeadm 的神秘面纱
Kubernetes(六)第一个kubernetes 对象
你需要在每台机器上安装以下的软件包:
kubeadm:用来初始化集群的指令。
kubelet:在集群中的每个节点上用来启动 Pod 和容器等。
kubectl:用来与集群通信的命令行工具。
⚠️确保它们三个版本一致!
[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
---
- 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
...
[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
ansible-playbook -i hosts.ini deploy-kubeadm.yml
对于此文档中使用的 kubernetes1.20.4 版本, kubelet 已经取消了
/etc/sysconfig/kubelet
文件中的 KUBELET_EXTRA_ARGS 变量。
将会使用 /var/lib/kubelet/config.yaml
文件作为 kubelet 的配置文件,
kubelet 将会依照此配置文件进行启动。
此文件默认是没有的
对于 master 节点,会在集群初始化的过程中生成,生成后初始化程序会自动启动 kubelet 服务。
对于 node 节点,会在将节点加入到集群中生成,生成后会自从启动kubelet 服务。
关于集群的创建在下一篇文章中介绍。