需要三台虚拟机
| 192.168.0.111 --docker1 | 4G内存 | 最少40G硬盘 |
|---|---|---|
| 192.168.0.109 --docker2 | 2G内存 | 最少40G硬盘 |
| 192.168.0.113 --docker3 | 2G内存 | 最少40G硬盘 |
本地解析以及密钥传输
[root@docker-1 ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.0.111 server1
192.168.0.109 server2
192.168.0.113 server3
分别传送到 server2 和 server3 用scp传递
ssh-keygen #生成一个密钥
ssh-copy-id -i root@server2 #将密钥传输到server2
ssh-copy-id -i root@server3 #将密钥传输到server3
关闭swap内存并在sysctl
swapoff -a #暂时关闭
在修改vim /etc/sysctl.conf
[root@docker-2 ~]# cat /etc/sysctl.conf | egrep -v '^[$|#]'
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
vm.swappiness = 0
sysctl -p 在内存中更新一下
安装kubernetes的网络源
三台都做
启动 docker 并加入开机自启动的列表
systemctl start docker
systemctl enable docker
yum -y install bash-c* #安装一下命令补全键 (tab)
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
安装kubernetes
三台都做
yum --disablerepo “*” --enablerepo “kubernetes” list available --showduplicates
#禁用所有的repo源 只允许 kubernetes 这个源进行使用 list available 列出资源库中所有可以安装的rpm包 列出资源库中与正则表达式匹配的所有可以安装的rpm包 --showduplicates参数列出所有版本
yum install kubelet-1.21.6-0.x86_64 kubeadm-1.21.6-0.x86_64 kubectl-1.21.6-0.x86_64 -y #安装指定版本21.6
配置环境变量
三台都做
source <(kubectl completion bash)
source <(kubeadm completion bash)|
将其加入.bashrc中
kubectl version

kubeadm config images pull --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.21.6 #下载镜像registry默认是从google下载的现在我们从阿里云上面下载
kubernetes初始化
第一台
kubeadm init --apiserver-advertise-address=192.168.0.111 -image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.21.6#你当前主机的地址也就是4G地址 你的镜像 你的版本 你要分配的网段是什么
下载之后可以按照上面的提示进行操作
#如果你是普通用户可以敲下面的命令,如果你是管理员用户的话也可以无所谓
[root@docker-1 ~]# mkdir -p $HOME/.kube
[root@docker-1 ~]# sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
[root@docker-1 ~]# sudo chown $(id -u):$(id -g) $HOME/.kube/config
[root@docker-1 ~]# export KUBECONFIG=/etc/kubernetes/admin.conf
网络
第一台就行
如果你要部署网络的时候需要这条命令
https://kubernetes.io/docs/concepts/cluster-administration/addons/


按照这个链接进行下载
wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml .
也可以进去进行复制粘贴
最好使用vi进行编辑 保留原格式 使用vim进去加 set paste
进去之后 这个kube-flannel.yml
按照quay.io/coreos/flannel:v0.15.0这个镜像
docker pull quay.io/coreos/flannel:v0.15.0 三台主机都要下载
根据刚才的提示 kube-flannel.yml

三台都要
systemctl enable kubelet.service

根据上面提示 把客户端加进来 #server2 server3
查看是否成功
[root@docker-1 ~]# kubectl get nodes

ready就行

kubectl get pod --all-namespaces #Running状态就算成功
然后 就可以拍个快照了
kubernetes UI化图形界面
第一台
https://kubernetes.io/docs/tasks/access-application-cluster/web-ui-dashboard/
还是用wget https://github.com/kubernetes/dashboard/blob/master/aio/deploy/recommended.yaml .
再用 kubectl apply -f recommended.yaml #看一下集群是否部署完成

[root@docker-1 ~]# kubectl get service --namespace kubernetes-dashboard
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
dashboard-metrics-scraper ClusterIP 10.105.129.110 <none> 8000/TCP 2m24s
kubernetes-dashboard ClusterIP 10.109.103.105 <none> 443/TCP 2m24s、
然后编辑这个文件
[root@docker-1 ~]# kubectl edit --namespace kubernetes-dashboard service kubernetes-dashboard

类型改成 NodeProt
给一个大于30000的端口
查看是否有这个端口
然后打开浏览器
[Kubernetes Dashboard](https://192.168.0.111:30002/#/login)
如果用的是chrome浏览器 输入下面的就行#这是不安全的
需要创建一个管理员账户
vim k8s-admin.yml
apiVersion: v1
kind: ServiceAccount
metadata:
name: dashboard-admin
namespace: kube-system
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
name: dashboard-admin
subjects:
- kind: ServiceAccount
name: dashboard-admin
namespace: kube-system
roleRef:
kind: ClusterRole
name: cluster-admin
apiGroup: rbac.authorization.k8s.io
然后应用一下就行 kubectl apply -f k8s-admin.yml
然后找到一个 dashboard-admin-token-jfsjj

kubectl describe secrets dashboard-admin-token-jfsjj --namespace kube-system
#describe 详细的信息 secrets 你的秘密是那个 在这个里面
把这些值复制下来



就欧克了