centos7.9 k8s单节点部署(2021.9)

记录日期:2021.9.28

Linux版本:centos7.9

去网上搜索看了下的很多单机部署教程、坑太多了。。。所以自己花了1天时间部署了k8s以及安装了tomcat进行测试,成功了,记录一下过程,希望能帮到有用的同学

有问题可以博客留言

一、准备工作

1、关闭selinux安装机制

 [root@ip-172-10-0-107 ec2-user]# cat /etc/selinux/config

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of three two values:
# targeted - Targeted processes are protected,
# minimum - Modification of targeted policy. Only selected processes are protected.
# mls - Multi Level Security protection.
SELINUXTYPE=targeted

2、关闭防火墙


setenforce 0
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动

二、安装kubernetes和etcd

1、yum下载

yum install etcd kubernetes -y

安装好后会把etcd、docker、kube-apiserver、kube-controller-manager、kube-scheduler、kubelet和kube-proxy都安装好,接下来直接启动

2、修改配置文件

 修改红色字体部分即可

[root@test2 kubernetes]# cat /etc/kubernetes/apiserver 
###
# kubernetes system config
#
# The following values are used to configure the kube-apiserver
#

# The address on the local server to listen to.
KUBE_API_ADDRESS="--insecure-bind-address=0.0.0.0"   #127.0.0.1改成0.0.0.0

# The port on the local server to listen on.
# KUBE_API_PORT="--port=8080"

# Port minions listen on
# KUBELET_PORT="--kubelet-port=10250"

# Comma separated list of nodes in the etcd cluster
KUBE_ETCD_SERVERS="--etcd-servers=http://127.0.0.1:2379"

# Address range to use for services
KUBE_SERVICE_ADDRESSES="--service-cluster-ip-range=10.254.0.0/16"

# default admission control policies
KUBE_ADMISSION_CONTROL="--admission-control=NamespaceLifecycle,NamespaceExists,LimitRanger,ResourceQuota"

# Add your own!
KUBE_API_ARGS=""

 

3、启动

systemctl start etcd
systemctl start docker
systemctl start kube-apiserver
systemctl start kube-controller-manager
systemctl start kube-scheduler
systemctl start kubelet
systemctl start kube-proxy

4、基本命令操作

 

kubectl version  #查看版本
kubectl cluster-info #查看集群的状态信息
kubectl get pods #查看pod,这里是因为我部署了个tomcat,所以是有数据的,后面会讲到怎么部署tomcat
kubectl get nodes #查看集群有几个node,部署的是单节点,所以只有一个node

 

三、部署tomcat

k8s部署tomcat需要两个配置文件,准备tomcat-rc.yaml和tomcat-svc.yaml,文件放任意位置都可以

1、tomcat-rc.yaml

[root@test2 kubernetes]# cat tomcat-rc.yaml 
apiVersion: v1
kind: ReplicationController
metadata:
  name: tomcat-demo   #调度对象的全称,全局唯一
spec:
  replicas: 1    #表示创建1个pod副本数量
  selector:
    app: tomcat-demo  
  template:
    metadata:
      labels:
        app: tomcat-demo #pod拥有的标签
    spec:
      containers:
      - name: tomcat-demo
        image: tomcat  #对应的从docker拉取的镜像名称
        ports:
        - containerPort: 8080   #tomcat容器端口

 

2、 tomcat-svc.yaml

[root@test2 kubernetes]# cat tomcat-svc.yaml 
apiVersion: v1
kind: Service
metadata:
  name: tomcat-demo
spec:
  type: NodePort
  ports:
   - port: 8080
     nodePort: 30001   #tomcat对外的端口(浏览器访问的端口)
  selector:
    app: tomcat-demo

 

3、执行以下命令,进行部署

kubectl create -f mysql-rc.yaml 
kubectl create -f mysql-svc.yaml

 

 查看rc和svc

查看pod

注意这里READY第一次部署会为0/1,STATUS状态会为containerCreating

解决办法,执行一下

docker pull registry.access.redhat.com/rhel7/pod-infrastructure:latest

 

顺利的话,能够下载到如下images

 

然后再删除掉rc和svc,重新create就可以

kubectl delete -f mysql-rc.yaml 
kubectl delete -f mysql-svc.yaml
kubectl create -f mysql-rc.yaml 
kubectl create -f mysql-svc.yaml

 再次查看就正常了

 

访问浏览器http://IP:30001/  会出现404,不过别慌,原因是tomcat的webapps目录下没东西导致的

 

 用docker ps查看我们k8s启动的docker服务

 

 进入容器,操作一波

我们可以看到webapps下是没有东西的,webapps.dist是有的

 

 把webapps删掉,把webapps.dist改成webapps就可以了

 

 访问一下网页,成功啦,哈哈

 

 

posted @ 2021-09-29 14:37  前行520  阅读(993)  评论(0编辑  收藏  举报