容器学习之k8s入门1

Posted devopsxu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了容器学习之k8s入门1相关的知识,希望对你有一定的参考价值。

一、版本策略

  1、kube-apiserver  HA升级,小版本号最多差1(必须最先升级apiserver)

    例:最新为1.18,其余均为1.18或1.17

  2、kubelet,不可高于kube-apiserver,最多差两个版本

    例:最新api-server为1.18  kubelet可选为1.18,1.17,1.16

      若api-server为1.18,1.17 kubelet可选为1.17,1.16

  3、kube-controller-manager, kube-scheduler, and cloud-controller-manager 不得高于apiserver,最多差1个版本,最好同一版本

    例:最新apiserver为1.18  kube-controller-manager, kube-scheduler, and cloud-controller-manager可选为1.18,1.17

      若apiserver为1.18,1.17 kube-controller-manager, kube-scheduler, and cloud-controller-manager可选为1.17

  4、kubectl 可比apiserver搞一个版本或低一个版本

    例:最新apiserver为1.17  kubectl可选为1.18,1.17,1.16

      若apiserver为1.17,1.16 kubectl可选为1.17,1.16

  5,升级策略

    1>3>2>4

二、容器引擎

官方文档推荐docker版本为19.03.4,同时1.13.1、17.03、17.06、17.09、18.06 和 18.09 版本也是可以的。

ubuntu:

<!--
# Install Docker CE
## Set up the repository:
### Install packages to allow apt to use a repository over HTTPS
apt-get update && apt-get install
  apt-transport-https ca-certificates curl software-properties-common

### Add Docker’s official GPG key
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -
-->
# 安装 Docker CE
## 设置仓库
### 安装软件包以允许 apt 通过 HTTPS 使用存储库
apt-get update && apt-get install
  apt-transport-https ca-certificates curl software-properties-common

### 新增 Docker 的 官方 GPG 秘钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -

<!--
### Add Docker apt repository.
add-apt-repository
  "deb [arch=amd64] https://download.docker.com/linux/ubuntu
  $(lsb_release -cs)
  stable"

## Install Docker CE.
apt-get update && apt-get install
  containerd.io=1.2.10-3
  docker-ce=5:19.03.4~3-0~ubuntu-$(lsb_release -cs)
  docker-ce-cli=5:19.03.4~3-0~ubuntu-$(lsb_release -cs)

# Setup daemon.
cat > /etc/docker/daemon.json <<EOF
{
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m"
  },
  "storage-driver": "overlay2"
}
EOF

mkdir -p /etc/systemd/system/docker.service.d
-->
### 添加 Docker apt 仓库
add-apt-repository
  "deb [arch=amd64] https://download.docker.com/linux/ubuntu
  $(lsb_release -cs)
  stable"

## 安装 Docker CE
apt-get update && apt-get install docker-ce=18.06.2~ce~3-0~ubuntu

# 设置 daemon
cat > /etc/docker/daemon.json <<EOF
{
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m"
  },
  "storage-driver": "overlay2"
}
EOF

mkdir -p /etc/systemd/system/docker.service.d

<!--
# Restart docker.
systemctl daemon-reload
systemctl restart docker
-->
# 重启 docker.
systemctl daemon-reload
systemctl restart docker

centos

<!--
# Install Docker CE
## Set up the repository
### Install required packages.
yum install yum-utils device-mapper-persistent-data lvm2

### Add Docker repository.
yum-config-manager
    --add-repo
    https://download.docker.com/linux/centos/docker-ce.repo

## Install Docker CE.
yum update && yum install
  containerd.io-1.2.10
  docker-ce-19.03.4
  docker-ce-cli-19.03.4

## Create /etc/docker directory.
mkdir /etc/docker

# Setup daemon.
cat > /etc/docker/daemon.json <<EOF
{
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m"
  },
  "storage-driver": "overlay2",
  "storage-opts": [
    "overlay2.override_kernel_check=true"
  ]
}
EOF

mkdir -p /etc/systemd/system/docker.service.d
-->
# 安装 Docker CE
## 设置仓库
### 安装所需包
yum install yum-utils device-mapper-persistent-data lvm2

### 新增 Docker 仓库。
yum-config-manager
  --add-repo
  https://download.docker.com/linux/centos/docker-ce.repo

## 安装 Docker CE.
yum update && yum install docker-ce-18.06.2.ce

## 创建 /etc/docker 目录。
mkdir /etc/docker

# 设置 daemon。
cat > /etc/docker/daemon.json <<EOF
{
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m"
  },
  "storage-driver": "overlay2",
  "storage-opts": [
    "overlay2.override_kernel_check=true"
  ]
}
EOF

mkdir -p /etc/systemd/system/docker.service.d

<!--
# Restart Docker
systemctl daemon-reload
systemctl restart docker
-->
# 重启 Docker
systemctl daemon-reload
systemctl restart docker

三、内核升级

CentOS 7.x 系统自带的 3.10.x 内核存在一些 Bugs,导致运行的 Docker、Kubernetes 不稳定,例如:

(1)、 在重启docker过程中,机器宕机重启

(2)、 部署服务时,出现机器crush问题

1、下载内核rpm包

wget http://mirror.rc.usf.edu/compute_lock/elrepo/kernel/el7/x86_64/RPMS/kernel-ml-4.14.15-1.el7.elrepo.x86_64.rpm

wget http://mirror.rc.usf.edu/compute_lock/elrepo/kernel/el7/x86_64/RPMS/kernel-ml-devel-4.14.15-1.el7.elrepo.x86_64.rpm

2、将rpm包安装

yum -y install kernel-ml-devel-4.14.15-1.el7.elrepo.x86_64.rpm &&  yum -y install kernel-ml-4.14.15-1.el7.elrepo.x86_64.rpm

3、查看内核

awk -F‘ ‘$1=="menuentry " {print i++ " : " $2}‘ /etc/grub2.cfg

0 : CentOS Linux (4.14.15-1.el7.elrepo.x86_64) 7 (Core)
1 : CentOS Linux (3.10.0-862.11.6.el7.x86_64) 7 (Core)
2 : CentOS Linux (3.10.0-514.el7.x86_64) 7 (Core)
3 : CentOS Linux (0-rescue-063ec330caa04d4baae54c6902c62e54) 7 (Core)

4、设置内核

grub2-set-default 0

5、重启

reboot

 

参考资料

https://kubernetes.io/zh/

 

以上是关于容器学习之k8s入门1的主要内容,如果未能解决你的问题,请参考以下文章

物联网架构成长之路(24)-Docker练习之Compose容器编排

k8s五分钟快速入门

WorkerMan 入门学习之基础教程-Timer类的使用

SSH框架入门学习之二(spring)

Docker学习之Docker容器基本使用

Kubernetes 学习之入门篇