Kubernetes快速入门
Kubernetes快速入门
环境准备:
关闭CentOS防火墙
systemctl disable fifirewalld
systemctl stop fifirewalld
安装etcd和kubernetes软件
yum install -y etcd kubernetes
启动服务
systemctl start etcd
systemctl start docker
注意:如果docker启动失败,请参考(vi /etc/sysconfig/selinux 把selinux后面的改为disabled,重启一波 机器,再重启docker就可以了)
systemctl start kube-apiserver systemctl start kube-controller-manager systemctl start kube-scheduler systemctl start kubelet systemctl start kube-proxy
配置
Tomcat配置
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
执行命令创建ReplicationController:
kubectl create -f mytomcat.rc.yaml
mytomcat.svc.yaml
apiVersion: v1 kind: Service metadata: name: mytomcat spec: type: NodePort ports: - port: 8080 nodePort: 30001 selector: app: mytomcat
执行命令创建Service:
kubectl create -f mytomcat.svc.yaml
问题解决:
docker pull失败
解决方案1:
1、yum install rhsm -y 2、docker pull registry.access.redhat.com/rhel7/pod-infrastructure:latest 如果以上两步解决问题了,那么就不需要在执行下面操作: 3、docker search pod-infrastructure 4、docker pull docker.io/tianyebj/pod-infrastructure 5、docker tag tianyebj/pod-infrastructure 192.168.126.143:5000/pod-infrastructure 6、docker push 192.168.126.143:5000/pod-infrastructure 7、vi /etc/kubernetes/kubelet 修改 KUBELET_POD_INFRA_CONTAINER="--pod-infra-container image=192.168.126.143:5000/pod- infrastructure:latest" 8、重启服务 systemctl restart kube-apiserver systemctl restart kube-controller-manager systemctl restart kube-scheduler systemctl restart kubelet systemctl restart kube-proxy
解决方案2:
1、docker pull kubernetes/pause 2、docker tag docker.io/kubernetes/pause:latest 192.168.126.143:5000/google_containers/pause-amd64.3.0 3、docker push 192.168.126.143:5000/google_containers/pause-amd64.3.0 4、vi /etc/kubernetes/kubelet配置为 KUBELET_ARGS="-- pod_infra_container_image=192.168.126.143:5000/google_containers/pause-amd64.3.0" 5、重启kubelet服务 systemctl restart kubelet
外部网不能访问
在搭建好的k8s集群内创建的容器,只能在其所在的节点上curl可访问,但是在其他任何主机上无法访问容器占用的端口
解决方案:
1、vim /etc/sysctl.conf 2、net.ipv4.ip_forward=1
解决 kubectl get pods时No resources found问题:
1、vim /etc/kubernetes/apiserver 2、找到”KUBE_ADMISSION_CONTROL="-admission_control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ServiceAccount,ResourceQuota",去掉ServiceAccount,保存退出。 3、systemctl restart kube-apiserver
重启此服务
浏览测试: