问题1:create rc 却无法创建pod kubectl describe rc mysql Error creating: No API token found for service account "default", retry after the token is automatically created and added to the service account 解决方法1: https://blog.csdn.net/lusyoe/article/details/79673058 1> 修改/etc/kubernetes/apiserver文件中KUBE_ADMISSION_CONTROL参数。 去掉:SecurityContextDeny,ServiceAccount #KUBE_ADMISSION_CONTROL="--admission-control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ServiceAccount,ResourceQuota" 2> 重启kube-apiserver服务 # systemctl restart kube-apiserver。 解决方法2:配置ServiceAccount 1、首先生成密钥: openssl genrsa -out /etc/kubernetes/serviceaccount.key 2048 2、编辑/etc/kubenetes/apiserver 添加以下内容: KUBE_API_ARGS="--service_account_key_file=/etc/kubernetes/serviceaccount.key" 3、再编辑/etc/kubernetes/controller-manager 添加以下内容: KUBE_CONTROLLER_MANAGER_ARGS="--service_account_private_key_file=/etc/kubernetes/serviceaccount.key" 最后无论是哪种解决方式都需要再重启kubernetes服务: systemctl restart etcd kube-apiserver kube-controller-manager kube-scheduler ----------------------------------------------- 问题2:发现pod一直处于ContainerCreating的状态 https://blog.csdn.net/qq_28451255/article/details/80491025 用kubectl describe pod mysql的时候发现如下报错: yum install python-rhsm-certificates -y 我们直接卸载掉subscription-manager-rhsm-certificates包,使用yum remove subscription-manager-rhsm-certificates -y命令,然后下载python-rhsm-certificates包: # wget http://mirror.centos.org/centos/7/os/x86_64/Packages/python-rhsm-certificates-1.19.10-1.el7_4.x86_64.rpm rpm -ivh python-rhsm-certificates 这时发现/etc/rhsm/ca/redhat-uep.pem文件已存在。 使用docker pull registry.access.redhat.com/rhel7/pod-infrastructure:latest命令下载镜像, error validating data: found invalid field spce for v1.Service; if you choose to ignore these errors, turn validation off with --validate=false ----------------------------------------------- 问题3:修改apiserver vi /etc/kubernetes/apiserver 添加–service-node-port-range=1-65535” 这个配置,设定允许的端口 KUBE_SERVICE_ADDRESSES="--service-cluster-ip-range=10.254.0.0/16 --service-node-port-range=1-65535" 留言板: http://blog.51cto.com/ylw6006/2067250 端口问题: rc:ReplicationController中 containerPort:80 service中: port: 8080 service暴露在cluster ip上的端口,:port 是提供给集群内部客户访问service的入口。 targetPort: 8080 The port on the pod that the service should proxy traffic to. targetPort很好理解,targetPort是pod上的端口,从port和nodePort上到来的数据最终经过kube-proxy流入到后端pod的targetPort上进入容器。 nodePort: 30062 nodePort是kubernetes提供给集群外部客户访问service入口的一种方式(另一种方式是LoadBalancer),所以,:nodePort 是提供给集群外部客户访问service的入口 IP问题: kubernetes 中三种IP 包括: 1. NodeIP node节点的IP地址 2. PodIP pod的IP地址 3. clusterIP service的IP地址 nodeIP 是kubernetes集群中每个节点的物理网卡的IP地址, client 访问kubernetes集群使用的IP地址 Pod ip地址 是更具创建的网络类型,网桥分配的IP地址, clusterIP 是一个虚拟的IP, cluster ip 仅作用于kubernetes service 这个对象, 是由kubernetes管理和分配ip地址,源于cluster ip地址池