Linux之k8s+docker集群的部署及图形化管理界面

一、k8s集群的部署

1. 将之前swarm集群的所有配置清理

docker stack rm portainer
docker volume prune	#清理卷
docker network prune	#清理网络
docker rm -f 进程id	#清理进程
docker ps
docker ps -a
docker swarm leave	#清理节点,master可以加上-f,强制退出节点
docker node rm server2	#删除节点
docker service rm 进程id	#删除服务

2. 实验准备

三台虚拟机server1、server2、server3,每个结点均安装docker环境

server1——管理结点(172.25.5.1)

server2和server3——从结点(172.25.5.2和172.25.5.3)

3. 对三个结点进行操作

(1)关闭swap,禁止swap分区开机自启

swapoff -a	#关闭swap
vim /etc/fstab
#/dev/mapper/rhel-swap   swap                    swap    defaults        0 0

(2)三个结点同时安装kubernet服务,导入相关镜像

#安装以下软件
cri-tools-1.13.0-0.x86_64.rpm
kubelet-1.15.0-0.x86_64.rpm
kubeadm-1.15.0-0.x86_64.rpm
kubernetes-cni-0.7.5-0.x86_64.rpm
kubectl-1.15.0-0.x86_64.rpm
#导入以下镜像
coredns.tar  kube-apiserver.tar  kube-proxy.tar  pause.tar
etcd.tar  kube-controller-manager.tar  kube-scheduler.tar

for i in *.tar; do docker load -i $i ; done	#循环导入镜像

4. server1中操作

编写k8s配置文件,并将该文件拷贝到server2和server3中

vim /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
sysctl --system		#使设置生效
scp /etc/sysctl.d/k8s.conf server2:    #拷贝配置文件到各个结点
scp /etc/sysctl.d/k8s.conf server3:

在三个结点同时开启kubernet服务

systemctl enable kubelet
systemctl start kubelet

5. server1作为管理结点,进行init初始化

kubeadm init --pod-network-cidr=10.244.0.0/16 --apiserver-advertise-address=172.25.5.1

根据初始化后的提示,将server2和server3添加到集群中(server2和server3中操作)

kubeadm join 172.25.5.1:6443 --token 4othmd.gi899esjgei42do7 --discovery-token-ca-cert-hash sha256:1e8cb731b0005c306a9d9bafa32efb1fc2462f7060e468e825a5b793c693437f

6. server1中根据初始化提示,创建普通用户及管理文件

useradd kubeadm
vim /etc/sudoers	#下放权力
kubeadm ALL=(ALL)       NOPASSWD:ALL
su - kubeadm
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
systemctl restart kubelet
kubectl get nodes	#server1中查看集群节点是否添加成功,添加成功的状态均为notready

7. 下载驱动镜像,用来开启各结点

flannel.tar   kube-flannel.yml
#将kube-flannel.yml文件移动到/home/kubeadm文件中
#在所有节点导入驱动镜像flannel.tar
docker load -i flannel.tar
scp flannel.tar server2:
scp flannel.tar server3:
## 切换到kubeadm用户,通过yml文件开启服务
kubectl apply -f kube-flannel.yml        #通过该文件打开应用服务

8. 查看结点的状态,设置命令补全功能

kubectl get nodes	#status状态均变为ready
kubectl get pods --all-namespaces 
echo "source <(kubectl completion bash)" >> .bashrc    #用户配置命令补全功能
#退出在登录使设置生效

二、k8s图形化管理

实验准备:kubernetes-dashboard.tar  kubernetes-dashboard.yaml

1. 导入图形化界面管理镜像

docker load -i kubernetes-dashboard.tar
su - kubeadm
kubectl get deployments. -n kube-system     
kubectl get pods -n kube-system

2. 通过dashboard文件创建服务,修改服务的类型

kubectl create -f kubernetes-dashboard.yaml 
kubectl edit services kubernetes-dashboard -n kube-system
Type:NodePort
kubectl describe svc kubernetes-dashboard -n kube-system    #查看服务具体信息

3. 编辑dashboard-admin.yaml文件,创建用户

vim dashboard-admin.yaml 
apiVersion: v1
kind: ServiceAccount
metadata:
  name: admin-user
  namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: admin-user
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
- kind: ServiceAccount
  name: admin-user
  namespace: kube-system

4. 应用文件中的设置,获取用户密码

kubectl create -f dashboard-admin.yaml
kubectl apply -f dashboard-admin.yaml
kubectl get secrets -n kube-system | grep admin    #过滤admin用户
kubectl describe secrets admin-user-token-2fwbd -n kube-system    #查看令牌环密码

5. 登录图形界面

http://172.25.5.1:30763

 

你可能感兴趣的:(Linux之k8s+docker集群的部署及图形化管理界面)