Istio-在Linux上安装Docker、kubernetes以及kubernetes所需要的镜像

网友投稿 1137 2022-10-29

本站部分文章、图片属于网络上可搜索到的公开信息,均用于学习和交流用途,不能代表睿象云的观点、立场或意见。我们接受网民的监督,如发现任何违法内容或侵犯了您的权益,请第一时间联系小编邮箱jiasou666@gmail.com 处理。

Istio-在Linux上安装Docker、kubernetes以及kubernetes所需要的镜像

概述

经过几天的学习,目前已经可以通过添加几个配置文件把一个普通项目打包成docker镜像,并且使用k8s(单节点)部署,我的中期目标是使用k8s搭建高可用集群,由于公司测试环境有多台机器,方便测试集群,所以我先在公司内网机器上安装所需要的环境。

环境

本次机器的操作系统为:Red Hat Enterprise Linux (RHEL) 7。


$ cat /etc/redhat-release

Red Hat Enterprise Linux Server release 7.5 (Maipo)

安装docker

包括安装、查看版本、查看配置、启动、查看状态、停止和设置为开机启动。

安装


$ yum -y install docker

机器不能访问外网,但是/etc/yum.repos.d/CentOS7-Base.repo已经配置了公司内网镜像。

查看版本


$ docker version

查看配置


$ docker info

启动


$ systemctl start docker

查看状态


$ systemctl status docker

停止


$ systemctl stop docker

开机启动


$ systemctl enable docker.service

Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.

安装kubernetes

需要安装kubeadm、kubelet 和 kubectl,以及设置为开机启动。

开放端口

由于安装k8s需要使用很多的端口,为了方便我先暂时关闭防火墙(生产环境建议按照k8s官方建议一个一个开启)。


$ systemctl stop firewalld

安装

在/etc/yum.repos.d/目录下创建文件kubernetes.repo:


[kubernetes]

name=Kubernetes

proxy=http://localhost:3128/

baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64

enabled=1

gpgcheck=0

repo_gpgcheck=0

gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg

http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg

官方给的地址是google.com,国内不好访问,公司镜像竟然也不能下载,所以这里改为阿里云镜像地址,另外由于这台机器无法访问外网阿里云,所有又加了一个代理。

禁用selinux,编辑/etc/selinux/config:


SELINUX=disabled

禁用交换分区,kubeadm的安装中有说明。编辑/etc/fstab,注释掉带有swap的那一行:


# k8s需要禁用交换分区

#/dev/mapper/rhel-swap swap swap defaults 0 0

安装:


$ yum install -y kubelet-1.16.5 kubeadm-1.16.5 kubectl-1.16.5 --disableexcludes=kubernetes

开机启动


systemctl enable --now kubelet

docker代理

初始化k8s时需要下载很多镜像,由于内网机器不能联网拉取镜像,所以给docker配置代理。

为docker服务创建插件目录:


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

创建一个名为的文件/etc/systemd/system/docker.service.d/http-proxy.conf,添加HTTP_PROXY环境变量:


[Service]

Environment="HTTP_PROXY=http://127.0.0.1:3128/"

同目录下,再创建一个https代理https-proxy.conf:


[Service]

Environment="HTTPS_PROXY=http://127.0.0.1:3128/"

重新读取配置:


$ systemctl daemon-reload

重启docker服务:


$ systemctl restart docker

查看是否已加载配置:


$ systemctl show --property=Environment docker

安装k8s需要的镜像

使用kubeadm命令查看我们需要安装的镜像以及对于的版本:


$ kubeadm config images list

k8s.gcr.io/kube-apiserver:v1.16.5

k8s.gcr.io/kube-controller-manager:v1.16.5

k8s.gcr.io/kube-scheduler:v1.16.5

k8s.gcr.io/kube-proxy:v1.16.5

k8s.gcr.io/pause:3.1

k8s.gcr.io/etcd:3.3.15-0

k8s.gcr.io/coredns:1.6.2

由于k8s.gcr.io网络不好访问,我们使用gotok8s:


# load_images.sh

#!/bin/bash



file="images"



if [ -f "$file" ]

then

echo "$file found."



while IFS='=' read -r key value

do

#echo "${key}=${value}"

docker pull ${value}

docker tag ${value} ${key}

docker rmi ${value}

done < "$file"



else

echo "$file not found."

fi


# images

k8s.gcr.io/kube-proxy:v1.16.5=gotok8s/kube-proxy:v1.16.5

k8s.gcr.io/kube-controller-manager:v1.16.5=gotok8s/kube-controller-manager:v1.16.5

k8s.gcr.io/kube-scheduler:v1.16.5=gotok8s/kube-scheduler:v1.16.5

k8s.gcr.io/kube-apiserver:v1.16.5=gotok8s/kube-apiserver:v1.16.5

k8s.gcr.io/coredns:1.6.2=gotok8s/coredns:1.6.2

k8s.gcr.io/pause:3.1=gotok8s/pause:3.1

k8s.gcr.io/etcd:3.3.15-0=gotok8s/etcd:3.3.15-0

查看k8s服务:


$ kubectl get services

NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE

kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 5d17h

参考文档

https://docker.com/get-startedhttps://kubernetes.io/zh/docs/home/

上一篇:告警通知的方法(警告处理通知)
下一篇:高运算处理能力(High Performance)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~