Kubernetes集群yum安装部署

第四阶段

时  间:2023年8月10日

参加人:全班人员

内  容:

Kubernetes集群yum安装部署

目录

yum方式部署K8S集群

一、环境搭建

1、准备环境

2、关闭防火墙

3、修改master主机的计算机名设置host文件

二、安装部署

(一)安装master节点

(二)安装k8s-master上的node

(三)安装配置k8s-node1节点

(四)安装k8s-node2节点

(五)为所有node节点配置flannel网络

(六)配置docker开启加载防火墙规则允许转发数据

三、k8s常用资源管理

1、创建一个pod

2、pod管理

3、pod操作


yum方式部署K8S集群

一、环境搭建

1、准备环境

计算机说明,建议系统版本7.4或者7.6

主机名

IP地址

角色

硬件

k8s-master

192.168.100.131

Master,node

Etcd、apiserver、controlor-manager、scheduler、kube-proxy、docker、registry

K8s-node1

192.168.100.132

Node

Kubletel、kube-proxy、docker

K8s-node2

192.168.100.133

Node

Kubletel、kube-proxy、docker

2、关闭防火墙

[root@huyang1 ~]# systemctl stop firewalld

[root@huyang1 ~]# iptables -F

[root@huyang1 ~]# setenforce 0

 

3、修改master主机的计算机名设置host文件

[root@centos01 ~]# hostnamectl k8s-master

[root@centos01 ~]# bash

[root@k8s-master ~]# vim /etc/hosts

[root@k8s-master ~]#

scp /etc/hosts k8s-node01:/etc/hosts

[root@k8s-master ~]#

scp /etc/hosts k8s-node02:/etc/hosts

[root@centos02 ~]# hostnamectl  k8s-node1

[root@centos02 ~]# bash

[root@centos03 ~]# hostnamectl  k8s-node2

[root@centos03 ~]# bash

二、安装部署

(一)安装master节点

1)安装etcd配置etcd

[root@k8s-master ~]# yum -y install etcd

[root@k8s-master ~]# cp /etc/etcd/etcd.conf /etc/etcd/etcd.conf.bak

 

[root@k8s-master ~]# vim /etc/etcd/etcd.conf

 

[root@k8s-master ~]# systemctl start etcd

[root@k8s-master ~]# systemctl enable etcd

 

2)安装k8s-master节点

[root@k8s-master ~]#yum  -y install

kubernetes-master.x86_64

 

3)配置apiserver

[root@k8s-master ~]# ls /etc/kubernetes/

 

[root@k8s-master ~]# vim /etc/kubernetes/apiserver

配置如下:

 

4)配置controller和scheduler

[root@k8s-master ~]# vim /etc/kubernetes/config

配置如下:

 

5)启动k8s服务

[root@k8s-master ~]# systemctl start kube-apiserver.service

kube-controller-manager.service

kube-scheduler.service

[root@k8s-master ~]# systemctl enable kube-apiserver.service

kube-controller-manager.service

kube-scheduler.service

 

6)检查节点安装都是健康的

[root@k8s-master ~]# kubectl get componentstatus

 

(二)安装k8s-master上的node

1)安装node

[root@k8s-master ~]# yum install kubernetes node.x86_64

 

2)配置kubelet

[root@k8s-master ~]# vim /etc/kubernetes/kubelet

配置如下:

 

3)启动kubelet启动自动启动docker服务

[root@k8s-master ~]# systemctl start kubelet

[root@k8s-master ~]# systemctl enable kubelet

4)启动kubelet-proxy

[root@k8s-master ~]# systemctl start kube-proxy

[root@k8s-master ~]# systemctl enable kube-proxy

 

5)检查node节点

[root@k8s-master ~]# kubectl get nodes

 

(三)安装配置k8s-node1节点

1)安装node

[root@k8s-node1 ~]# yum install kubernetes node.x86_64

 

2)node1连接k8s-master

[root@k8s-node01 ~]# ls /etc/kubernetes/

 

[root@k8s-node1 ~]# vim /etc/kubernetes/config

 

3)配置kubelet

[root@k8s-node1 ~]# vim /etc/kubernetes/kubelet

 

