k8s集群安装实践

514 阅读2分钟

一、基础环境准备

安装/更新docker

blog.csdn.net/qq_39629343…

方法一,网络安装
# 1.列出包含docker字段的软件的信息
rpm -qa | grep docker

# 2.卸载相关软件
yum remove docker-1.13.1-53.git774336d.el7.centos.x86_64 -y
yum remove docker-client-1.13.1-53.git774336d.el7.centos.x86_64 -y
yum remove docker-common-1.13.1-53.git774336d.el7.centos.x86_64 -y

# 3.使用curl升级到最新版
curl -fsSL https://get.docker.com/ | sh

# 4.重启Docker
systemctl restart docker

# 5.设置Docker开机自启
# systemctl enable docker

# 6.查看Docker版本信息
docker version

# 7.查看Docker系统信息,包括镜像和容器数…
docker info

# 8.使用docker images命令查看自己之前的镜像是否存在
方法二,离线文件安装

离线安装docker 19.03.5版本 Linux下离线安装Docker 相关资源下载地址: tgz rpm

# 跳过可能会报错提示containerd.io >= 1.2.2-3问题
# yum install https://download.docker.com/linux/fedora/30/x86_64/stable/Packages/containerd.io-1.2.6-3.3.fc30.x86_64.rpm
yum localinstall containerd.io-1.2.6-3.3.fc30.x86_64.rpm

# 安装 docker-ce-cli
# yum install https://download.docker.com/linux/fedora/30/x86_64/stable/Packages/docker-ce-cli-19.03.9-3.fc30.x86_64.rpm
yum localinstall docker-ce-cli-19.03.9-3.fc30.x86_64.rpm

# 安装离线版 docker-ce rpm包
# yum install https://download.docker.com/linux/fedora/30/x86_64/stable/Packages/docker-ce-19.03.9-3.fc30.x86_64.rpm
yum localinstall docker-ce-19.03.9-3.el7.x86_64.rpm

如果 containerd.iodocker-ce-clidocker-ce在同一目录的话,可执行下方命令安装:

yum localinstall -y *.rpm

关闭防火墙与SELINUX

防止在学习阶段由于防火墙造成的各种网络问题,生产环境跳过这一步

sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
setenforce 0
systemctl disable firewalld
systemctl stop firewall

关闭交换区

可以理解为虚拟内存,k8s使用时尽量不使用交换区,防止出现预料之外的问题

swapoff -a

vi /etc/fstab
#swap一行注释
#/dev/mapper/centos-swap swap swap defaults 0 0

配置网桥/系统路由参数

防止kubeadm报路由警告

cat <<EOF > /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl --system

修改hosts文件

使用本地解析主机名

cat <<"EOF">/etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.102.139 master
192.168.102.140 node1
192.168.102.141 node2
EOF
# 修改主机名
hostnamectl set-hostname <your_hostname>

修改 cgroupfs

www.cnblogs.com/ExMan/p/116…

vi /etc/docker/daemon.json

# 加入以下内容:
{
"exec-opts":["native.cgroupdriver=systemd"]
}

# 重启docker
systemctl daemon-reload
systemctl restart docker
systemctl status docker

设置系统时区并同步时间服务器

yum install -y ntpdate
ntpdate time.windows.com

二、k8s集群安装

k8s安装的几种方式

使用kubeadm部署k8s

Centos7.7使用kubeadm快速部署K8s集群(适合新手) 使用kubeadm快速部署一套K8S集群 k8s安装及部署步骤 离线安装k8s

kubectl、kubelete、kubeadm安装
cat <<EOF > /etc/yum.repos.d/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
EOF
setenforce 0
# 查看版本
yum list kubelet kubeadm kubectl

# 安装
yum install -y kubelet kubeadm kubectl

# 开启自启动 & 启动
systemctl enable kubelet && systemctl start kubelet

初始化(仅master节点):

kubeadm init \
--apiserver-advertise-address=192.168.102.137 \
--image-repository registry.aliyuncs.com/google_containers \
--kubernetes-version v1.19.2 \
--service-cidr=10.1.0.0/16 \
--pod-network-cidr=10.244.0.0/16

按提示执行(仅master节点):

  mkdir -p $HOME/.kube
  sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
  sudo chown $(id -u):$(id -g) $HOME/.kube/config

查看nodes及pods:

kubectl get nodes
kubectl get pod -n kube-system
安装flannel网络组件(仅master节点)

docker.io、gcr.io、quay.io镜像加速

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

kube-flannel.yml 文件及对应镜像建议提前pull到本地

添加node节点

k8s删除node k8s 集群 节点状态显示notready 如何向Kubernetes中的节点添加角色?

kubeadm token create --print-join-command
应用安装及访问

k8s系列之安装k8s仪表盘(Dashboard) 注意事项:

  1. 可以提前 docker pull eipwork/kuboard:latest
  2. 修改 imagePullPolicy 值为 IfNotPresentNever
配置kubectl命令补全

kubectl是用于与k8s集群交互的一个命令行工具,操作k8s基本离不开这个工具,所以该工具所支持的命令比较多。好在kubectl支持设置命令补全,使用kubectl completion -h可以查看各个平台下的设置示例。这里以Linux平台为例,演示一下如何设置这个命令补全,完成以下操作后就可以使用tap键补全命令了。

[root@master ~]# yum install bash-completion -y
[root@master ~]# source /usr/share/bash-completion/bash_completion
[root@master ~]# source <(kubectl completion bash)
[root@master ~]# kubectl completion bash > ~/.kube/completion.bash.inc
[root@master ~]# printf "  
# Kubectl shell completion  
source '$HOME/.kube/completion.bash.inc'  
" >> $HOME/.bash_profile
[root@master ~]# source $HOME/.bash_profile

相关学习资料及参考

cread.jd.com/read/startR… github.com/kubeguide/K…