Kubernetes创建pod

1 创建tomcat的相关配置,配置tomcat的镜像和对外暴露的接口

mkdir /usr/local/k8s
cd /usr/local/k8s/
touch mytomcat.rc.yaml
touch mytomcat.svc.yaml

mytomcat.rc.yaml文件的相关内容

apiVersion: v1
kind: ReplicationController
metadata:
  name: mytomcat
spec:
  replicas: 2
  selector:
    app: mytomcat
  template:
    metadata:
      labels:
        app: mytomcat
    spec:
      containers:
        - name: mytomcat
          image: tomcat:7-jre7
          ports:
            - containerPort: 8080

mytomcat.svc.yaml文件的相关内容

apiVersion: v1
kind: Service
metadata:
  name: mytomcat
spec:
  type: NodePort
  ports:
    - port: 8080
      nodePort: 30001
  selector:
        app: mytomcat

2 创建资源

kubectl create -f mytomcat.rc.yaml
kubectl create -f mytomcat.svc.yaml (通过svc文件暴露端口)

3 查看资源

kubectl get svc

kubectl get pods

拿不到数据 解决办法

1 vim /etc/kubernetes/apiserver
2找到”KUBE_ADMISSION_CONTROL="" 去掉值ServiceAccount,保存退出。

4 重启

systemctl restart kube-apiserver

kubectl get pods

可以发现有2个服务 这2个是我们在上述配置文件中定义的

5 错误解决

通过kubectl get pods 命令 可以发现 一直在ContainerCreating

解决办法
查看日志cat /var/log/messages 或者tail -f /var/log/messages

发现是docker镜像的问题 下载不下来

解决办法:
yum install *rhsm* -y
然后拉取镜像
docker pull registry.access.redhat.com/rhel7/pod-infrastructure:latest

 依然报错

接着执行下面命令

wget http://mirror.centos.org/centos/7/os/x86_64/Packages/python-rhsm-certificates-1.19.10-1.el7_4.x86_64.rpm

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 

 再次拉取镜像 

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

 终于拉下来了

查看日志

tail -f  /var/log/messages

 依然报错

 vi /etc/ssh/sshd_config

注释掉 sshd_config 文件中的 RSAAuthentication yes

kubectl get pods

发现服务已不再是containeringCreating 而变成了running

但是此时通过外网依然不能访问

http://106.143.9.110:30001/

 

如果还是访问不通,修改下面配置文件

vim /etc/sysctl.conf

 net.ipv4.ip_forward = 0 修改为net.ipv4.ip_forward = 1 

6 重新部署服务

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

 再次访问

http://106.143.9.110:30001/

如果还是不能访问 那可能是因为下面的原因:
容器所在的服务器执行,开启转发功能
iptables -P FORWARD ACCEPT

 

 

 

 

 

 

 

 

  

 

posted @ 2022-10-20 17:57  __破  阅读(43)  评论(0)    收藏  举报