4)启动服务

[root@k8s-node1 ~]# systemctl start kubelet

[root@k8s-node1 ~]# systemctl start kube-proxy

[root@k8s-node1 ~]# systemctl enable kubelet

[root@k8s-node1 ~]# systemctl enable kube-proxy

 

5)在master节点检测node节点状态

[root@k8s-master ~]# kubectl get nodes

 

(四)安装k8s-node2节点

1)安装node

[root@k8s-node2 ~]# yum install kubernetes node.x86_64

2)node1连接k8s-master

[root@k8s-node2 ~]# vim /etc/kubernetes/config

配置如下:

 

 

3)配置kubelet

[root@k8s-node2 ~]# vim /etc/kubernetes/kubelet

 

4)启动服务

[root@k8s-node2 ~]# systemctl start kubelet

[root@k8s-node2 ~]# systemctl start kube-proxy

[root@k8s-node2 ~]# systemctl enable kubelet

[root@k8s-node2 ~]# systemctl enable kube-proxy

 

5)在master节点检测node节点状态

[root@k8s-master ~]# kubectl get nodes

 

(五)为所有node节点配置flannel网络

1)在k8s-master节点安装flannel

[root@k8s-master ~]# yum install flannel -y

[root@k8s-master ~]# ls /etc/sysconfig/

[root@k8s-master ~]# vim /etc/sysconfig/flanneld

[root@k8s-master ~]# etcdctl set /atomic.io/network/config '{ "Network": "172.16.0.0/16" }' //配置网络

[root@k8s-master ~]# systemctl start flanneld

[root@k8s-master ~]# systemctl enable flanneld

[root@k8s-master ~]# ifconfig //查看多一个网络

[root@k8s-master ~]# systemctl restart docker //重新启动docker服务和flannel网络保持一致

[root@k8s-master ~]# systemctl enable docker

[root@k8s-master ~]# ifconfig

Ps备注:自动安装了docker容器,在这版本下,k8s和docker还是融合在一起使用的

2)配置node1节点flannel网络

[root@k8s-node1 ~]# yum install flannel -y

[root@k8s-node01 ~]# ls /etc/sysconfig/

[root@k8s-node1 ~]# vim /etc/sysconfig/flanneld

配置如下:

[root@k8s-node1 ~]# systemctl start flanneld

[root@k8s-node1 ~]# systemctl enable flanneld

[root@k8s-node1 ~]# systemctl restart docker

[root@k8s-node1 ~]# systemctl enable docker

[root@k8s-node01 ~]# ifconfig

 

3)安装node2节点flannel网络

[root@k8s-node2 ~]# yum install flannel -y

[root@k8s-node02 ~]# ls /etc/sysconfig/

[root@k8s-node2 ~]# vim /etc/sysconfig/flanneld

配置如下:

[root@k8s-node2 ~]# systemctl start flanneld

[root@k8s-node2 ~]# systemctl enable flanneld

[root@k8s-node2 ~]# systemctl restart docker

[root@k8s-node2 ~]# systemctl enable docker

[root@k8s-node02 ~]# ifconfig

 

4)测试docker容器跨宿主机通信

[root@k8s-node1 ~]# iptables -P FORWARD ACCEPT

//允许转发数据

[root@k8s-node2 ~]# iptables -P FORWARD ACCEPT

[root@k8s-master ~]# iptables -P FORWARD ACCEPT

[root@k8s-master ~]# docker pull busybox

//下载镜像,而后进入docker run -it busybox

[root@k8s-noded01 ~]# docker run -it busybox

[root@k8s-noded02 ~]# docker run -it busybox

/ # ping 172.16.31.2 //测试和其他docker宿主机之间通信

 

(六)配置docker开启加载防火墙规则允许转发数据

1)配置k8s-master节点

[root@k8s-master ~]# vim /usr/lib/systemd/system/docker.service

[root@k8s-master ~]# systemctl daemon-reload

[root@k8s-master ~]# systemctl restart docker

2)配置k8s-node1节点

[root@k8s-node1 ~]# vim /usr/lib/systemd/system/docker.service

