需求:部署两台k8s节点。一台master,一台worker。集群版本为:v1.22.3
一、环境准备
1、修改主机名和hosts文件
- 分别修改节点主机名 ```shell hostnamectl set-hostname master
```shell
hostnamectl set-hostname node1
- 修改hosts映射 ```shell vim /etc/hosts
192.168.5.239 master 192.168.5.135 node1
<a name="TRBgJ"></a>
## 2、卸载podman
- centos8默认安装了podman容器,它和docker可能有冲突需要卸载掉
```shell
sudo yum remove podman
3、关闭交换区
临时关闭
sudo swapoff -a
永久关闭
把/etc/fstab中的swap注释掉sudo sed -i 's/.*swap.*/#&/' /etc/fstab
4、禁用selinux
临时关闭 ```shell setenforce 0
- 永久关闭
```shell
sudo sed -i "s/^SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
5、关闭防火墙
sudo systemctl stop firewalld.service
sudo systemctl disable firewalld.service
二、安装K8S
1、配置系统基本安装源
sudo curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-8.repo
2、添加K8S安装源
vim /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
注意:由于目前阿里镜像中还没有CentOS8的kubernetes,但是可以使用CentOS7的安装包,所以上面是使用的kubernetes-el7-x86_64,如果有CentOS8的,则为kubernetes-el8-x86_64。
3、Centos安装docker
sudo yum install -y yum-utils device-mapper-persistent-data lvm2 net-tools
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sudo yum -y install docker-ce
- 如果报错
wget https://download.docker.com/linux/centos/7/x86_64/edge/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpm
- 若还是报错 ```shell yum erase podman buildah
- 为了docker加速pull,可以设置阿里云加速:
```shell
sudo mkdir -p /etc/docker
sudo vim /etc/docker/daemon.json
- 添加内容 ```shell { “registry-mirrors” : [“https://mj9kvemk.mirror.aliyuncs.com“] }
<a name="Xs3wJ"></a>
## 4、ubuntu安装docker
- 干净的卸载掉你系统中的 docker
```shell
sudo apt-get purge docker-ce docker-ce-cli containerd.io
sudo rm -rf /var/lib/docker
1.常归删除操作
sudo apt-get autoremove docker docker-ce docker-engine docker.io containerd runc
2. 删除docker其他没有没有卸载
dpkg -l | grep docker
dpkg -l |grep ^rc|awk ‘{print $2}’ |sudo xargs dpkg -P # 删除无用的相关的配置文件
3.卸载没有删除的docker相关插件(结合自己电脑的实际情况)
sudo apt-get autoremove docker-ce-*
4.删除docker的相关配置&目录
sudo rm -rf /etc/systemd/system/docker.service.d
sudo rm -rf /var/lib/docker
5.确定docker卸载完毕
docker --version
- 安装apt相应的依赖 ```shell 先更新一下 sudo apt-get update
安装相应的依赖 sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ gnupg-agent \ software-properties-common
- 添加 Docker 的官方 GPG 密钥
```shell
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
- 验证密钥
sudo apt-key fingerprint 0EBFCD88
- 根据你不同的系统去设置一个稳定的仓库 ```shell
1.x86_64/amd64
sudo add-apt-repository \ “deb [arch=amd64] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) \ stable”
- 再更新一次 apt
```shell
sudo apt-get update
安装最新的 docker
sudo apt-get install docker-ce docker-ce-cli containerd.io
查看是否安装成功
sudo docker -v
添加docker仓库 ```shell 创建 daemon.json 文件 $ touch daemon.json
编辑文件 $ sudo vim /etc/docker/daemon.json
在弹出来的文本框中收入下面这段,保存 { “registry-mirrors”: [“https://docker.mirrors.ustc.edu.cn“] }
<a name="KaGR5"></a>
# 三、安装kubectl、kubelet、kubeadm
<a name="ndWM8"></a>
## 1、安装kubectl、kubelet、kubeadm,设置kubelet开机启动,启动kubelet。
```shell
sudo yum install -y kubectl kubelet kubeadm
sudo systemctl enable kubelet
sudo systemctl start kubelet
2、查看k8s版本
kubeadm version
kubectl version --client
kubelet --version
3、配置docker的cgroup驱动为systemd
查看当前的cgroup驱动
docker info | grep Cgroup
修改驱动
vim /usr/lib/systemd/system/docker.service
--exec-opt native.cgroupdriver=systemd
然后重启docker,再查看信息,可以看到已经变为systemd了
systemctl daemon-reload
systemctl restart docker
docker info | grep Cgroup
4、初始化kubernetes集群
kubeadm init --apiserver-advertise-address=0.0.0.0 \
--apiserver-cert-extra-sans=127.0.0.1 \
--image-repository=registry.aliyuncs.com/google_containers \
--ignore-preflight-errors=all \
--kubernetes-version=v1.21.1 \
--service-cidr=10.10.0.0/16 \
--pod-network-cidr=10.18.0.0/16
出现以下情况表示成功
根据提示操作
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
执行
kubectl get node
kubectl get pod --all-namespaces
此为安装好的集群
但是此时node节点为NotReady,因为coredns pod没有启动,缺少网络pod。
5、安装calico网络
kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
四、把worker节点加入到cluster
1、得到join命令:要在master节点上执行
kubeadm token create --print-join-command
得到如下:
kubeadm join 192.168.5.239:6443 --token lmjiua.ddj61spss91lyeav --discovery-token-ca-cert-hash sha256:4e85dabed6fea2b436fffb4f3d08b06eb6030353c212d61e64ca86e6ed433996
2、worker节点的ip要加入到master节点的防火墙
firewall-cmd --permanent --zone=trusted --add-source=192.168.219.136
firewall-cmd --reload
3、回到worker节点上执行
kubeadm join 192.168.5.239:6443 --token lmjiua.ddj61spss91lyeav --discovery-token-ca-cert-hash sha256:4e85dabed6fea2b436fffb4f3d08b06eb6030353c212d61e64ca86e6ed433996
如下信息表示成功
- 在master节点上查看node
五、安装kubernetes-dashboard
1、将官方的recommended.yaml文件下载下来
wget https://raw.githubusercontent.com/kubernetes/dashboard/master/aio/deploy/recommended.yaml
2、添加配置
kind: Service
apiVersion: v1
metadata:
labels:
k8s-app: kubernetes-dashboard
name: kubernetes-dashboard
namespace: kubernetes-dashboard
spec:
type: NodePort #添加这行
ports:
- port: 443
targetPort: 8443
nodePort: 30000 #添加这行
selector:
k8s-app: kubernetes-dashboard
- 如图
3、然后创建POD,并查看kubernetes-dashboard
kubectl create -f recommended.yaml
kubectl get svc -n kubernetes-dashboard
4、访问可视化界面
https://192.168.5.239:30000/#/login
5、登陆方式
使用Token登录
使用Kubeconfig登录