j8s使用yaml安装jenkins,一直是pending
项删除pod结果失败
后想通过重新执行命令进行覆盖,执行cd jenkins-master 
kubectl create -f .  报错,提示
Error from server (AlreadyExists): error when creating "Service.yaml": services "jenkins" already exists
Error from server (AlreadyExists): error when creating "ServiceaAcount.yaml": serviceaccounts "jenkins" already exists
Error from server (AlreadyExists): error when creating "StatefulSet.yaml": statefulsets.apps "jenkins" already exists
Error from server (AlreadyExists): error when creating "rbac.yaml": roles.rbac.authorization.k8s.io "jenkins" already exists

通过 
kubectl delete -f Service.yaml
kubectl delete -f ServiceaAcount.yaml
kubectl delete -f StatefulSet.yaml
kubectl delete -f rbac.yaml
挨个删除
查看kubectl get pods -n kube-ops  ,发现jenkins  已不存在了


查看日志
journalctl -f -u kubelet
systemctl status kubelet.service

重置
kubeadm reset

/sys/fs/cgroup/pids/libcontainer_113839_systemd_test_default.slice
/sys/fs/cgroup/pids/libcontainer_113839_systemd_test_default.slice

yaml采用缩进标识层级关系,不支持tab  .---表示新起一个yaml
apiversion  API标本
kind  资源类型   kubectl --help  ,api-resources
----
yaml通常通过生成方式,快速创建2种方式:
1、kubectl create 命令生成yaml文件

2、使用kubectl get 命令导出yaml文件


k8s最小单位是pod
k8s不会直接处理容器,而是处理pod,一个Pod包含1个或多个容器

一个pod中,网络是共享的
pod是短暂的,比如重新创建或启动  


pod存在的意义:

docker 对应容器 ,是单进程  (能反复调用的,守护进程)
docker ---一个程序--单进程 
pod是多进程的设计,运行多个应用程序--多个docker,通过pod管理多个进程
pod--多个docker容器--多个程序

Pod为了亲密性:
2个应用之间互相调用 
网络之间调用
2个应用需要频繁调用
pod里2个应用程序相当于本地调用 

pod实现机制:
多个容器,在同一个namespace里面,共享网络
实现原理:首先创建pause(又叫info)容器,一个ip 一个port 
接下来所有同namespace的容器,都加入pause ,实现网络共享

pod共享存储:

引入数据卷概念Volumn  使用数据卷进行持久化,通过挂载进行共享


进项拉取策略:
statefulset.yaml中间部分,拉取jenkins


pod资源限制:
pod资源请求  container限制(docker来做限制)
pod在调度时,容器限制最大资源


pod重启机制:
几种策略

pod健康检查:
running状态,可能容器内部不能提供服务了,应到应用层面进行检查
2种检查:存活检查,就绪检查
三种检查方式  httpget  exec   tcpsocket

k8s init 报错:[kubelet-check] Initial timeout of 40s passed.
解决:卸载k8s,创建配置文件:https://blog.csdn.net/weixin_40161254/article/details/112232302,重新init 

cat > /etc/sysctl.d/k8s.conf << EOF 
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1 
EOF


docker-1.12.6


yum install -y kubelet-1.18.1 kubeadm-1.18.1 kubectl-1.18.1


kubeadm reset


kubeadm init \--apiserver-advertise-address=192.168.0.201 \--image-repository registry.aliyuncs.com/google_containers \--kubernetes-version v1.18.1 \--service-cidr=10.96.0.0/12 \--pod-network-cidr=10.244.0.0/16


临时解决,重启失效
modprobe br_netfilter


cat > /etc/yum.repos.d/kubernetes.repo << EOF
[kubernetes] 
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64 
enabled=1 
gpgcheck=0 
repo_gpgcheck=0 
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg 
EOF

cat >>/etc/hosts<<EOF 
192.168.0.190 k8s-master 
192.168.0.195 k8s-node1
192.168.0.197 k8s-node2 
EOF


cat > /etc/sysconfig/modules/ipvs.modules <<EOF 
#!/bin/bash 
modprobe -- ip_vs 
modprobe -- ip_vs_rr 
modprobe -- ip_vs_wrr 
modprobe -- ip_vs_sh 
modprobe -- nf_conntrack_ipv4 
EOF


cat > /etc/sysctl.d/k8s.conf << EOF 
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF

cat > /etc/docker/daemon.json << EOF
 { "registry-mirrors": ["https://b9pmyelo.mirror.aliyuncs.com"] }
EOF


kubeadm join 192.168.0.201:6443 --token etj3qd.wux7kdk2l0b2l5rj \--discovery-token-ca-cert-hash sha256:8fde72a8defcd909b9b28ecb661b049b33da4419cd89d0f08cadab67a0c1d501 
 

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