基础环境配置:
1、centos7最小化安装
2、配置网络,xshell远程连接
3、安装常用工具
yum install -y bash-completion vim lrzsz wget expect net-tools nc nmap treedos2unix htop iftop iotop unzip telnet sl psmisc nethogs glances bc ntpdateopenldap-devel
4、更新阿里云yum源
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
5、清空本地缓存
yum clean all
6、生成新的缓存
yum makecache
7、清空防火墙
iptables -F
getenforce
8、关闭防火墙
systemctl disable firewalld
9、禁止防火墙开机自启
systemctl stop firewalld
安装docker:
1、开启linux内核的流量转发
cat <<EOF > /etc/sysctl.d/docker.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.conf.default.rp_filter = 0
net.ipv4.conf.all.rp_filter = 0
net.ipv4.ip_forward=1
EOF
2、生效配置
modprobe br_netfilter
sysctl -p /etc/sysctl.d/docker.conf
3、配置好yum仓库
(1)阿里云仓库
(2)阿里云docker专属repo仓库
查看当前yum中是否有docker-ce软件包
yum list docker-ce --showduplicates | sort -r
更新yum仓库
curl -o /etc/yum.repos.d/Centos-7.repo http://mirrors.aliyun.com/repo/Centos-7.repo
curl -o /etc/yum.repos.d/docker-ce.repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
更新yum缓存
yum clean all && yum makecache
再看下docker版本
yum list docker-ce --showduplicates | sort -r
4、安装yum
yum install docker-ce-20.10.6 -y
如果要卸载:yum remove docker-xxx
5、配置docker加速器
mkdir -p /etc/docker
touch /etc/docker/daemon.json
{
"registry-mirrors" : [
"https://reg-mirror.qiniu.com"
]
}
6、重新生效配置文件
systemctl daemon-reload
7、设置开机启动
systemctl enable docker
8、重启docker
systemctl restart docker
9、验证docker
docker version
操作演示:
搜索镜像
docker search nginx
查看本地镜像
docker image ls
删除镜像(被删除的镜像不能有容器运行记录,如果有需要先删除容器)
docker rmi 镜像id
拉取镜像
docker pull nginx
运行镜像
docker run 参数 镜像名字/id
docker run -d -p 80:80 nginx (-d是后台运行,-p指定映射端口)
查看运行中的容器
docker ps
查看容器运行记录
docker ps -a
删除容器
docker rm 容器id
停止容器
docker stop 容器id/名字
启动容器
docker start 容器id/名字
重启容器
docker restart 容器id/名字
运行容器且进入容器内
docker run -it 容器id/名字 bash (-i交互式,-t开启一个终端)
进入到正在运行的容器中
docker exec -it 容器id/名字 bash
查看docker相关信息
docker info
导出镜像
docker image save 容器id > /路径/xxxx.tgz
导入镜像
docker image load -i /路径/xxxx.tgz
查看镜像详细信息
docker image inspect 容器id
启动容器并做好端口映射
docker run -d --name wmh-nginx-85 -p 85:80 nginx (-d是后台运行,--name是给容器起个名字,-p指定映射端口 85是宿主机端口、80是容器端口,如果是-P则宿主机随机找空闲端口来映射)
查看容器端口映射信息
docker port 容器id
k8s安装:
1、机器准备,环境初始化
三台centos7虚拟机,修改主机名
hostnamectl set-hostname k8s-master-66
hostnamectl set-hostname k8s-node-77
hostnamectl set-hostname k8s-node-88
改完reboot重启
修改hosts配置
cat >>/etc/hosts <<'EOF'
192.168.253.66 k8s-master-66
192.168.253.77 k8s-node-77
192.168.253.88 k8s-node-88
EOF
查看/etc/hosts
测试联通性
ping -c 2 k8s-master-66
ping -c 2 k8s-node-77
ping -c 2 k8s-node-88
防火墙初始化
systemctl stop firewalld NetworkManager
systemctl disable firewalld NetworkManager
sed -ri 's#(SELINUX=).*#\1disabled#' /etc/selinux/config
setenforce 0
systemctl disable firewalld && systemctl stop firewalld
getenforce 0
iptables -F
iptables -X
iptables -Z
iptables -P FORWARD ACCEPT
关闭swap
swapoff -a
#防止开机自动挂载 swap 分区
sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
yum源配置
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
sed -i '/aliyuncs/d' /etc/yum.repos.d/*.repo
yum clean all && yum makecache fast
ntp配置
yum install chrony -y
systemctl start chronyd
systemctl enable chronyd
date
ntpdate -u ntp.aliyun.com
hwclock -w
修改内核参数,开启数据包转发功能
cat <<EOF > /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward=1
vm.max_map_count=262144
EOF
modprobe br_netfilter
sysctl -p /etc/sysctl.d/k8s.conf
安装docker:
yum remove docker docker-common docker-selinux docker-engine -y
curl -o /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum makecache fast
yum list docker-ce --showduplicates
yum install docker-ce-19.03.15 docker-ce-cli-19.03.15 -y
#配置docker加速器、以及crgoup驱动,改为k8s官方推荐的systemd,否则初始化时会有报错.
mkdir -p /etc/docker
cat > /etc/docker/daemon.json <<'EOF'
{
"registry-mirrors" : ["https://reg-mirror.qiniu.com"],
"exec-opts" : ["native.cgroupdriver=systemd"]
}
EOF
#启动
systemctl start docker && systemctl enable docker
docker version
安装k8s: kubelet-1.19.3 kubeadm-1.19.3 kubectl-1.19.3
#设置阿里云源
curl -o /etc/yum.repos.d/Centos-7.repo http://mirrors.aliyun.com/repo/Centos-7.repo
curl -o /etc/yum.repos.d/docker-ce.repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
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
EOF
yum clean all && yum makecache
#列出,这个阿里云k8s源,提供了哪些k8s版本让你玩
#yum list kubeadm --showduplicates安装指定版本 kubeadm-1.19.3,安装的kubeadm版本,就是决定了,拉去什么版本的k8s集群版本的镜像
yum install kubelet-1.19.3 kubeadm-1.19.3 kubectl-1.19.3 ipvsadm
安装完k8s后设置所有节点的kubelet开机运行
systemctl enable kubelet
systemctl enable docker
初始化k8s-master主节点(只在主节点执行)
kubeadm init --kubernetes-version=v1.19.3 --pod-network-cidr=10.244.0.0/16 --image-repository registry.aliyuncs.com/google_containers --service-cidr=10.96.0.0/12 --apiserver-advertise-address=192.168.253.66
#配置文件
mkdir .kube
cp -i /etc/kubernetes/admin.conf ./.kube/config
#查看k8s集群状态
主节点使用
kubectl get nodes -owide(显示更详细的信息)
#加入k8snode到集群中
kubeadm join 192.168.253.66:6443 --token 28dyih.fn352cbpe4behosb --discovery-token-ca-cert-hash sha256:4f28476ba53837c32b270bf4866f207a8c41c5b09757d008106a371c9e3686ac
#k8s命令补齐
yum install bash-completion -y
source /usr/share/bash-completion/bash_completion
source <(kubectl completion bash)
echo "source <(kubectl completion bash)" >>/.bashrc
#创建集群网络让集群就绪
下载flannel-master.zip
解压后修改kube-flannel.yml
args:
- --ip-masq
- --kube-subnet-mgr
- --iface=enp0s8
kubectl create -f ./kube-flannel.yml
#查询集群节点状态
[root@k8s-master-66 ~]# kubectl get nodes -o wide
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
k8s-master-66 Ready master 172m v1.19.3 192.168.253.66 <none> CentOS Linux 7 (Core) 3.10.0-1160.el7.x86_64 docker://19.3.15
k8s-node-77 Ready <none> 68m v1.19.3 192.168.253.77 <none> CentOS Linux 7 (Core) 3.10.0-1160.el7.x86_64 docker://19.3.15
k8s-node-88 Ready <none> 69m v1.19.3 192.168.253.88 <none> CentOS Linux 7 (Core) 3.10.0-1160.el7.x86_64 docker://19.3.15
#k8s命令帮助
kubectl run --help