安装k8s,单master脚本
这个以一个普通xxx帐户运行即可。
因为上面root帐号作了sudoer的操作的。
还有,最好将xxx帐号加入docker组,这样xxx也可以执行docker命令了。
可以看到,这个脚本还需要其它目录的文件支持, 不要急,慢慢都有会的,
下一篇补上ha集群的创建。
#!/bin/bash # Version V0. ---: ;fi K8S_VER= dir_path=$(cd ``;cd ../;pwd) cmd_path=$dir_path/cmd cert_path=$dir_path/cert rpm_path=$dir_path/rpm software_path=$dir_path/software yaml_path=$dir_path/yaml THIS_HOST=$(hostname -i) LOCAL_HOST=$(hostname) #k8s里记录的node列表为小写,这里也要转换为小写 LOCAL_HOST_L=${LOCAL_HOST,,} pki_dir=/etc/kubernetes/pki K8S_API_PORT= K8S_JOIN_TOKEN=xxxxx.xxxxxxxxxxxxxxxx General_user=xxx REGISTRY=harbor.xxx.cn/3rd_part/k8s.gcr.io cs=$software_path/cfssl csj=$software_path/cfssljson function if_file_exist_del() { ]; then fi } function kubeadmConf() { kubeadm_conf=kubeadm-config.yaml if_file_exist_del $kubeadm_conf cat << EOF >$kubeadm_conf apiVersion: kubeadm.k8s.io/v1beta1 kind: InitConfiguration bootstrapTokens: - token: ${K8S_JOIN_TOKEN} ttl: 24h usages: - signing - authentication groups: - system:bootstrappers:kubeadm:default-node-token --- apiVersion: kubeadm.k8s.io/v1beta1 kind: ClusterConfiguration imageRepository: ${REGISTRY} kubernetesVersion: ${K8S_VER} controlPlaneEndpoint: ${THIS_HOST}:${K8S_API_PORT} apiServer: extraArgs: service-node-port-range: - networking: podSubnet: serviceSubnet: --- apiVersion: kubeproxy.config.k8s.io/v1alpha1 kind: KubeProxyConfiguration mode: "ipvs" EOF } cert_init() { mkdir -p k8s_cert_tmp cp $cert_path/* ./k8s_cert_tmp chmod +x $cs chmod +x $csj cd k8s_cert_tmp sed -i "s/LOCAL_HOST_L/${LOCAL_HOST_L}/g;s/THIS_HOST/${THIS_HOST}/g" etcd-server.json sed -i "s/LOCAL_HOST_L/${LOCAL_HOST_L}/g;s/THIS_HOST/${THIS_HOST}/g" etcd-peer.json sed -i "s/LOCAL_HOST_L/${LOCAL_HOST_L}/g;s/THIS_HOST/${THIS_HOST}/g" apiserver.json $cs gencert -ca=ca.crt -ca-key=ca.key -config=ca-config.json -profile=server etcd-server.json|$csj -bare server $cs gencert -ca=ca.crt -ca-key=ca.key -config=ca-config.json -profile=client etcd-client.json|$csj -bare client $cs gencert -ca=ca.crt -ca-key=ca.key -config=ca-config.json -profile=peer etcd-peer.json|$csj -bare peer # front-proxy的ca和其它ca必须不同,如果相同,可能认证就会先用这个证书,集群内认证就会不通,验证过的。 $cs gencert -ca=front-proxy-ca.crt -ca-key=front-proxy-ca.key -config=ca-config.json -profile=client front-proxy-client.json|$csj -bare front-proxy-client $cs gencert -ca=ca.crt -ca-key=ca.key -config=ca-config.json -profile=server apiserver.json|$csj -bare apiserver $cs gencert -ca=ca.crt -ca-key=ca.key -config=ca-config.json -profile=client apiserver-kubelet-client.json|$csj -bare apiserver-kubelet-client mkdir -p $pki_dir/etcd cp server.pem $pki_dir/etcd/server.crt&&cp server-key.pem $pki_dir/etcd/server.key cp client.pem $pki_dir/etcd/healthcheck-client.crt&&cp client-key.pem $pki_dir/etcd/healthcheck-client.key cp client.pem $pki_dir/apiserver-etcd-client.crt&&cp client-key.pem $pki_dir/apiserver-etcd-client.key cp peer.pem $pki_dir/etcd/peer.crt&&cp peer-key.pem $pki_dir/etcd/peer.key cp ca.crt $pki_dir/etcd/ca.crt&&cp ca.key $pki_dir/etcd/ca.key cp front-proxy-ca.crt $pki_dir/front-proxy-ca.crt&&cp front-proxy-ca.key $pki_dir/front-proxy-ca.key cp front-proxy-client.pem $pki_dir/front-proxy-client.crt&&cp front-proxy-client-key.pem $pki_dir/front-proxy-client.key cp ca.crt $pki_dir/ca.crt&&cp ca.key $pki_dir/ca.key cp apiserver.pem $pki_dir/apiserver.crt&cp apiserver-key.pem $pki_dir/apiserver.key cp apiserver-kubelet-client.pem $pki_dir/apiserver-kubelet-client.crt&&cp apiserver-kubelet-client-key.pem $pki_dir/apiserver-kubelet-client.key cp sa.pub $pki_dir/sa.pub&&cp sa.key $pki_dir/sa.key cd ../ rm -rf k8s_cert_tmp } function master_install(){ sudo /usr/local/bin/kubeadm init --config $kubeadm_conf sudo chown -R docker /etc/kubernetes/ mkdir -p $HOME/.kube \cp -f /etc/kubernetes/admin.conf $HOME/.kube/config chown $(id -u):$(id -g) $HOME/.kube/config General_user_HOME=`cat /etc/passwd |grep -e ^${General_user} |awk -F: '{print $6}'` mkdir -p ${General_user_HOME}/.kube \cp -f /etc/kubernetes/admin.conf ${General_user_HOME}/.kube/config chown -R $(id -u ${General_user}):$(id -g ${General_user}) ${General_user_HOME}/.kube kubectl apply -f $yaml_path/secret kubectl apply -f $yaml_path/auto_cert_server kubectl apply -f $yaml_path/flannel } function main(){ cert_init kubeadmConf master_install } main
安装k8s,单master脚本的更多相关文章
- kubeadm安装K8S单master双节点集群
宿主机:master:172.16.40.97node1:172.16.40.98node2:172.16.40.99 # 一.k8s初始化环境:(三台宿主机) 关闭防火墙和selinux syste ...
- k8s 组件介绍__单Master集群部署
参考链接:https://github.com/opsnull/follow-me-install-kubernetes-cluster kubernetes 概述 1.kubernetes 是什么 ...
- 【K8S】基于单Master节点安装K8S集群
写在前面 最近在研究K8S,今天就输出部分研究成果吧,后续也会持续更新. 集群规划 IP 主机名 节点 操作系统版本 192.168.175.101 binghe101 Master CentOS 8 ...
- 最小化安装k8s
最小化安装k8s Nick_4438 关注 2018.07.11 10:40* 字数 670 阅读 0评论 0喜欢 0 1.前言 之前写过一篇二进制手工安装k8s的文章,过程复杂,搞了多日才安装成功. ...
- 在Ubuntu上使用离线方式快速安装K8S v1.11.1
在Ubuntu上使用离线方式快速安装K8S v1.11.1 0.安装包文件下载 https://pan.baidu.com/s/1nmC94Uh-lIl0slLFeA1-qw v1.11.1 文件大小 ...
- k8s学习笔记之二:使用kubeadm安装k8s集群
一.集群环境信息及安装前准备 部署前操作(集群内所有主机): .关闭防火墙,关闭selinux(生产环境按需关闭或打开) .同步服务器时间,选择公网ntpd服务器或者自建ntpd服务器 .关闭swap ...
- kubeadm安装k8s测试环境
目标是搭建一个可测试的k8s环境,使用的工具 kubeadm, 最终一个master节点(非高可用),2个node节点. 环境以及版本 Centos7.3 kubeadm 1.11.1 kubelet ...
- ASP.NET Core on K8S学习初探(1)K8S单节点环境搭建
当近期的一个App上线后,发现目前的docker实例(应用服务BFF+中台服务+工具服务)已经很多了,而我司目前没有专业的运维人员,发现运维的成本逐渐开始上来,所以容器编排也就需要提上议程.因此我决定 ...
- 在vultr中安装k8s测试
vultr 安装k8s *** 如果国内访问 k8s.gcr.io 很慢,或者无法访问 *** 在应用yaml文件创建资源时,将文件中镜像地址进行内容替换即可: 将k8s.gcr.io替换为 regi ...
随机推荐
- [LeetCode] 128. Longest Consecutive Sequence 求最长连续序列
Given an unsorted array of integers, find the length of the longest consecutive elements sequence. F ...
- V8世界探险 (1) - v8 API概览
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/lusing/article/detai ...
- 【视频开发】CximageMat 、CximagelplImage 以及 lplImageMat的转换、像素位深度
1.传统的lplImage * -------> Mat格式 IplImage* img = cvLoadImage("greatwave.png", 1); Mat mtx ...
- list<Integer>,Integer[],int[]之间的互转(jdk1.8)
偶然在开发过程中需要将int[] 转成 List<Integer>,采用了遍历的方式,写的代码实在太多. List<Integer> list = new ArrayList& ...
- 11 Sping框架--AOP的相关概念及其应用
1.AOP的概念 AOP(Aspect Oriented Programming 面向切面编程),通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术.AOP是OOP的延续,是软件开发中的一 ...
- Django模型层之ORM
Django模型层之ORM操作 一 ORM简介 我们在使用Django框架开发web应用的过程中,不可避免地会涉及到数据的管理操作(如增.删.改.查),而一旦谈到数据的管理操作,就需要用到数据库管理软 ...
- Harbor 企业级私有仓库 Ubuntu16.04 搭建及使用
一.Harbor简介 1.1.什么是Harbor 几个VMware中国的人搞了一个容器镜像仓库.Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器. 1.2.Harbor架 ...
- 通过设置启用 Visual Studio 默认关闭的大量强大的功能提升开发效率
原文:通过设置启用 Visual Studio 默认关闭的大量强大的功能提升开发效率 使用 Visual Studio 开发 C#/.NET 应用程序,以前有 ReSharper 来不足其各项功能短板 ...
- catch SocketException
https://stackoverflow.com/questions/32810051/cannot-catch-socketexception/32810079#32810079 https:// ...
- js合并多个array
Array.prototype.concat.call(array1, array2, array3, ...)