[root@k8s-node1 ~]# systemctl daemon-reload

[root@k8s-node1 ~]# systemctl restart docker

3)配置k8s-node2节点

[root@k8s-node2 ~]# vim /usr/lib/systemd/system/docker.service

[root@k8s-node2 ~]# systemctl daemon-reload

[root@k8s-node2 ~]# systemctl restart docker

三、k8s常用资源管理

1、创建一个pod

1)创建yuml文件

[root@k8s-master ~]# mkdir k8s

[root@k8s-master ~]# vim ./k8s/nginx.yaml

配置如下:

apiVersion: v1
kind: Pod
metadata:
  name: nginx
  labels:
    app: web
spec:
  containers:
    - name: nginx01
      image: nginx:1.16
      ports:
        - containerPort: 80
    - name: busybox
      image: docker.io/busybox:latest
      command: ["sleep","3600"]
      ports:
        - containerPort: 80

 

2)创建容器

方法一.  yum安装

[root@k8s-master ~]#yum install *rhsm*

方法二 (我是用这方法解决的)

执行命令:

[root@k8s-master ~]#wget http://mirror.centos.org/centos/7/os/x86_64/Packages/python-rhsm-certificates-1.19.10-1.el7_4.x86_64.rpm

[root@k8s-master ~]#rpm2cpio python-rhsm-certificates-1.19.10-1.el7_4.x86_64.rpm | cpio -iv --to-stdout ./etc/rhsm/ca/redhat-uep.pem | tee /etc/rhsm/ca/redhat-uep.pem    

前两个命令会生成/etc/rhsm/ca/redhat-uep.pem文件.  

[root@k8s-master ~]#docker pull registry.access.redhat.com/rhel7/pod-infrastructure:latest

 

[root@k8s-master ~]# kubectl create -f ./k8s/nginx.yaml

 

3)查看所有pod创建运行状态

[root@k8s-master ~]# kubectl get pod

 

4)查看指定pod资源

[root@k8s-master ~]# kubectl get pod nginx

 

5)查看pod运行的详细信息

[root@k8s-master ~]# kubectl describe pod nginx

[root@k8s-master ~]# kubectl get pod nginx -o wide //显示调度节点

 

6)验证运行的pod

[root@k8s-master ~]#  kubectl get pod nginx -o wide

 

2、pod管理

1)删除pod

[root@k8s-master ~]# kubectl delete  pod nginx

2)查看删除pod无法找到

[root@k8s-master ~]#  kubectl get pod nginx -o wide

 

3)创建pod

[root@k8s-master ~]# kubectl create -f ./k8s/nginx.yaml

 

4)发现最先创建的pod运行在k8s-master节点上,下载镜像速度太慢没法运行

[root@k8s-master ~]#  kubectl get pod nginx -o wide

 

5)访问pod节点中的服务

[root@k8s-master ~]# curl -I http://172.16.7.3

 

3、pod操作

1)在一个pod中修改配置文件运行多个业务容器,

创建资源test1

[root@k8s-master ~]# vim ./k8s/nginx.yaml

配置如下:

apiVersion: v1
kind: Pod
metadata:
  name: test1
  labels:
    app: web
spec:
  containers:
    - name: nginx01
      image: nginx:1.16
      ports:
        - containerPort: 80
    - name: busybox
      image: docker.io/busybox:latest
      command: ["sleep","3600"]
      ports:
        - containerPort: 80

[root@k8s-master ~]# kubectl create -f ./k8s/nginx.yaml

 

2)创建资源test2

[root@k8s-master ~]# vim ./k8s/nginx.yaml

配置如下:

apiVersion: v1
kind: Pod
metadata:
  name: test2
  labels:
    app: web
spec:
  containers:
    - name: nginx01
      image: nginx:1.16
      ports:
        - containerPort: 80
    - name: busybox
      image: docker.io/busybox:latest
      command: ["sleep","3600"]
      ports:
        - containerPort: 80

[root@k8s-master ~]# kubectl create -f ./k8s/nginx.yaml

3)查看资源使用情况

[root@k8s-master ~]# kubectl get pod -o wide

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

人间打气筒(Ada)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值