1. 博文地址https://www.cnblogs.com/lvlinguang/p/15682696.html
  2. 安装k8s ,注意安装前卸载docker,避免出错

    1. yum install -y etcd kubernetes
  3. 启动和关闭脚本 ```shell vim k8sStart.sh

    !/bin/bash

    systemctl start etcd systemctl start docker systemctl start kube-apiserver systemctl start kube-controller-manager systemctl start kube-scheduler systemctl start kubelet systemctl start kube-proxy


vim k8sStop.sh

!/bin/bash

systemctl stop etcd systemctl stop docker systemctl stop kube-apiserver systemctl stop kube-controller-manager systemctl stop kube-scheduler systemctl stop kubelet systemctl stop kube-proxy

  1. 4. 创建pod文件 vim 02-create-pod.yaml
  2. ```shell
  3. apiVersion: v1
  4. kind: Pod
  5. metadata:
  6. name: pod1
  7. spec:
  8. containers:
  9. - name: ngninx-pod
  10. image: nginx:latest
  11. ports:
  12. - name: nginxport
  13. containerPort: 80
  1. 应用pod资源清单文件

    1. kubectl apply -f 02-create-pod.yaml
  2. 如果报错Error from server (ServerTimeout): error when creating “busybox.yaml”: No API token found for service account “default”, retry after the token is automatically created and added to the service account
    方式一:禁用ServiceAccount

编辑/etc/kubenetes/apiserver:
将以下这行中的ServiceAccount删除即可
KUBE_ADMISSION_CONTROL=”—admission-control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ServiceAccount,ResourceQuota”
改为:
KUBE_ADMISSION_CONTROL=”—admission-control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ResourceQuota”
这种方式比较粗暴,可能会遇到必须要用ServiceAccount的情况。
方式二:配置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
在这里推荐使用第二种方式,因为在后面配置默认从私有仓库拉取镜像也必须要有ServiceAccount

  1. 验证pod是否被创建

    1. kubectl get pods

    image.png