k8s中安装部署Jenkins时遇到的问题和解决的方案
一、yaml文件“: apiVersion: apps/v1beta1” “kind: Deployment” 报错。没有“Deployment”类型。
修改“apiVersion: apps/v1beta1” 为“apiVersion: apps/v1” 。
二、missing required field “name“ in io.k8s.api.apps.v1.DeploymentSpec 圈好关键词“name”
添加selector
源文件:
spec:
replicas: 2
新文件:
spec:
replicas: 2
selector:
matchLabels:
name: jenkins
三、yaml中未关联harbor私有仓库
[root@k8s-master-01 ~]# kubectl create secret docker-registry registry-pull-secret --docker-username=admin --docker-password=password@2019k8s --docker-email=admin@chzh.cn --docker-server=www.baidu.com -n kube-system
注: 加入 --dry-run参数 相当如sed -r
没有关联harbor仓库,大家的仓库关联自己公司的,这一段不要复制,因为复制了密码也不对 ~
四、contrack 的路径找不到
[root@k8s-master-01 ~]# yum -y install contrack
[root@k8s-node-01 ~]# yum -y install contrack
[root@k8s-node-02 ~]# yum -y install contrack
[root@k8s-master-01 ~]# systemctl restart kube-proxy
[root@k8s-node-01 ~]# systemctl restart kube-proxy
[root@k8s-node-02 ~]# systemctl restart kube-proxy
五、no desctination 目标不可达
解决思路:
a、网络情况确认:
[root@k8s-master-01 ~]# kubectl create deployment nginx --image=nginx
[root@k8s-master-01 ~]# kubectl expose deployment nginx --port=80 --target-port=80 --type=NodePort
b、demployment标签确认:
[root@k8s-master-01 ~]# kubectl get deployments -A --show-lables
发现缺了标签。没有打标签,service管理不到,pod没办法映射出去。
我是使用yaml文件进行安装部署的,缺少的标签去哪找呢?
[root@k8s-master-01 ~]# kubectl get svc nginx -o yaml
之前创建的服务,正好利用下他的yaml文件
在service段截取selector
selector:
name: jenkins
pod起来了,得到web界面,得到jenkins密码
[root@k8s-master-01 ~]# kubectl logs $(kubectl get pods -n kube-system | awk '{print $1}' | grep jenkins) -n kube-system
以上。