命令方式
建立pod
kubectl run nginx --image=nginx --port=80 --replicas=2
后续扩容
kubectl scale --replicas=3 deployment/nginx
遇到问题
创建成功但是kubectl get pods 没有结果
提示信息:no API token found for service account default
解决办法:编辑/etc/kubernetes/apiserver 去除 KUBE_ADMISSION_CONTROL中的SecurityContextDeny,ServiceAccount,并重启kube-apiserver.service服务
pod-infrastructure:latest镜像下载失败
报错信息:image pull failed for registry.access.redhat.com/rhel7/pod-infrastructure:latest, this may be because there are no credentials on this request.
解决方案:yum install *rhsm* -y
登陆容器报错
[root@node14 ~]# kubectl exec -it nginx-bl7lc /bin/bash
Error from server: error dialing backend: dial tcp 10.10.10.16:10250: getsockopt: connection refused
解决方法:
10250是kubelet的端口。
在Node上检查/etc/kubernetes/kubelet
KUBELET_ADDRESS需要修改为node ip
命令查看
root@masterlog]# kubectl get pods
kubectl get deployment
通过端口将应用连接到公网
kubectl expose deployment nginx --port=80 --type=LoadBalancer
删除deployment 与service
[root@node14 log]# kubectl delete deployment nginx
deployment "nginx" deleted
[root@node14 log]# kubectl delete service nginx
service "nginx" deleted
配置文件方式
vim nginx-pod.yaml
apiVersion: v1
kind: Pod
metadata:
name: nginx
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx
imagePullPolicy: IfNotPresent
ports:
- containerPort: 80
restartPolicy: Always
发布到kubernetes集群中
kubectl create -f nginx-pod.yaml
pod"nginx"created
查看pod
[root@node14 ~]# kubectl get pods
NAME READY STATUS RESTARTS AGE
nginx 1/1 Running 0 16s
定义与之关联的service 文件
[root@node14 ~]# vim nginx-svc.yaml
apiVersion: v1
kind: Service
metadata:
name: nginx-service
spec:
type: NodePort
sessionAffinity: ClientIP
selector:
app: nginx
ports:
- port: 80
nodePort: 30080
创建service
[root@node14 ~]# kubectl create -f nginx-svc.yaml
service "nginx-service" created
查看刚刚创建的service
[root@node14 ~]# kubectl get service
NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes 10.254.0.1 <none> 443/TCP 23h
nginx-service 10.254.154.111 <nodes> 80:30080/TCP 20s